• R
    SoftFloat integrated (#8668) · c6a3a188
    Rostislav Vasilikhin 提交于
    * everything is put into softfloat.cpp and softfloat.hpp
    
    * WIP: try to integrate softfloat into OpenCV
    
    * extra functions removed
    
    * softfloat made stateless
    
    * CV_EXPORTS added
    
    * operators fixed
    
    * exp added, log: WIP
    
    * log32 fixed
    
    * shorter names; a lot of TODOs
    
    * log64 rewritten
    
    * cbrt32 added
    
    * minors, refactoring
    
    * "inline" -> "CV_INLINE"
    
    * cast to bool warnings fixed
    
    * several warnings fixed
    
    * fixed warning about unsigned unary minus
    
    * fixed warnings on type cast
    
    * inline -> CV_INLINE
    
    * special cases processing added (NaNs, Infs, etc.)
    
    * constants for NaN and Inf added
    
    * more macros and helper functions added
    
    * added (or fixed) tests for pow32, pow64, cbrt32
    
    * exp-like functions fixed
    
    * minor changes
    
    * fixed random number generation for tests
    
    * tests for exp32 and exp64: values are compared to SoftFloat-based naive implementation
    
    * minor warning fix
    
    * pow(f, i) 32/64: special cases handling added
    
    * unused functions removed
    
    * refactoring is in progress (not compiling)
    
    * CV_inline added
    
    * unions {uint_t, float_t} removed
    
    * tests compilation fixed
    
    * static const members -> static methods returning const
    
    * reinterpret_cast
    
    * warning fixed
    
    * const-ness fixed
    
    * all FP calculations (even compile-time) are done in SoftFloat + minor fixes
    
    * pow(f, i) removed from interface (can cause incorrect cast) to internals of pow(f, f), tests fixed
    
    * CV_INLINE -> inline
    
    * internal constants moved to .cpp file
    
    * toInt_minMag() methods merged into toInt() methods
    
    * macros moved to .cpp file
    
    * refactoring: types renamed to softfloat and softdouble; explicit constructors, etc.
    
    * toFloat(), toDouble() -> operator float(), operator double()
    
    * removed f32/f64 prefixes from functions names
    
    * toType() methods removed, round() and trunc() functions added
    
    * minor change
    
    * minors
    
    * MSVC: warnings fixed
    
    * added int cvRound(), cvFloor, cvCeil, cvTrunc, saturate_cast<T>()
    
    * typo fixed
    
    * type cast fixed
    c6a3a188
core.hpp 144.4 KB