OpenCV 4.12.0
开源计算机视觉
加载中...
搜索中...
无匹配项

详细描述

SoftFloat 是一个根据 IEEE 754 标准实现的浮点计算软件。所有计算都在整数中完成,因此它们与机器无关且位精确。这个库在精度要求高的部分(如查找表生成、测试等)非常有用。OpenCV 包含 SoftFloat 的一个子集,该子集已部分重写为 C++。

类型

存在两种基本类型:softfloatsoftdouble。这些类型分别与 float 和 double 类型二进制兼容,并支持与它们之间的转换。原始 SoftFloat 库中的其他类型(如 fp16 或 fp128)以及安静/信号 NaN 支持、即时舍入模式切换和异常标志都被移除(尽管未来可能会实现异常)。

操作

这两种类型都支持以下操作:

结构体  cv::softdouble
 
结构体  cv::softfloat
 

函数

 cv::softdouble::softdouble ()
 默认构造函数。
 
 cv::softdouble::softdouble (const double a)
 从 double 构造。
 
 cv::softdouble::softdouble (const int32_t)
 
 cv::softdouble::softdouble (const int64_t)
 
 cv::softdouble::softdouble (const softdouble &c)
 复制构造函数。
 
 cv::softdouble::softdouble (const uint32_t)
 从整数构造。
 
 cv::softdouble::softdouble (const uint64_t)
 
 cv::softfloat::softfloat ()
 默认构造函数。
 
 cv::softfloat::softfloat (const float a)
 从 float 构造。
 
 cv::softfloat::softfloat (const int32_t)
 
 cv::softfloat::softfloat (const int64_t)
 
 cv::softfloat::softfloat (const softfloat &c)
 复制构造函数。
 
 cv::softfloat::softfloat (const uint32_t)
 从整数构造。
 
 cv::softfloat::softfloat (const uint64_t)
 
softdouble cv::abs (softdouble a)
 
softfloat cv::abs (softfloat a)
 绝对值。
 
softfloat cv::cbrt (const softfloat &a)
 Cube root.
 
softdouble cv::cos (const softdouble &a)
 Cosine.
 
static softdouble cv::softdouble::eps ()
 1 和下一个可表示值之间的差。
 
static softfloat cv::softfloat::eps ()
 1 和下一个可表示值之间的差。
 
softdouble cv::exp (const softdouble &a)
 
softfloat cv::exp (const softfloat &a)
 指数函数。
 
static softdouble cv::softdouble::fromRaw (const uint64_t a)
 从原始数据构造。
 
static const softfloat cv::softfloat::fromRaw (const uint32_t a)
 从原始数据构造。
 
int cv::softdouble::getExp () const
 获取基于 0 的指数。
 
int cv::softfloat::getExp () const
 获取基于 0 的指数。
 
softdouble cv::softdouble::getFrac () const
 获取小数部分。
 
softfloat cv::softfloat::getFrac () const
 获取小数部分。
 
bool cv::softdouble::getSign () const
 获取符号位。
 
bool cv::softfloat::getSign () const
 获取符号位。
 
static softdouble cv::softdouble::inf ()
 正无穷大常数。
 
static softfloat cv::softfloat::inf ()
 正无穷大常数。
 
bool cv::softdouble::isInf () const
 Inf 状态指示器。
 
bool cv::softfloat::isInf () const
 Inf 状态指示器。
 
bool cv::softdouble::isNaN () const
 NaN 状态指示器。
 
bool cv::softfloat::isNaN () const
 NaN 状态指示器。
 
bool cv::softdouble::isSubnormal () const
 次正规数指示器。
 
bool cv::softfloat::isSubnormal () const
 次正规数指示器。
 
softdouble cv::log (const softdouble &a)
 
softfloat cv::log (const softfloat &a)
 自然对数。
 
softdouble cv::max (const softdouble &a, const softdouble &b)
 
softfloat cv::max (const softfloat &a, const softfloat &b)
 
static softdouble cv::softdouble::max ()
 最大有限值。
 
static softfloat cv::softfloat::max ()
 最大有限值。
 
softdouble cv::min (const softdouble &a, const softdouble &b)
 
softfloat cv::min (const softfloat &a, const softfloat &b)
 最小值和最大值函数。
 
static softdouble cv::softdouble::min ()
 最小归一化值。
 
