OpenCV453
|
クラス | |
struct | cv::softfloat |
struct | cv::softdouble |
関数 | |
cv::softfloat::softfloat () | |
Default constructor | |
cv::softfloat::softfloat (const softfloat &c) | |
Copy constructor | |
softfloat & | cv::softfloat::operator= (const softfloat &c) |
Assign constructor | |
static const softfloat | cv::softfloat::fromRaw (const uint32_t a) |
Construct from raw [詳解] | |
cv::softfloat::softfloat (const uint32_t) | |
Construct from integer | |
cv::softfloat::softfloat (const uint64_t) | |
cv::softfloat::softfloat (const int32_t) | |
cv::softfloat::softfloat (const int64_t) | |
cv::softfloat::softfloat (const float a) | |
Construct from float | |
cv::softfloat::operator softdouble () const | |
Type casts | |
cv::softfloat::operator float () const | |
softfloat | cv::softfloat::operator+ (const softfloat &) const |
Basic arithmetics | |
softfloat | cv::softfloat::operator- (const softfloat &) const |
softfloat | cv::softfloat::operator* (const softfloat &) const |
softfloat | cv::softfloat::operator/ (const softfloat &) const |
softfloat | cv::softfloat::operator- () const |
softfloat | cv::softfloat::operator% (const softfloat &) const |
Remainder operator [詳解] | |
softfloat & | cv::softfloat::operator+= (const softfloat &a) |
softfloat & | cv::softfloat::operator-= (const softfloat &a) |
softfloat & | cv::softfloat::operator*= (const softfloat &a) |
softfloat & | cv::softfloat::operator/= (const softfloat &a) |
softfloat & | cv::softfloat::operator%= (const softfloat &a) |
bool | cv::softfloat::operator== (const softfloat &) const |
Comparison operations [詳解] | |
bool | cv::softfloat::operator!= (const softfloat &) const |
bool | cv::softfloat::operator> (const softfloat &) const |
bool | cv::softfloat::operator>= (const softfloat &) const |
bool | cv::softfloat::operator< (const softfloat &) const |
bool | cv::softfloat::operator<= (const softfloat &) const |
bool | cv::softfloat::isNaN () const |
NaN state indicator | |
bool | cv::softfloat::isInf () const |
Inf state indicator | |
bool | cv::softfloat::isSubnormal () const |
Subnormal number indicator | |
bool | cv::softfloat::getSign () const |
Get sign bit | |
softfloat | cv::softfloat::setSign (bool sign) const |
Construct a copy with new sign bit | |
int | cv::softfloat::getExp () const |
Get 0-based exponent | |
softfloat | cv::softfloat::setExp (int e) const |
Construct a copy with new 0-based exponent | |
softfloat | cv::softfloat::getFrac () const |
Get a fraction part [詳解] | |
softfloat | cv::softfloat::setFrac (const softfloat &s) const |
Construct a copy with provided significand [詳解] | |
static softfloat | cv::softfloat::zero () |
Zero constant | |
static softfloat | cv::softfloat::inf () |
Positive infinity constant | |
static softfloat | cv::softfloat::nan () |
Default NaN constant | |
static softfloat | cv::softfloat::one () |
One constant | |
static softfloat | cv::softfloat::min () |
Smallest normalized value | |
static softfloat | cv::softfloat::eps () |
Difference between 1 and next representable value | |
static softfloat | cv::softfloat::max () |
Biggest finite value | |
static softfloat | cv::softfloat::pi () |
Correct pi approximation | |
cv::softdouble::softdouble () | |
Default constructor | |
cv::softdouble::softdouble (const softdouble &c) | |
Copy constructor | |
softdouble & | cv::softdouble::operator= (const softdouble &c) |
Assign constructor | |
static softdouble | cv::softdouble::fromRaw (const uint64_t a) |
Construct from raw [詳解] | |
cv::softdouble::softdouble (const uint32_t) | |
Construct from integer | |
cv::softdouble::softdouble (const uint64_t) | |
cv::softdouble::softdouble (const int32_t) | |
cv::softdouble::softdouble (const int64_t) | |
cv::softdouble::softdouble (const double a) | |
Construct from double | |
cv::softdouble::operator softfloat () const | |
Type casts | |
cv::softdouble::operator double () const | |
softdouble | cv::softdouble::operator+ (const softdouble &) const |
Basic arithmetics | |
softdouble | cv::softdouble::operator- (const softdouble &) const |
softdouble | cv::softdouble::operator* (const softdouble &) const |
softdouble | cv::softdouble::operator/ (const softdouble &) const |
softdouble | cv::softdouble::operator- () const |
softdouble | cv::softdouble::operator% (const softdouble &) const |
Remainder operator [詳解] | |
softdouble & | cv::softdouble::operator+= (const softdouble &a) |
softdouble & | cv::softdouble::operator-= (const softdouble &a) |
softdouble & | cv::softdouble::operator*= (const softdouble &a) |
softdouble & | cv::softdouble::operator/= (const softdouble &a) |
softdouble & | cv::softdouble::operator%= (const softdouble &a) |
bool | cv::softdouble::operator== (const softdouble &) const |
Comparison operations [詳解] | |
bool | cv::softdouble::operator!= (const softdouble &) const |
bool | cv::softdouble::operator> (const softdouble &) const |
bool | cv::softdouble::operator>= (const softdouble &) const |
bool | cv::softdouble::operator< (const softdouble &) const |
bool | cv::softdouble::operator<= (const softdouble &) const |
bool | cv::softdouble::isNaN () const |
NaN state indicator | |
bool | cv::softdouble::isInf () const |
Inf state indicator | |
bool | cv::softdouble::isSubnormal () const |
Subnormal number indicator | |
bool | cv::softdouble::getSign () const |
Get sign bit | |
softdouble | cv::softdouble::setSign (bool sign) const |
Construct a copy with new sign bit | |
int | cv::softdouble::getExp () const |
Get 0-based exponent | |
softdouble | cv::softdouble::setExp (int e) const |
Construct a copy with new 0-based exponent | |
softdouble | cv::softdouble::getFrac () const |
Get a fraction part [詳解] | |
softdouble | cv::softdouble::setFrac (const softdouble &s) const |
Construct a copy with provided significand [詳解] | |
static softdouble | cv::softdouble::zero () |
Zero constant | |
static softdouble | cv::softdouble::inf () |
Positive infinity constant | |
static softdouble | cv::softdouble::nan () |
Default NaN constant | |
static softdouble | cv::softdouble::one () |
One constant | |
static softdouble | cv::softdouble::min () |
Smallest normalized value | |
static softdouble | cv::softdouble::eps () |
Difference between 1 and next representable value | |
static softdouble | cv::softdouble::max () |
Biggest finite value | |
static softdouble | cv::softdouble::pi () |
Correct pi approximation | |
CV_EXPORTS softfloat | cv::mulAdd (const softfloat &a, const softfloat &b, const softfloat &c) |
Fused Multiplication and Addition [詳解] | |
CV_EXPORTS softdouble | cv::mulAdd (const softdouble &a, const softdouble &b, const softdouble &c) |
CV_EXPORTS softfloat | cv::sqrt (const softfloat &a) |
Square root | |
CV_EXPORTS softdouble | cv::sqrt (const softdouble &a) |
template<typename _Tp > | |
static _Tp | cv::saturate_cast (softfloat a) |
Saturate casts | |
template<typename _Tp > | |
static _Tp | cv::saturate_cast (softdouble a) |
template<> | |
uchar | cv::saturate_cast< uchar > (softfloat a) |
template<> | |
uchar | cv::saturate_cast< uchar > (softdouble a) |
template<> | |
schar | cv::saturate_cast< schar > (softfloat a) |
template<> | |
schar | cv::saturate_cast< schar > (softdouble a) |
template<> | |
ushort | cv::saturate_cast< ushort > (softfloat a) |
template<> | |
ushort | cv::saturate_cast< ushort > (softdouble a) |
template<> | |
short | cv::saturate_cast< short > (softfloat a) |
template<> | |
short | cv::saturate_cast< short > (softdouble a) |
template<> | |
int | cv::saturate_cast< int > (softfloat a) |
template<> | |
int | cv::saturate_cast< int > (softdouble a) |
template<> | |
int64_t | cv::saturate_cast< int64_t > (softfloat a) |
template<> | |
int64_t | cv::saturate_cast< int64_t > (softdouble a) |
template<> | |
unsigned | cv::saturate_cast< unsigned > (softfloat a) |
Saturate cast to unsigned integer and unsigned long long integer We intentionally do not clip negative numbers, to make -1 become 0xffffffff etc. | |
template<> | |
unsigned | cv::saturate_cast< unsigned > (softdouble a) |
template<> | |
uint64_t | cv::saturate_cast< uint64_t > (softfloat a) |
template<> | |
uint64_t | cv::saturate_cast< uint64_t > (softdouble a) |
softfloat | cv::min (const softfloat &a, const softfloat &b) |
Min and Max functions | |
softdouble | cv::min (const softdouble &a, const softdouble &b) |
softfloat | cv::max (const softfloat &a, const softfloat &b) |
softdouble | cv::max (const softdouble &a, const softdouble &b) |
softfloat | cv::abs (softfloat a) |
Absolute value | |
softdouble | cv::abs (softdouble a) |
CV_EXPORTS softfloat | cv::exp (const softfloat &a) |
Exponent [詳解] | |
CV_EXPORTS softdouble | cv::exp (const softdouble &a) |
CV_EXPORTS softfloat | cv::log (const softfloat &a) |
Natural logarithm [詳解] | |
CV_EXPORTS softdouble | cv::log (const softdouble &a) |
CV_EXPORTS softfloat | cv::pow (const softfloat &a, const softfloat &b) |
Raising to the power [詳解] | |
CV_EXPORTS softdouble | cv::pow (const softdouble &a, const softdouble &b) |
CV_EXPORTS softfloat | cv::cbrt (const softfloat &a) |
Cube root [詳解] | |
CV_EXPORTS softdouble | cv::sin (const softdouble &a) |
Sine [詳解] | |
CV_EXPORTS softdouble | cv::cos (const softdouble &a) |
Cosine [詳解] | |
変数 | |
uint32_t | cv::softfloat::v |
uint64_t | cv::softdouble::v |
SoftFloat is a software implementation of floating-point calculations according to IEEE 754 standard. All calculations are done in integers, that's why they are machine-independent and bit-exact. This library can be useful in accuracy-critical parts like look-up tables generation, tests, etc. OpenCV contains a subset of SoftFloat partially rewritten to C++.
There are two basic types: softfloat and softdouble. These types are binary compatible with float and double types respectively and support conversions to/from them. Other types from original SoftFloat library like fp16 or fp128 were thrown away as well as quiet/signaling NaN support, on-the-fly rounding mode switch and exception flags (though exceptions can be implemented in the future).
Both types support the following:
Cube root
Special cases:
CV_EXPORTS softdouble cv::cos | ( | const softdouble & | a | ) |
Cosine
Special cases:
Exponent
Special cases:
|
inlinestatic |
Construct from raw
Builds new value from raw binary representation
|
inlinestatic |
Construct from raw
Builds new value from raw binary representation
|
inline |
Get a fraction part
Returns a number 1 <= x < 2 with the same significand
|
inline |
Get a fraction part
Returns a number 1 <= x < 2 with the same significand
Natural logarithm
Special cases:
Fused Multiplication and Addition
Computes (a*b)+c with single rounding
softdouble cv::softdouble::operator% | ( | const softdouble & | ) | const |
Remainder operator
A quote from original SoftFloat manual:
The IEEE Standard remainder operation computes the value a - n * b, where n is the integer closest to a / b. If a / b is exactly halfway between two integers, n is the even integer closest to a / b. The IEEE Standard’s remainder operation is always exact and so requires no rounding. Depending on the relative magnitudes of the operands, the remainder functions can take considerably longer to execute than the other SoftFloat functions. This is an inherent characteristic of the remainder operation itself and is not a flaw in the SoftFloat implementation.
Remainder operator
A quote from original SoftFloat manual:
The IEEE Standard remainder operation computes the value a - n * b, where n is the integer closest to a / b. If a / b is exactly halfway between two integers, n is the even integer closest to a / b. The IEEE Standard’s remainder operation is always exact and so requires no rounding. Depending on the relative magnitudes of the operands, the remainder functions can take considerably longer to execute than the other SoftFloat functions. This is an inherent characteristic of the remainder operation itself and is not a flaw in the SoftFloat implementation.
bool cv::softdouble::operator== | ( | const softdouble & | ) | const |
Comparison operations
bool cv::softfloat::operator== | ( | const softfloat & | ) | const |
Comparison operations
Raising to the power
Special cases:
|
inline |
Construct a copy with provided significand
Constructs a copy of a number with significand taken from parameter
Construct a copy with provided significand
Constructs a copy of a number with significand taken from parameter
CV_EXPORTS softdouble cv::sin | ( | const softdouble & | a | ) |
Sine
Special cases: