99 if(&c !=
this) v = c.
v;
114#ifdef CV_INT32_T_IS_LONG_INT
124 operator float()
const {
Cv32suf s; s.
u = v;
return s.
f; }
168 inline bool isNaN()
const {
return (v & 0x7fffffff) > 0x7f800000; }
170 inline bool isInf()
const {
return (v & 0x7fffffff) == 0x7f800000; }
172 inline bool isSubnormal()
const {
return ((v >> 23) & 0xFF) == 0; }
175 inline bool getSign()
const {
return (v >> 31) != 0; }
179 inline int getExp()
const {
return ((v >> 23) & 0xFF) - 127; }
189 uint_fast32_t vv = (v & 0x007fffff) | (127 << 23);
190 return softfloat::fromRaw(vv);
199 x.
v = (v & 0xff800000) | (s.
v & 0x007fffff);
214 static softfloat eps() {
return softfloat::fromRaw( (127 - 23) << 23 ); }
216 static softfloat max() {
return softfloat::fromRaw( (0xFF << 23) - 1 ); }
218 static softfloat pi() {
return softfloat::fromRaw( 0x40490fdb ); }
236 if(&c !=
this) v = c.
v;
251#ifdef CV_INT32_T_IS_LONG_INT
261 operator double()
const {
Cv64suf s; s.
u = v;
return s.
f; }
305 inline bool isNaN()
const {
return (v & 0x7fffffffffffffff) > 0x7ff0000000000000; }
307 inline bool isInf()
const {
return (v & 0x7fffffffffffffff) == 0x7ff0000000000000; }
309 inline bool isSubnormal()
const {
return ((v >> 52) & 0x7FF) == 0; }
312 inline bool getSign()
const {
return (v >> 63) != 0; }
316 inline int getExp()
const {
return ((v >> 52) & 0x7FF) - 1023; }
321 x.
v = (v & 0x800FFFFFFFFFFFFF) | ((uint_fast64_t)((e + 1023) & 0x7FF) << 52);
331 uint_fast64_t vv = (v & 0x000FFFFFFFFFFFFF) | ((uint_fast64_t)(1023) << 52);
332 return softdouble::fromRaw(vv);
341 x.
v = (v & 0xFFF0000000000000) | (s.
v & 0x000FFFFFFFFFFFFF);
348 static softdouble inf() {
return softdouble::fromRaw( (uint_fast64_t)(0x7FF) << 52 ); }
352 static softdouble one() {
return softdouble::fromRaw( (uint_fast64_t)( 1023) << 52 ); }
354 static softdouble min() {
return softdouble::fromRaw( (uint_fast64_t)( 0x01) << 52 ); }
356 static softdouble eps() {
return softdouble::fromRaw( (uint_fast64_t)( 1023 - 52 ) << 52 ); }
358 static softdouble max() {
return softdouble::fromRaw( ((uint_fast64_t)(0x7FF) << 52) - 1 ); }
const CvArr CvArr * x
Definition core_c.h:1195
signed char schar
Definition interface.h:48
unsigned char uchar
Definition interface.h:51
#define CV_BIG_INT(n)
Definition interface.h:63
unsigned short ushort
Definition interface.h:52
int getExp() const
Get 0-based exponent.
Definition softfloat.hpp:179
softfloat(const float a)
Construct from float.
Definition softfloat.hpp:120
softfloat getFrac() const
Get a fraction part.
Definition softfloat.hpp:187
CV_EXPORTS softfloat mulAdd(const softfloat &a, const softfloat &b, const softfloat &c)
Fused Multiplication and Addition.
uint64_t v
Definition softfloat.hpp:362
softdouble(const uint32_t)
Construct from integer.
static softfloat inf()
Positive infinity constant.
Definition softfloat.hpp:206
softfloat(const uint64_t)
softfloat(const softfloat &c)
Copy constructor.
Definition softfloat.hpp:95
static softfloat one()
One constant.
Definition softfloat.hpp:210
softdouble setExp(int e) const
Construct a copy with new 0-based exponent.
Definition softfloat.hpp:318
static softfloat min()
Smallest normalized value.
Definition softfloat.hpp:212
softfloat setSign(bool sign) const
Construct a copy with new sign bit.
Definition softfloat.hpp:177
bool getSign() const
Get sign bit.
Definition softfloat.hpp:312
softfloat setFrac(const softfloat &s) const
Construct a copy with provided significand.
Definition softfloat.hpp:196
bool isInf() const
Inf state indicator.
Definition softfloat.hpp:170
softfloat setExp(int e) const
Construct a copy with new 0-based exponent.
Definition softfloat.hpp:181
softfloat()
Default constructor.
Definition softfloat.hpp:93
softdouble & operator=(const softdouble &c)
Assign constructor.
Definition softfloat.hpp:234
static softdouble max()
Biggest finite value.
Definition softfloat.hpp:358
static softdouble pi()
Correct pi approximation.
Definition softfloat.hpp:360
softdouble setFrac(const softdouble &s) const
Construct a copy with provided significand.
Definition softfloat.hpp:338
bool isInf() const
Inf state indicator.
Definition softfloat.hpp:307
bool isNaN() const
NaN state indicator.
Definition softfloat.hpp:168
bool isSubnormal() const
Subnormal number indicator.
Definition softfloat.hpp:172
softdouble(const softdouble &c)
Copy constructor.
Definition softfloat.hpp:232
static softfloat max()
Biggest finite value.
Definition softfloat.hpp:216
static softdouble zero()
Zero constant.
Definition softfloat.hpp:346
softfloat abs(softfloat a)
Absolute value.
Definition softfloat.hpp:444
int64_t saturate_cast< int64_t >(softfloat a)
Definition softfloat.hpp:424
softfloat(const uint32_t)
Construct from integer.
static softfloat eps()
Difference between 1 and next representable value.
Definition softfloat.hpp:214
static softdouble one()
One constant.
Definition softfloat.hpp:352
static softfloat zero()
Zero constant.
Definition softfloat.hpp:204
softdouble(const int32_t)
softdouble setSign(bool sign) const
Construct a copy with new sign bit.
Definition softfloat.hpp:314
static softdouble eps()
Difference between 1 and next representable value.
Definition softfloat.hpp:356
uint32_t v
Definition softfloat.hpp:220
static softfloat nan()
Default NaN constant.
Definition softfloat.hpp:208
CV_EXPORTS softfloat cbrt(const softfloat &a)
Cube root.
static softdouble min()
Smallest normalized value.
Definition softfloat.hpp:354
bool isSubnormal() const
Subnormal number indicator.
Definition softfloat.hpp:309
int getExp() const
Get 0-based exponent.
Definition softfloat.hpp:316
softdouble(const double a)
Construct from double.
Definition softfloat.hpp:257
softdouble getFrac() const
Get a fraction part.
Definition softfloat.hpp:329
uint64_t saturate_cast< uint64_t >(softfloat a)
Definition softfloat.hpp:433
static softfloat pi()
Correct pi approximation.
Definition softfloat.hpp:218
softdouble(const int64_t)
softdouble(const uint64_t)
static softdouble inf()
Positive infinity constant.
Definition softfloat.hpp:348
bool isNaN() const
NaN state indicator.
Definition softfloat.hpp:305
bool getSign() const
Get sign bit.
Definition softfloat.hpp:175
static const softfloat fromRaw(const uint32_t a)
Construct from raw.
Definition softfloat.hpp:106
softdouble()
Default constructor.
Definition softfloat.hpp:230
softfloat & operator=(const softfloat &c)
Assign constructor.
Definition softfloat.hpp:97
static softdouble nan()
Default NaN constant.
Definition softfloat.hpp:350
static softdouble fromRaw(const uint64_t a)
Construct from raw.
Definition softfloat.hpp:243
int saturate_cast< int >(unsigned v)
Definition saturate.hpp:138
#define CV_EXPORTS
Definition cvdef.h:435
uchar saturate_cast< uchar >(schar v)
Definition saturate.hpp:101
CV_INLINE int cvRound(double value)
Rounds floating-point number to the nearest integer.
Definition fast_math.hpp:200
CV_INLINE int cvCeil(double value)
Rounds floating-point number to the nearest integer not smaller than the original.
Definition fast_math.hpp:258
short saturate_cast< short >(ushort v)
Definition saturate.hpp:130
ushort saturate_cast< ushort >(schar v)
Definition saturate.hpp:121
unsigned saturate_cast< unsigned >(schar v)
Definition saturate.hpp:144
static _Tp saturate_cast(uchar v)
Template function for accurate conversion from one primitive type to another.
Definition saturate.hpp:81
CV_INLINE int cvFloor(double value)
Rounds floating-point number to the nearest integer not larger than the original.
Definition fast_math.hpp:231
schar saturate_cast< schar >(uchar v)
Definition saturate.hpp:111
Quat< T > cos(const Quat< T > &q)
Quat< T > sin(const Quat< T > &q)
"black box" representation of the file storage associated with a file on disk.
Definition calib3d.hpp:441
Definition softfloat.hpp:227
Definition softfloat.hpp:90
unsigned u
Definition cvdef.h:404
float f
Definition cvdef.h:405
double f
Definition cvdef.h:413
uint64 u
Definition cvdef.h:412