static softfloat cv::softfloat::min ()
 最小归一化值。
 
softdouble cv::mulAdd (const softdouble &a, const softdouble &b, const softdouble &c)
 
softfloat cv::mulAdd (const softfloat &a, const softfloat &b, const softfloat &c)
 熔合乘加。
 
static softdouble cv::softdouble::nan ()
 默认 NaN 常数。
 
static softfloat cv::softfloat::nan ()
 默认 NaN 常数。
 
static softdouble cv::softdouble::one ()
 1 常数。
 
static softfloat cv::softfloat::one ()
 1 常数。
 
 cv::softdouble::operator double () const
 
 cv::softfloat::operator float () const
 
 cv::softfloat::operator softdouble () const
 类型转换

 
 cv::softdouble::operator softfloat () const
 类型转换

 
bool cv::softdouble::operator!= (const softdouble &) const
 
bool cv::softfloat::operator!= (const softfloat &) const
 
softdouble cv::softdouble::operator% (const softdouble &) const
 取余运算符。
 
softfloat cv::softfloat::operator% (const softfloat &) const
 取余运算符。
 
softdoublecv::softdouble::operator%= (const softdouble &a)
 
softfloatcv::softfloat::operator%= (const softfloat &a)
 
softdouble cv::softdouble::operator* (const softdouble &) const
 
softfloat cv::softfloat::operator* (const softfloat &) const
 
softdoublecv::softdouble::operator*= (const softdouble &a)
 
softfloatcv::softfloat::operator*= (const softfloat &a)
 
softdouble cv::softdouble::operator+ (const softdouble &) const
 基本算术运算。
 
softfloat cv::softfloat::operator+ (const softfloat &) const
 基本算术运算。
 
softdoublecv::softdouble::operator+= (const softdouble &a)
 
softfloatcv::softfloat::operator+= (const softfloat &a)
 
softdouble cv::softdouble::operator- () const
 
softdouble cv::softdouble::operator- (const softdouble &) const
 
softfloat cv::softfloat::operator- () const
 
softfloat cv::softfloat::operator- (const softfloat &) const
 
softdoublecv::softdouble::operator-= (const softdouble &a)
 
softfloatcv::softfloat::operator-= (const softfloat &a)
 
softdouble cv::softdouble::operator/ (const softdouble &) const
 
softfloat cv::softfloat::operator/ (const softfloat &) const
 
softdoublecv::softdouble::operator/= (const softdouble &a)
 
softfloatcv::softfloat::operator/= (const softfloat &a)
 
bool cv::softdouble::operator< (const softdouble &) const
 
bool cv::softfloat::operator< (const softfloat &) const
 
bool cv::softdouble::operator<= (const softdouble &) const
 
bool cv::softfloat::operator<= (const softfloat &) const
 
softdoublecv::softdouble::operator= (const softdouble &c)
 赋值构造函数。
 
softfloatcv::softfloat::operator= (const softfloat &c)
 赋值构造函数。
 
bool cv::softdouble::operator== (const softdouble &) const
 比较运算。
 
bool cv::softfloat::operator== (const softfloat &) const
 比较运算。
 
bool cv::softdouble::operator> (const softdouble &) const
 
bool cv::softfloat::operator> (const softfloat &) const
 
bool cv::softdouble::operator>= (const softdouble &) const
 
bool cv::softfloat::operator>= (const softfloat &) const
 
static softdouble cv::softdouble::pi ()
 正确的 pi 近似值。
 
static softfloat cv::softfloat::pi ()
 正确的 pi 近似值。
 
softdouble cv::pow (const softdouble &a, const softdouble &b)
 
softfloat cv::pow (const softfloat &a, const softfloat &b)
 幂运算。
 
template<typename _Tp >
static _Tp cv::saturate_cast (softdouble a)
 
template<typename _Tp >
static _Tp cv::saturate_cast (softfloat a)
 饱和转换。
 
template<>
int64_t cv::saturate_cast< int64_t > (softdouble a)
 
template<>
int64_t cv::saturate_cast< int64_t > (softfloat a)
 
template<>
schar cv::saturate_cast< schar > (softdouble a)
 
template<>
schar cv::saturate_cast< schar > (softfloat a)
 
template<>
short cv::saturate_cast< short > (softdouble a)
 
