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; }
 
150
softfloat& operator *= (
const
softfloat& a) { *
this
= *
this
* a;
return
*
this; }
 
151
softfloat& operator /= (
const
softfloat& a) { *
this
= *
this
/ a;
return
*
this; }
 
152
softfloat& operator %= (
const
softfloat& a) { *
this
= *
this
% a;
return
*
this; }
 
161
bool
operator != (
const
softfloat& )
const;
 
162
bool
operator >  (
const
softfloat& )
const;
 
163
bool
operator >= (
const
softfloat& )
const;
 
164
bool
operator <  (
const
softfloat& )
const;
 
165
bool
operator <= (
const
softfloat& )
const;
 
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);
 
199
x.v = (v & 0xff800000) | (s.v & 0x007fffff);
 
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; }
 
287
softdouble& operator *= (
const
softdouble& a) { *
this
= *
this
* a;
return
*
this; }
 
288
softdouble& operator /= (
const
softdouble& a) { *
this
= *
this
/ a;
return
*
this; }
 
289
softdouble& operator %= (
const
softdouble& a) { *
this
= *
this
% a;
return
*
this; }
 
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);
 
341
x.v = (v & 0xFFF0000000000000) | (s.v & 0x000FFFFFFFFFFFFF);
 
407
template<
typename
_Tp>
static
inline
_Tp
saturate_cast(softdouble a) {
return
_Tp(a); }
 
409
template<>
inline
uchar saturate_cast<uchar>(softfloat  a) {
return
(uchar)std::max(std::min(
cvRound(a), (
int)UCHAR_MAX), 0); }
 
410
template<>
inline
uchar saturate_cast<uchar>(softdouble a) {
return
(uchar)std::max(std::min(
cvRound(a), (
int)UCHAR_MAX), 0); }
 
412
template<>
inline
schar saturate_cast<schar>(softfloat  a) {
return
(schar)std::min(std::max(
cvRound(a), (
int)SCHAR_MIN), (
int)SCHAR_MAX); }
 
413
template<>
inline
schar saturate_cast<schar>(softdouble a) {
return
(schar)std::min(std::max(
cvRound(a), (
int)SCHAR_MIN), (
int)SCHAR_MAX); }
 
415
template<>
inline
ushort saturate_cast<ushort>(softfloat  a) {
return
(ushort)std::max(std::min(
cvRound(a), (
int)USHRT_MAX), 0); }
 
416
template<>
inline
ushort saturate_cast<ushort>(softdouble a) {
return
(ushort)std::max(std::min(
cvRound(a), (
int)USHRT_MAX), 0); }
 
418
template<>
inline
short
saturate_cast<short>(softfloat  a) {
return
(
short)std::min(std::max(
cvRound(a), (
int)SHRT_MIN), (
int)SHRT_MAX); }
 
419
template<>
inline
short
saturate_cast<short>(softdouble a) {
return
(
short)std::min(std::max(
cvRound(a), (
int)SHRT_MIN), (
int)SHRT_MAX); }
 
421
template<>
inline
int
saturate_cast<int>(softfloat  a) {
return
cvRound(a); }
 
422
template<>
inline
int
saturate_cast<int>(softdouble a) {
return
cvRound(a); }
 
424
template<>
inline
int64_t saturate_cast<int64_t>(softfloat  a) {
return
cvRound(a); }
 
425
template<>
inline
int64_t saturate_cast<int64_t>(softdouble a) {
return
cvRound64(a); }
 
431
template<>
inline
unsigned
saturate_cast<unsigned>(softdouble a) {
return
cvRound(a); }
 
433
template<>
inline
uint64_t saturate_cast<uint64_t>(softfloat  a) {
return
cvRound(a); }
 
434
template<>
inline
uint64_t saturate_cast<uint64_t>(softdouble a) {
return
cvRound64(a); }
 
438
inline
softdouble
min(
const
softdouble& a,
const
softdouble& b) {
return
(a > b) ? b : a; }
 
440
inline
softfloat
max(
const
softfloat&  a,
const
softfloat&  b) {
return
(a > b) ? a : b; }
 
441
inline
softdouble
max(
const
softdouble& a,
const
softdouble& b) {
return
(a > b) ? a : b; }
 
445
inline
softdouble abs( softdouble a) { softdouble x; x.v = a.v & ((1ULL << 63) - 1);
return
x; }
 
CV_EXPORTS_W void max(InputArray src1, InputArray src2, OutputArray dst)
Calculates per-element maximum of two arrays or an array and a scalar.
 
CV_EXPORTS_W void sqrt(InputArray src, OutputArray dst)
Calculates a square root of array elements.
 
CV_EXPORTS_W void exp(InputArray src, OutputArray dst)
Calculates the exponent of every array element.
 
CV_EXPORTS_W void pow(InputArray src, double power, OutputArray dst)
Raises every array element to a power.
 
CV_EXPORTS_W void min(InputArray src1, InputArray src2, OutputArray dst)
Calculates per-element minimum of two arrays or an array and a scalar.
 
CV_EXPORTS_W void log(InputArray src, OutputArray dst)
Calculates the natural logarithm of every array element.
 
CV_INLINE v_reg< _Tp, n > operator/(const v_reg< _Tp, n > &a, const v_reg< _Tp, n > &b)
Divide values
 
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
 
softdouble(const uint32_t)
Construct from integer
 
static softfloat inf()
Positive infinity constant
Definition:
softfloat.hpp:206
 
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
 
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 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
 
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
 
static softfloat pi()
Correct pi approximation
Definition:
softfloat.hpp:218
 
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
 
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:254
 
static _Tp saturate_cast(uchar v)
Template function for accurate conversion from one primitive type to another.
Definition:
saturate.hpp:80
 
CV_INLINE int cvFloor(double value)
Rounds floating-point number to the nearest integer not larger than the original.
Definition:
fast_math.hpp:234
 
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:
aruco.hpp:75
 
Definition:
softfloat.hpp:227
 
Definition:
softfloat.hpp:90