template<>
short cv::saturate_cast< short > (softfloat a)
 
template<>
uchar cv::saturate_cast< uchar > (softdouble a)
 
template<>
uchar cv::saturate_cast< uchar > (softfloat a)
 
template<>
uint64_t cv::saturate_cast< uint64_t > (softdouble a)
 
template<>
uint64_t cv::saturate_cast< uint64_t > (softfloat a)
 
template<>
unsigned cv::saturate_cast< unsigned > (softdouble a)
 
template<>
unsigned cv::saturate_cast< unsigned > (softfloat a)
 饱和转换为无符号整数和无符号长长整数。我们故意不裁剪负数,以使 -1 变为 0xffffffff 等。
 
template<>
ushort cv::saturate_cast< ushort > (softdouble a)
 
template<>
ushort cv::saturate_cast< ushort > (softfloat a)
 
softdouble cv::softdouble::setExp (int e) const
 构造一个具有新 0 基指数的副本。
 
softfloat cv::softfloat::setExp (int e) const
 构造一个具有新 0 基指数的副本。
 
softdouble cv::softdouble::setFrac (const softdouble &s) const
 构造一个具有提供的尾数的副本。
 
softfloat cv::softfloat::setFrac (const softfloat &s) const
 构造一个具有提供的尾数的副本。
 
softdouble cv::softdouble::setSign (bool sign) const
 构造一个具有新符号位的副本。
 
softfloat cv::softfloat::setSign (bool sign) const
 构造一个具有新符号位的副本。
 
softdouble cv::sin (const softdouble &a)
 正弦。
 
softdouble cv::sqrt (const softdouble &a)
 
softfloat cv::sqrt (const softfloat &a)
 平方根。
 
static softdouble cv::softdouble::zero ()
 零常数。
 
static softfloat cv::softfloat::zero ()
 零常数。
 

变量

uint64_t cv::softdouble::v
 
uint32_t cv::softfloat::v
 

函数文档

◆ softdouble() [1/7]

cv::softdouble::softdouble ( )
inline

#include <opencv2/core/softfloat.hpp>

默认构造函数。

◆ softdouble() [2/7]

cv::softdouble::softdouble ( const double a)
inlineexplicit

#include <opencv2/core/softfloat.hpp>

从 double 构造。

◆ softdouble() [3/7]

cv::softdouble::softdouble ( const int32_t )
显式

◆ softdouble() [4/7]

cv::softdouble::softdouble ( const int64_t )
显式

◆ softdouble() [5/7]

cv::softdouble::softdouble ( const softdouble & c)
inline

#include <opencv2/core/softfloat.hpp>

复制构造函数。

◆ softdouble() [6/7]

cv::softdouble::softdouble ( const uint32_t )
显式

#include <opencv2/core/softfloat.hpp>

从整数构造。

◆ softdouble() [7/7]

cv::softdouble::softdouble ( const uint64_t )
显式

◆ softfloat() [1/7]

cv::softfloat::softfloat ( )
inline

#include <opencv2/core/softfloat.hpp>

默认构造函数。

◆ softfloat() [2/7]

cv::softfloat::softfloat ( const float a)
inlineexplicit

#include <opencv2/core/softfloat.hpp>

从 float 构造。

◆ softfloat() [3/7]

cv::softfloat::softfloat ( const int32_t )
显式

◆ softfloat() [4/7]

cv::softfloat::softfloat ( const int64_t )
显式

◆ softfloat() [5/7]

cv::softfloat::softfloat ( const softfloat & c)
inline

#include <opencv2/core/softfloat.hpp>

复制构造函数。

◆ softfloat() [6/7]

cv::softfloat::softfloat ( const uint32_t )
显式

#include <opencv2/core/softfloat.hpp>

从整数构造。

◆ softfloat() [7/7]

cv::softfloat::softfloat ( const uint64_t )
显式

◆ abs() [1/2]

softdouble cv::abs ( softdouble a)
inline

◆ abs() [2/2]

softfloat cv::abs ( softfloat a)
inline

#include <opencv2/core/softfloat.hpp>

绝对值。

◆ cbrt()

softfloat cv::cbrt ( const softfloat & a)

#include <opencv2/core/softfloat.hpp>

Cube root.

特殊情况

  • cbrt(NaN) 是 NaN
  • cbrt(+/-Inf) 是 +/-Inf

◆ cos()

softdouble cv::cos ( const softdouble & a)

#include <opencv2/core/softfloat.hpp>

Cosine.

特殊情况

  • cos(Inf) 或 cos(NaN) 是 NaN
  • 当 cos(x) 接近 +/- 1 时,cos(x) == +/- 1

◆ eps() [1/2]

static softdouble cv::softdouble::eps ( )
inlinestatic

#include <opencv2/core/softfloat.hpp>

1 和下一个可表示值之间的差。

◆ eps() [2/2]

static softfloat cv::softfloat::eps ( )
inlinestatic

#include <opencv2/core/softfloat.hpp>

1 和下一个可表示值之间的差。

◆ exp() [1/2]

softdouble cv::exp ( const softdouble & a)
Python
cv.exp(src[, dst]) -> dst

◆ exp() [2/2]

softfloat cv::exp ( const softfloat & a)
Python
cv.exp(src[, dst]) -> dst

#include <opencv2/core/softfloat.hpp>

指数函数。

特殊情况

  • exp(NaN) 是 NaN
  • exp(-Inf) == 0
  • exp(+Inf) == +Inf

◆ fromRaw() [1/2]

static softdouble cv::softdouble::fromRaw ( const uint64_t a)
inlinestatic

#include <opencv2/core/softfloat.hpp>

从原始数据构造。

从原始二进制表示构建新值

◆ fromRaw() [2/2]

static const softfloat cv::softfloat::fromRaw ( const uint32_t a)
inlinestatic

#include <opencv2/core/softfloat.hpp>

从原始数据构造。

从原始二进制表示构建新值

◆ getExp() [1/2] (重载)

int cv::softdouble::getExp ( ) const
inline

#include <opencv2/core/softfloat.hpp>

获取基于 0 的指数。

◆ getExp() [2/2] (重载)

int cv::softfloat::getExp ( ) const
inline

#include <opencv2/core/softfloat.hpp>

获取基于 0 的指数。

◆ getFrac() [1/2] (重载)

softdouble cv::softdouble::getFrac ( ) const
inline

#include <opencv2/core/softfloat.hpp>

获取小数部分。

返回一个具有相同有效数的数字,范围在 1 <= x < 2。

◆ getFrac() [2/2] (重载)

softfloat cv::softfloat::getFrac ( ) const
inline

#include <opencv2/core/softfloat.hpp>

获取小数部分。

返回一个具有相同有效数的数字,范围在 1 <= x < 2。

◆ getSign() [1/2] (重载)

bool cv::softdouble::getSign ( ) const
inline

#include <opencv2/core/softfloat.hpp>

获取符号位。

◆ getSign() [2/2] (重载)

bool cv::softfloat::getSign ( ) const
inline

#include <opencv2/core/softfloat.hpp>

获取符号位。

◆ inf() [1/2] (重载)

static softdouble cv::softdouble::inf ( )
inlinestatic

#include <opencv2/core/softfloat.hpp>

正无穷大常数。

◆ inf() [2/2] (重载)

static softfloat cv::softfloat::inf ( )
inlinestatic

#include <opencv2/core/softfloat.hpp>

正无穷大常数。

◆ isInf() [1/2] (重载)

bool cv::softdouble::isInf ( ) const
inline

#include <opencv2/core/softfloat.hpp>

Inf 状态指示器。

◆ isInf() [2/2] (重载)

bool cv::softfloat::isInf ( ) const
inline

#include <opencv2/core/softfloat.hpp>

Inf 状态指示器。

◆ isNaN() [1/2] (重载)

bool cv::softdouble::isNaN ( ) const
inline

#include <opencv2/core/softfloat.hpp>

NaN 状态指示器。

◆ isNaN() [2/2] (重载)

bool cv::softfloat::isNaN ( ) const
inline

#include <opencv2/core/softfloat.hpp>

NaN 状态指示器。

◆ isSubnormal() [1/2] (重载)

bool cv::softdouble::isSubnormal ( ) const
inline

#include <opencv2/core/softfloat.hpp>

次正规数指示器。

◆ isSubnormal() [2/2] (重载)

bool cv::softfloat::isSubnormal ( ) const
inline

#include <opencv2/core/softfloat.hpp>

次正规数指示器。

◆ log() [1/2] (重载)

softdouble cv::log ( const softdouble & a)
Python
cv.log(src[, dst]) -> dst

◆ log() [2/2] (重载)

softfloat cv::log ( const softfloat & a)
Python
cv.log(src[, dst]) -> dst

#include <opencv2/core/softfloat.hpp>

自然对数。

特殊情况

  • log(NaN) 和 log(x < 0) 的结果为 NaN
  • log(0) == -Inf

◆ max() [1/4] (重载)

softdouble cv::max ( const softdouble & a,
const softdouble & b )
inline
Python
cv.max(src1, src2[, dst]) -> dst

◆ max() [2/4] (重载)

softfloat cv::max ( const softfloat & a,
const softfloat & b )
inline
Python
cv.max(src1, src2[, dst]) -> dst

◆ max() [3/4] (重载)

static softdouble cv::softdouble::max ( )
inlinestatic

#include <opencv2/core/softfloat.hpp>

最大有限值。

◆ max() [4/4] (重载)

static softfloat cv::softfloat::max ( )
inlinestatic

#include <opencv2/core/softfloat.hpp>

最大有限值。

◆ min() [1/4] (重载)

softdouble cv::min ( const softdouble & a,
const softdouble & b )
inline
Python
cv.min(src1, src2[, dst]) -> dst

◆ min() [2/4] (重载)

softfloat cv::min ( const softfloat & a,
const softfloat & b )
inline
Python
cv.min(src1, src2[, dst]) -> dst

#include <opencv2/core/softfloat.hpp>

最小值和最大值函数。

◆ min() [3/4] (重载)

static softdouble cv::softdouble::min ( )
inlinestatic

#include <opencv2/core/softfloat.hpp>

最小归一化值。

◆ min() [4/4] (重载)

static softfloat cv::softfloat::min ( )
inlinestatic

#include <opencv2/core/softfloat.hpp>

最小归一化值。

◆ mulAdd() [1/2] (重载)

softdouble cv::mulAdd ( const softdouble & a,
const softdouble & b,
const softdouble & c )

◆ mulAdd() [2/2] (重载)

softfloat cv::mulAdd ( const softfloat & a,
const softfloat & b,
const softfloat & c )

#include <opencv2/core/softfloat.hpp>

熔合乘加。

通过单次舍入计算 (a*b)+c

◆ nan() [1/2] (重载)

static softdouble cv::softdouble::nan ( )
inlinestatic

#include <opencv2/core/softfloat.hpp>

默认 NaN 常数。

◆ nan() [2/2] (重载)

static softfloat cv::softfloat::nan ( )
inlinestatic

#include <opencv2/core/softfloat.hpp>

默认 NaN 常数。

◆ one() [1/2] (重载)

static softdouble cv::softdouble::one ( )
inlinestatic

#include <opencv2/core/softfloat.hpp>

1 常数。

◆ one() [2/2] (重载)

static softfloat cv::softfloat::one ( )
inlinestatic

#include <opencv2/core/softfloat.hpp>

1 常数。

◆ operator double()

cv::softdouble::operator double ( ) const
inline

◆ operator float()

cv::softfloat::operator float ( ) const
inline

◆ operator softdouble()

cv::softfloat::operator softdouble ( ) const

#include <opencv2/core/softfloat.hpp>

类型转换

◆ operator softfloat()

cv::softdouble::operator softfloat ( ) const

#include <opencv2/core/softfloat.hpp>

类型转换

◆ operator!=() [1/2] (重载)

bool cv::softdouble::operator!= ( const softdouble & ) const

◆ operator!=() [2/2] (重载)

bool cv::softfloat::operator!= ( const softfloat & ) const

◆ operator%() [1/2] (重载)

softdouble cv::softdouble::operator% ( const softdouble & ) const

#include <opencv2/core/softfloat.hpp>

取余运算符。

摘自原始 SoftFloat 手册的一段话

IEEE 标准余数运算计算值 a - n * b,其中 n 是最接近 a / b 的整数。如果 a / b 恰好在两个整数的中间,则 n 是最接近 a / b 的偶数。IEEE 标准的余数运算总是精确的,因此无需舍入。根据操作数的相对大小,余数函数可能比其他 SoftFloat 函数的执行时间长得多。这是余数运算本身的固有特性,并非 SoftFloat 实现中的缺陷。

◆ operator%() [2/2] (重载)

softfloat cv::softfloat::operator% ( const softfloat & ) const

#include <opencv2/core/softfloat.hpp>

取余运算符。

摘自原始 SoftFloat 手册的一段话

IEEE 标准余数运算计算值 a - n * b,其中 n 是最接近 a / b 的整数。如果 a / b 恰好在两个整数的中间,则 n 是最接近 a / b 的偶数。IEEE 标准的余数运算总是精确的,因此无需舍入。根据操作数的相对大小,余数函数可能比其他 SoftFloat 函数的执行时间长得多。这是余数运算本身的固有特性,并非 SoftFloat 实现中的缺陷。

◆ operator%=() [1/2] (重载)

softdouble & cv::softdouble::operator%= ( const softdouble & a)
inline

◆ operator%=() [2/2] (重载)

softfloat & cv::softfloat::operator%= ( const softfloat & a)
inline

◆ operator*() [1/2] (重载)

softdouble cv::softdouble::operator* ( const softdouble & ) const

◆ operator*() [2/2] (重载)

softfloat cv::softfloat::operator* ( const softfloat & ) const

◆ operator*=() [1/2] (重载)

softdouble & cv::softdouble::operator*= ( const softdouble & a)
inline

◆ operator*=() [2/2] (重载)

softfloat & cv::softfloat::operator*= ( const softfloat & a)
inline

◆ operator+() [1/2] (重载)

softdouble cv::softdouble::operator+ ( const softdouble & ) const

#include <opencv2/core/softfloat.hpp>

基本算术运算。

◆ operator+() [2/2] (重载)

softfloat cv::softfloat::operator+ ( const softfloat & ) const

#include <opencv2/core/softfloat.hpp>

基本算术运算。

◆ operator+=() [1/2] (重载)

softdouble & cv::softdouble::operator+= ( const softdouble & a)
inline

◆ operator+=() [2/2] (重载)

softfloat & cv::softfloat::operator+= ( const softfloat & a)
inline

◆ operator-() [1/4] (重载)

softdouble cv::softdouble::operator- ( ) const
inline

◆ operator-() [2/4] (重载)

softdouble cv::softdouble::operator- ( const softdouble & ) const

◆ operator-() [3/4] (重载)

softfloat cv::softfloat::operator- ( ) const
inline

◆ operator-() [4/4] (重载)

softfloat cv::softfloat::operator- ( const softfloat & ) const

◆ operator-=() [1/2] (重载)

softdouble & cv::softdouble::operator-= ( const softdouble & a)
inline

◆ operator-=() [2/2] (重载)

softfloat & cv::softfloat::operator-= ( const softfloat & a)
inline

◆ operator/() [1/2] (重载)

softdouble cv::softdouble::operator/ ( const softdouble & ) const

◆ operator/() [2/2] (重载)

softfloat cv::softfloat::operator/ ( const softfloat & ) const

◆ operator/=() [1/2] (重载)

softdouble & cv::softdouble::operator/= ( const softdouble & a)
inline

◆ operator/=() [2/2] (重载)

softfloat & cv::softfloat::operator/= ( const softfloat & a)
inline

◆ operator<() [1/2] (重载)

bool cv::softdouble::operator< ( const softdouble & ) const

◆ operator<() [2/2] (重载)

bool cv::softfloat::operator< ( const softfloat & ) const

◆ operator<=() [1/2] (重载)

bool cv::softdouble::operator<= ( const softdouble & ) const

◆ operator<=() [2/2] (重载)

bool cv::softfloat::operator<= ( const softfloat & ) const

◆ operator=() [1/2] (重载)

softdouble & cv::softdouble::operator= ( const softdouble & c)
inline

#include <opencv2/core/softfloat.hpp>

赋值构造函数。

◆ operator=() [2/2] (重载)

softfloat & cv::softfloat::operator= ( const softfloat & c)
inline

#include <opencv2/core/softfloat.hpp>

赋值构造函数。

◆ operator==() [1/2] (重载)

bool cv::softdouble::operator== ( const softdouble & ) const

#include <opencv2/core/softfloat.hpp>

比较运算。

  • 任何涉及 NaN 的运算都会产生 false。
    • 唯一的例外是当 x 为 NaN 时:对于任何 y,x != y。
  • 正零和负零相等。

◆ operator==() [2/2] (重载)

bool cv::softfloat::operator== ( const softfloat & ) const

#include <opencv2/core/softfloat.hpp>

比较运算。

  • 任何涉及 NaN 的运算都会产生 false。
    • 唯一的例外是当 x 为 NaN 时:对于任何 y,x != y。
  • 正零和负零相等。

◆ operator>() [1/2] (重载)

bool cv::softdouble::operator> ( const softdouble & ) const

◆ operator>() [2/2] (重载)

bool cv::softfloat::operator> ( const softfloat & ) const

◆ operator>=() [1/2] (重载)

bool cv::softdouble::operator>= ( const softdouble & ) const

◆ operator>=() [2/2] (重载)

bool cv::softfloat::operator>= ( const softfloat & ) const

◆ pi() [1/2] (重载)

static softdouble cv::softdouble::pi ( )
inlinestatic

#include <opencv2/core/softfloat.hpp>

正确的 pi 近似值。

◆ pi() [2/2] (重载)

static softfloat cv::softfloat::pi ( )
inlinestatic

#include <opencv2/core/softfloat.hpp>

正确的 pi 近似值。

◆ pow() [1/2] (重载)

softdouble cv::pow ( const softdouble & a,
const softdouble & b )
Python
cv.pow(src, power[, dst]) -> dst

◆ pow() [2/2] (重载)

softfloat cv::pow ( const softfloat & a,
const softfloat & b )
Python
cv.pow(src, power[, dst]) -> dst

#include <opencv2/core/softfloat.hpp>

幂运算。

特殊情况

  • 对于任何 x,x**NaN 为 NaN
  • ( |x| == 1 )**Inf 为 NaN
  • ( |x| > 1 )**+Inf 或 ( |x| < 1 )**-Inf 为 +Inf
  • ( |x| > 1 )**-Inf 或 ( |x| < 1 )**+Inf 为 0
  • 对于任何 x,x ** 0 == 1
  • 对于任何 x,x ** 1 == 1
  • 对于任何其他 y,NaN ** y 为 NaN
  • Inf**(y < 0) == 0
  • 对于任何其他 y,Inf ** y 为 +Inf
  • 如果 x 无法正确舍入为整数,则对于任何其他 y,(x < 0)**y 为 NaN
  • 0 ** 0 == 1
  • 0 ** (y < 0) 为 +Inf
  • 0 ** (y > 0) 为 0

◆ saturate_cast() [1/2] (重载)

template<typename _Tp >
static _Tp cv::saturate_cast ( softdouble a)
inlinestatic

◆ saturate_cast() [2/2] (重载)

template<typename _Tp >
static _Tp cv::saturate_cast ( softfloat a)
inlinestatic

#include <opencv2/core/softfloat.hpp>

饱和转换。

◆ saturate_cast< int64_t >() [1/2] (重载)

template<>
int64_t cv::saturate_cast< int64_t > ( softdouble a)
inline

#include <opencv2/core/softfloat.hpp>

此函数的调用图如下

◆ saturate_cast< int64_t >() [2/2] (重载)

template<>
int64_t cv::saturate_cast< int64_t > ( softfloat a)
inline

#include <opencv2/core/softfloat.hpp>

此函数的调用图如下

◆ saturate_cast< schar >() [1/2] (重载)

template<>
schar cv::saturate_cast< schar > ( softdouble a)
inline

#include <opencv2/core/softfloat.hpp>

此函数的调用图如下

◆ saturate_cast< schar >() [2/2] (重载)

template<>
schar cv::saturate_cast< schar > ( softfloat a)
inline

#include <opencv2/core/softfloat.hpp>

此函数的调用图如下

◆ saturate_cast< short >() [1/2] (重载)

template<>
short cv::saturate_cast< short > ( softdouble a)
inline

#include <opencv2/core/softfloat.hpp>

此函数的调用图如下

◆ saturate_cast< short >() [2/2] (重载)

template<>
short cv::saturate_cast< short > ( softfloat a)
inline

#include <opencv2/core/softfloat.hpp>

此函数的调用图如下

◆ saturate_cast< uchar >() [1/2] (重载)

template<>
uchar cv::saturate_cast< uchar > ( softdouble a)
inline

#include <opencv2/core/softfloat.hpp>

此函数的调用图如下

◆ saturate_cast< uchar >() [2/2] (重载)

template<>
uchar cv::saturate_cast< uchar > ( softfloat a)
inline

#include <opencv2/core/softfloat.hpp>

此函数的调用图如下

◆ saturate_cast< uint64_t >() [1/2] (重载)

template<>
uint64_t cv::saturate_cast< uint64_t > ( softdouble a)
inline

#include <opencv2/core/softfloat.hpp>

此函数的调用图如下

◆ saturate_cast< uint64_t >() [2/2] (重载)

template<>
uint64_t cv::saturate_cast< uint64_t > ( softfloat a)
inline

#include <opencv2/core/softfloat.hpp>

此函数的调用图如下

◆ saturate_cast< unsigned >() [1/2] (重载)

template<>
unsigned cv::saturate_cast< unsigned > ( softdouble a)
inline

#include <opencv2/core/softfloat.hpp>

此函数的调用图如下

◆ saturate_cast< unsigned >() [2/2] (重载)

template<>
unsigned cv::saturate_cast< unsigned > ( softfloat a)
inline

#include <opencv2/core/softfloat.hpp>

饱和转换为无符号整数和无符号长长整数。我们故意不裁剪负数,以使 -1 变为 0xffffffff 等。

此函数的调用图如下

◆ saturate_cast< ushort >() [1/2] (重载)

template<>
ushort cv::saturate_cast< ushort > ( softdouble a)
inline

#include <opencv2/core/softfloat.hpp>

此函数的调用图如下

◆ saturate_cast< ushort >() [2/2] (重载)

template<>
ushort cv::saturate_cast< ushort > ( softfloat a)
inline

#include <opencv2/core/softfloat.hpp>

此函数的调用图如下

◆ setExp() [1/2] (重载)

softdouble cv::softdouble::setExp ( int e) const
inline

#include <opencv2/core/softfloat.hpp>

构造一个具有新 0 基指数的副本。

◆ setExp() [2/2] (重载)

softfloat cv::softfloat::setExp ( int e) const
inline

#include <opencv2/core/softfloat.hpp>

构造一个具有新 0 基指数的副本。

◆ setFrac() [1/2] (重载)

softdouble cv::softdouble::setFrac ( const softdouble & s) const
inline

#include <opencv2/core/softfloat.hpp>

构造一个具有提供的尾数的副本。

构造一个数字的副本,其有效数取自参数

◆ setFrac() [2/2] (重载)

softfloat cv::softfloat::setFrac ( const softfloat & s) const
inline

#include <opencv2/core/softfloat.hpp>

构造一个具有提供的尾数的副本。

构造一个数字的副本,其有效数取自参数

◆ setSign() [1/2] (重载)

softdouble cv::softdouble::setSign ( bool 符号) const
inline

#include <opencv2/core/softfloat.hpp>

构造一个具有新符号位的副本。

◆ setSign() [2/2] (重载)

softfloat cv::softfloat::setSign ( bool 符号) const
inline

#include <opencv2/core/softfloat.hpp>

构造一个具有新符号位的副本。

◆ sin()

softdouble cv::sin ( const softdouble & a)

#include <opencv2/core/softfloat.hpp>

正弦。

特殊情况

  • sin(Inf) 或 sin(NaN) 为 NaN
  • 当 sin(x) 接近零时,sin(x) == x

◆ sqrt() [1/2] (重载)

softdouble cv::sqrt ( const softdouble & a)
Python
cv.sqrt(src[, dst]) -> dst

◆ sqrt() [2/2] (重载)

softfloat cv::sqrt ( const softfloat & a)
Python
cv.sqrt(src[, dst]) -> dst

#include <opencv2/core/softfloat.hpp>

平方根。

◆ zero() [1/2] (重载)

static softdouble cv::softdouble::zero ( )
inlinestatic

#include <opencv2/core/softfloat.hpp>

零常数。

◆ zero() [2/2] (重载)

static softfloat cv::softfloat::zero ( )
inlinestatic

#include <opencv2/core/softfloat.hpp>

零常数。

变量文档

◆ v [1/2] (重载)

uint64_t cv::softdouble::v

◆ v [2/2] (重载)

uint32_t cv::softfloat::v