6. 单精度数学函数
本节介绍单精度数学函数。
要使用这些函数,您无需在程序中包含任何额外的头文件。
Functions
- __device__ float acosf(float x)
-
计算输入参数的反正弦值。
- __device__ float acoshf(float x)
-
计算输入参数的非负反双曲余弦值。
- __device__ float asinf(float x)
-
计算输入参数的反正弦值。
- __device__ float asinhf(float x)
-
计算输入参数的反双曲正弦值。
- __device__ float atan2f(float y, float x)
-
计算第一个和第二个输入参数比值的反正切值。
- __device__ float atanf(float x)
-
计算输入参数的反正切值。
- __device__ float atanhf(float x)
-
计算输入参数的反双曲正切值。
- __device__ float cbrtf(float x)
-
计算输入参数的立方根。
- __device__ float ceilf(float x)
-
计算输入参数的上限值。
- __device__ float copysignf(float x, float y)
-
根据第二个值的符号创建指定大小的值。
- __device__ float cosf(float x)
-
计算输入参数的余弦值。
- __device__ float coshf(float x)
-
计算输入参数的双曲余弦值。
- __device__ float cospif(float x)
-
计算输入参数 \(\times \pi\) 的余弦值。
- __device__ float cyl_bessel_i0f(float x)
-
计算输入参数对应的0阶正则修正圆柱贝塞尔函数值。
- __device__ float cyl_bessel_i1f(float x)
-
计算输入参数的一阶正则修正圆柱贝塞尔函数值。
- __device__ float erfcf(float x)
-
计算输入参数的互补误差函数。
- __device__ float erfcinvf(float x)
-
计算输入参数的反补误差函数。
- __device__ float erfcxf(float x)
-
计算输入参数的缩放互补误差函数。
- __device__ float erff(float x)
-
计算输入参数的误差函数。
- __device__ float erfinvf(float x)
-
计算输入参数的反误差函数。
- __device__ float exp10f(float x)
-
计算输入参数的以10为底的指数。
- __device__ float exp2f(float x)
-
计算输入参数的以2为底的指数。
- __device__ float expf(float x)
-
计算输入参数的以\(e\)为底的指数。
- __device__ float expm1f(float x)
-
计算输入参数以\(e\)为底的指数,再减去1。
- __device__ float fabsf(float x)
-
计算其参数的绝对值。
- __device__ float fdimf(float x, float y)
-
计算
x和y之间的正差值。 - __device__ float fdividef(float x, float y)
-
将两个浮点数值相除。
- __device__ float floorf(float x)
-
计算小于或等于
x的最大整数。 - __device__ float fmaf(float x, float y, float z)
-
将\(x \times y + z\)作为单一运算进行计算。
- __device__ float fmaxf(float x, float y)
-
确定参数中的最大数值。
- __device__ float fminf(float x, float y)
-
确定参数中的最小数值。
- __device__ float fmodf(float x, float y)
-
计算
x/y的浮点余数。 - __device__ float frexpf(float x, int *nptr)
-
提取浮点数值的尾数和指数部分。
- __device__ float hypotf(float x, float y)
-
计算两个参数平方和的平方根。
- __device__ int ilogbf(float x)
-
计算参数的无偏整数指数。
- __device__ __RETURN_TYPE isfinite(float a)
-
判断参数是否为有限值。
- __device__ __RETURN_TYPE isinf(float a)
-
判断参数是否为无限值。
- __device__ __RETURN_TYPE isnan(float a)
-
判断参数是否为NaN。
- __device__ float j0f(float x)
-
计算输入参数的第一类零阶贝塞尔函数值。
- __device__ float j1f(float x)
-
计算输入参数的一阶第一类贝塞尔函数值。
- __device__ float jnf(int n, float x)
-
计算输入参数的第一类n阶贝塞尔函数值。
- __device__ float ldexpf(float x, int exp)
-
计算 \(x\cdot 2^{exp}\) 的值。
- __device__ float lgammaf(float x)
-
计算输入参数伽玛函数绝对值的自然对数。
- __device__ long long int llrintf(float x)
-
将输入四舍五入到最接近的整数值。
- __device__ long long int llroundf(float x)
-
四舍五入到最接近的整数值。
- __device__ float log10f(float x)
-
计算输入参数的以10为底的对数。
- __device__ float log1pf(float x)
-
计算 \(\log_{e}(1+x)\) 的值。
- __device__ float log2f(float x)
-
计算输入参数的以2为底的对数。
- __device__ float logbf(float x)
-
计算输入参数的指数部分的浮点数表示。
- __device__ float logf(float x)
-
计算输入参数的自然对数。
- __device__ long int lrintf(float x)
-
将输入四舍五入到最接近的整数值。
- __device__ long int lroundf(float x)
-
四舍五入到最接近的整数值。
- __device__ float max(const float a, const float b)
-
计算输入
float参数的最大值。 - __device__ float min(const float a, const float b)
-
计算输入
float参数的最小值。 - __device__ float modff(float x, float *iptr)
-
将输入参数分解为小数部分和整数部分。
- __device__ float nanf(const char *tagp)
-
返回"非数字"值。
- __device__ float nearbyintf(float x)
-
将输入参数四舍五入到最接近的整数。
- __device__ float nextafterf(float x, float y)
-
返回参数
x在y方向上的下一个可表示的单精度浮点数值。 - __device__ float norm3df(float a, float b, float c)
-
计算参数三个坐标平方和的平方根。
- __device__ float norm4df(float a, float b, float c, float d)
-
计算参数四个坐标平方和的平方根。
- __device__ float normcdff(float x)
-
计算标准正态累积分布函数。
- __device__ float normcdfinvf(float x)
-
计算标准正态累积分布函数的逆函数。
- __device__ float normf(int dim, float const *p)
-
计算任意数量坐标的平方和的平方根。
- __device__ float powf(float x, float y)
-
计算第一个参数的第二个参数次幂的值。
- __device__ float rcbrtf(float x)
-
计算倒数立方根函数。
- __device__ float remainderf(float x, float y)
-
计算单精度浮点余数。
- __device__ float remquof(float x, float y, int *quo)
-
计算单精度浮点余数及部分商。
- __device__ float rhypotf(float x, float y)
-
计算两个参数平方和的平方根的倒数。
- __device__ float rintf(float x)
-
将输入四舍五入为最接近的浮点整数值。
- __device__ float rnorm3df(float a, float b, float c)
-
计算三个坐标平方和的平方根的倒数。
- __device__ float rnorm4df(float a, float b, float c, float d)
-
计算四个坐标平方和的平方根的倒数。
- __device__ float rnormf(int dim, float const *p)
-
计算任意数量坐标平方和的平方根的倒数。
- __device__ float roundf(float x)
-
将浮点数四舍五入到最接近的整数值。
- __device__ float rsqrtf(float x)
-
计算输入参数的平方根的倒数。
- __device__ float scalblnf(float x, long int n)
-
将浮点输入按2的整数次幂进行缩放。
- __device__ float scalbnf(float x, int n)
-
将浮点输入按2的整数次幂进行缩放。
- __device__ __RETURN_TYPE signbit(float a)
-
返回输入的符号位。
- __device__ void sincosf(float x, float *sptr, float *cptr)
-
计算第一个输入参数的正弦和余弦值。
- __device__ void sincospif(float x, float *sptr, float *cptr)
-
计算第一个输入参数的正弦和余弦值 \(\times \pi\) 。
- __device__ float sinf(float x)
-
计算输入参数的正弦值。
- __device__ float sinhf(float x)
-
计算输入参数的双曲正弦值。
- __device__ float sinpif(float x)
-
计算输入参数的正弦值 \(\times \pi\) 。
- __device__ float sqrtf(float x)
-
计算输入参数的平方根。
- __device__ float tanf(float x)
-
计算输入参数的正切值。
- __device__ float tanhf(float x)
-
计算输入参数的双曲正切值。
- __device__ float tgammaf(float x)
-
计算输入参数的伽玛函数。
- __device__ float truncf(float x)
-
将输入参数截断为整数部分。
- __device__ float y0f(float x)
-
计算输入参数对应的第二类零阶贝塞尔函数值。
- __device__ float y1f(float x)
-
计算输入参数的第二类一阶贝塞尔函数值。
- __device__ float ynf(int n, float x)
-
计算输入参数对应的第二类n阶贝塞尔函数值。
6.1. 函数
-
__device__ float acosf(float x)
-
计算输入参数的反正弦值。
计算输入参数
x的反余弦主值。注意
有关精度信息,请参阅CUDA C++编程指南中的数学函数附录,单精度浮点函数部分。
- Returns
-
结果将以弧度表示,当
x在[-1, +1]区间内时,结果范围在[0, \( \pi \) ]之间。acosf(1) 返回 +0。
当
x超出[-1, +1]范围时,acosf函数返回NaN值。acosf(NaN) 返回 NaN。
-
__device__ float acoshf(float x)
-
计算输入参数的非负反双曲余弦值。
计算输入参数
x的非负反双曲余弦值。注意
有关精度信息,请参阅CUDA C++编程指南中的数学函数附录,单精度浮点函数部分。
- Returns
-
结果将在区间 [0, \( +\infty \) ] 内。
acoshf(1) 返回 0。
acoshf(
x) 对于区间 [ \( -\infty \) , 1) 内的x返回 NaN。acoshf( \( +\infty \) ) 返回 \( +\infty \)。
acoshf(NaN) 返回 NaN。
-
__device__ float asinf(float x)
-
计算输入参数的反正弦值。
计算输入参数
x的反正弦主值。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
结果将以弧度表示,当
x在区间[-1, +1]内时,结果范围在[-\( \pi/2 \) , +\( \pi/2 \)]之间。asinf( \( \pm 0 \) ) 返回 \( \pm 0 \)。
当
x超出[-1, +1]范围时,asinf函数将返回NaN值。asinf(NaN) 返回 NaN。
-
__device__ float asinhf(float x)
-
计算输入参数的反双曲正弦值。
计算输入参数
x的反双曲正弦值。注意
有关精度信息,请参阅CUDA C++编程指南中的数学函数附录,单精度浮点函数部分。
- Returns
-
asinhf( \( \pm 0 \) ) 返回 \( \pm 0 \)。
asinhf( \( \pm \infty \) ) 返回 \( \pm \infty \)。
asinhf(NaN) 返回 NaN。
-
__device__ float atan2f(float y, float x)
-
计算第一个和第二个输入参数比值的反正切值。
计算第一个输入参数
y与第二个输入参数x比值的反正切主值。结果的象限由输入参数y和x的符号决定。注意
有关精度信息,请参阅CUDA C++编程指南中的数学函数附录,单精度浮点函数部分。
- Returns
-
结果将以弧度表示,范围在[- \( \pi \) , + \( \pi \) ]区间内。
atan2f( \( \pm 0 \) , -0) 返回 \( \pm \pi \)。
atan2f( \( \pm 0 \) , +0) 返回 \( \pm 0 \)。
atan2f( \( \pm 0 \) ,
x) 当x< 0 时返回 \( \pm \pi \)。atan2f( \( \pm 0 \) ,
x) 当x> 0 时返回 \( \pm 0 \)。atan2f(
y, \( \pm 0 \) ) 当y< 0 时返回 \( -\pi \) /2。atan2f(
y, \( \pm 0 \) ) 当y> 0 时返回 \( \pi \) /2。atan2f( \( \pm y \) , \( -\infty \) ) 对于有限值
y> 0 返回 \( \pm \pi \)。atan2f( \( \pm y \) , \( +\infty \) ) 对于有限值
y> 0 返回 \( \pm 0 \)。atan2f( \( \pm \infty \) ,
x) 对于有限的x返回 \( \pm \pi \) /2。atan2f( \( \pm \infty \) , \( -\infty \) ) 返回 \( \pm 3\pi \) /4。
atan2f( \( \pm \infty \) , \( +\infty \) ) 返回 \( \pm \pi \) /4。
如果任一参数为NaN,则返回NaN。
-
__device__ float atanf(float x)
-
计算输入参数的反正切值。
计算输入参数
x的反正切主值。注意
有关精度信息,请参阅CUDA C++编程指南中的数学函数附录,单精度浮点函数部分。
- Returns
-
结果将以弧度表示,范围在[- \( \pi/2 \) , + \( \pi/2 \) ]区间内。
atanf( \( \pm 0 \) ) 返回 \( \pm 0 \)。
atanf( \( \pm \infty \) ) 返回 \( \pm \pi \) /2。
atanf(NaN) 返回 NaN。
-
__device__ float atanhf(float x)
-
计算输入参数的反双曲正切值。
计算输入参数
x的反双曲正切值。注意
有关精度信息,请参阅CUDA C++编程指南中的数学函数附录,单精度浮点函数部分。
- Returns
-
atanhf( \( \pm 0 \) ) 返回 \( \pm 0 \)。
atanhf( \( \pm 1 \) ) 返回 \( \pm \infty \)。
当
x超出区间 [-1, 1] 时,atanhf(x) 返回 NaN。atanhf(NaN) 返回 NaN。
-
__device__ float cbrtf(float x)
-
计算输入参数的立方根。
计算
x的立方根,\( x^{1/3} \)。注意
有关精度信息,请参阅CUDA C++编程指南中的数学函数附录,单精度浮点函数部分。
- Returns
-
返回 \( x^{1/3} \)。
cbrtf( \( \pm 0 \) ) 返回 \( \pm 0 \)。
cbrtf( \( \pm \infty \) ) 返回 \( \pm \infty \).
cbrtf(NaN) 返回 NaN。
-
__device__ float ceilf(float x)
-
计算输入参数的向上取整值。
计算不小于
x的最小整数值。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
返回以浮点数表示的\( \lceil x \rceil \)(向上取整值)。
ceilf( \( \pm 0 \) ) 返回 \( \pm 0 \)。
ceilf( \( \pm \infty \) ) 返回 \( \pm \infty \)。
ceilf(NaN) 返回 NaN。
-
__device__ float copysignf(float x, float y)
-
根据第二个值的符号创建指定大小的值。
创建一个浮点数值,其大小为
x,符号与y相同。- Returns
-
一个数值,其大小为
x,符号与y相同。copysignf(
NaN,y) 返回一个带有y符号的NaN。
-
__device__ float cosf(float x)
-
计算输入参数的余弦值。
计算输入参数
x的余弦值(以弧度为单位)。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
注意
此函数受编译器标志
use_fast_math的影响。有关受影响函数的完整列表,请参阅CUDA C++编程指南的数学函数附录中的内建函数章节。- Returns
-
cosf( \( \pm 0 \) ) 返回 1。
cosf( \( \pm \infty \) ) 返回 NaN。
cosf(NaN) 返回 NaN。
-
__device__ float coshf(float x)
-
计算输入参数的双曲余弦值。
计算输入参数
x的双曲余弦值。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
coshf( \( \pm 0 \) ) 返回 1。
coshf( \( \pm \infty \) ) 返回 \( +\infty \)。
coshf(NaN) 返回 NaN。
-
__device__ float cospif(float x)
-
计算输入参数 \( \times \pi \) 的余弦值。
计算
x\( \times \pi \)的余弦值(以弧度为单位),其中x是输入参数。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
cospif( \( \pm 0 \) ) 返回 1。
cospif( \( \pm \infty \) ) 返回 NaN。
cospif(NaN) 返回 NaN。
-
__device__ float cyl_bessel_i0f(float x)
-
计算输入参数对应的0阶正则修正圆柱贝塞尔函数值。
计算输入参数
x的0阶修正贝塞尔函数值\( I_0(x) \)。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
返回0阶正则修正圆柱贝塞尔函数的值。
cyl_bessel_i0f( \( \pm 0 \)) 返回 +1。
cyl_bessel_i0f( \( \pm\infty \)) 返回 \( +\infty \).
cyl_bessel_i0f(NaN) 返回 NaN。
-
__device__ float cyl_bessel_i1f(float x)
-
计算输入参数的一阶正则修正圆柱贝塞尔函数值。
计算输入参数
x的一阶正则修正圆柱贝塞尔函数值\( I_1(x) \)。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
返回一阶正则修正圆柱贝塞尔函数的值。
cyl_bessel_i1f( \( \pm 0 \)) 返回 \( \pm 0 \)。
cyl_bessel_i1f( \( \pm\infty \)) 返回 \( \pm\infty \)。
cyl_bessel_i1f(NaN) 返回 NaN。
-
__device__ float erfcf(float x)
-
计算输入参数的互补误差函数。
计算输入参数
x的互补误差函数,即1 - erf(x)。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
erfcf( \( -\infty \) ) 返回 2。
erfcf( \( +\infty \) ) 返回 +0。
erfcf(NaN) 返回 NaN。
-
__device__ float erfcinvf(float x)
-
计算输入参数的反补误差函数。
计算输入参数
x在区间 [0, 2] 内的逆互补误差函数 \( \operatorname{erfc}^{-1} \) (x)。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
erfcinvf( \( \pm 0 \) ) 返回 \( +\infty \)。
erfcinvf(2) 返回 \( -\infty \)。
当
x超出[0, 2]范围时,erfcinvf(x)返回NaN。erfcinvf(NaN) 返回 NaN。
-
__device__ float erfcxf(float x)
-
计算输入参数的缩放互补误差函数。
计算输入参数
x的缩放互补误差函数,\( e^{x^2}\cdot \operatorname{erfc}(x) \)。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
erfcxf( \( -\infty \) ) 返回 \( +\infty \)。
erfcxf( \( +\infty \) ) 返回 +0。
erfcxf(NaN) 返回 NaN。
-
__device__ float erff(float x)
-
计算输入参数的误差函数。
计算输入参数
x的误差函数值,\( \frac{2}{\sqrt \pi} \int_0^x e^{-t^2} dt \)。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
erff( \( \pm 0 \) ) 返回 \( \pm 0 \)。
erff( \( \pm \infty \) ) 返回 \( \pm 1 \)。
erff(NaN) 返回 NaN。
-
__device__ float erfinvf(float x)
-
计算输入参数的反误差函数。
计算输入参数
x在区间 [-1, 1] 内的反误差函数 \( \operatorname{erf}^{-1} \) (x)。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
erfinvf( \( \pm 0 \) ) 返回 \( \pm 0 \)。
erfinvf(1) 返回 \( +\infty \)。
erfinvf(-1) 返回 \( -\infty \)。
erfinvf(
x) 当x超出 [-1, +1] 范围时返回 NaN。erfinvf(NaN) 返回 NaN。
-
__device__ float exp10f(float x)
-
计算输入参数的以10为底的指数。
计算 \( 10^x \),即输入参数
x的以10为底的指数函数。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
注意
此函数受编译器标志
use_fast_math的影响。有关受影响函数的完整列表,请参阅CUDA C++编程指南的数学函数附录中的内建函数章节。- Returns
-
exp10f( \( \pm 0 \) ) 返回 1。
exp10f( \( -\infty \) ) 返回 +0。
exp10f( \( +\infty \) ) 返回 \( +\infty \)。
exp10f(NaN) 返回 NaN。
-
__device__ float exp2f(float x)
-
计算输入参数的以2为底的指数。
计算 \( 2^x \),即输入参数
x的以2为底的指数。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
exp2f( \( \pm 0 \) ) 返回 1。
exp2f( \( -\infty \) ) 返回 +0。
exp2f( \( +\infty \) ) 返回 \( +\infty \)。
exp2f(NaN) 返回 NaN。
-
__device__ float expf(float x)
-
计算输入参数以\( e \)为底的指数。
计算 \( e^x \),即输入参数
x的以自然常数 \( e \) 为底的指数函数值。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
注意
此函数受编译器标志
use_fast_math的影响。有关受影响函数的完整列表,请参阅CUDA C++编程指南的数学函数附录中的内建函数章节。- Returns
-
expf( \( \pm 0 \) ) 返回 1。
expf( \( -\infty \) ) 返回 +0。
expf( \( +\infty \) ) 返回 \( +\infty \)。
expf(NaN) 返回 NaN。
-
__device__ float expm1f(float x)
-
计算输入参数以\( e \)为底的指数,再减去1。
计算输入参数
x以自然常数 \( e \) 为底的指数值减1,即 \( e^x \) -1。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
expm1f( \( \pm 0 \) ) 返回 \( \pm 0 \)。
expm1f( \( -\infty \) ) 返回 -1。
expm1f( \( +\infty \) ) 返回 \( +\infty \)。
expm1f(NaN) 返回 NaN。
-
__device__ float fabsf(float x)
-
计算其参数的绝对值。
计算输入参数
x的绝对值。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
返回参数的绝对值。
fabsf( \( \pm \infty \) ) 返回 \( +\infty \)。
fabsf( \( \pm 0 \) ) 返回 +0。
fabsf(NaN) 返回一个未指定的NaN值。
-
__device__ float fdimf(float x, float y)
-
计算
x和y之间的正差值。计算
x和y之间的正差值。当x大于y时,正差值为x减去y,否则为+0。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
返回
x和y之间的正差值。fdimf(
x,y) 当x大于y时返回x-y。fdimf(
x,y) 当x\( \leq \)y时返回 +0。如果任一参数为NaN,则返回NaN。
-
__device__ float fdividef(float x, float y)
-
将两个浮点数值相除。
计算
x除以y。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
注意
此函数受编译器标志
use_fast_math的影响。有关受影响函数的完整列表,请参阅CUDA C++编程指南的数学函数附录中的内建函数章节。- Returns
-
返回
x/y。默认遵循常规除法运算行为。
如果指定了
-use_fast_math且未被显式的-prec_div=true修改,则使用__fdividef()以获得更高性能
-
__device__ float floorf(float x)
-
计算小于或等于
x的最大整数。计算小于或等于
x的最大整数值。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
返回以浮点数表示的\( \lfloor x \rfloor \)。
floorf( \( \pm \infty \) ) 返回 \( \pm \infty \)。
floorf( \( \pm 0 \) ) 返回 \( \pm 0 \)。
floorf(NaN) 返回 NaN。
-
__device__ float fmaf(float x, float y, float z)
-
将 \( x \times y + z \) 作为单一运算进行计算。
将\( x \times y + z \)作为三元运算计算其值。在无限精度计算后,使用"就近舍入-偶数优先"舍入模式对结果进行一次舍入。
注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
返回\( x \times y + z \)作为单次运算的舍入值。
fmaf( \( \pm \infty \) , \( \pm 0 \) ,
z) 返回 NaN。fmaf( \( \pm 0 \) , \( \pm \infty \) ,
z) 返回 NaN。fmaf(
x,y, \( -\infty \) ) 当 \( x \times y \) 是精确的 \( +\infty \) 时返回 NaN。fmaf(
x,y, \( +\infty \) ) 当 \( x \times y \) 是精确的 \( -\infty \) 时返回 NaN。fmaf(
x,y, \( \pm 0 \)) 当 \( x \times y \) 精确等于 \( \pm 0 \) 时返回 \( \pm 0 \)。fmaf(
x,y, \( \mp 0 \)) 当 \( x \times y \) 精确等于 \( \pm 0 \) 时返回 \( +0 \)。fmaf(
x,y,z) 当\( x \times y + z \)精确等于零且\( z \neq 0 \)时返回\( +0 \)。如果任一参数为NaN,则返回NaN。
-
__device__ float fmaxf(float x, float y)
-
确定参数的最大数值。
确定参数
x和y中的最大数值。将NaN参数视为缺失数据。如果一个参数是NaN而另一个是有效的数值,则选择该数值。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
返回参数
x和y中的最大数值。如果两个参数都是NaN,则返回NaN。
如果其中一个参数是NaN,则返回数值参数。
-
__device__ float fminf(float x, float y)
-
确定参数的最小数值。
确定参数
x和y中的最小数值。将NaN参数视为缺失数据。如果一个参数是NaN而另一个是合法的数值,则选择该数值。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
返回参数
x和y中的最小数值。如果两个参数都是NaN,则返回NaN。
如果其中一个参数是NaN,则返回数值参数。
-
__device__ float fmodf(float x, float y)
-
计算
x/y的浮点余数。计算
x除以y的浮点余数。该函数计算的除法运算x/y的浮点余数精确等于x - n*y的值,其中n是x/y截去小数部分后的整数。计算结果将与x同号,且其绝对值小于y的绝对值。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
返回
x/y的浮点余数。fmodf( \( \pm 0 \) ,
y) 当y不为零时返回 \( \pm 0 \)。fmodf(
x, \( \pm \infty \) ) 当x为有限值时返回x。如果
x为\( \pm\infty \)或y为零,fmodf(x,y)将返回NaN。如果任一参数为NaN,则返回NaN。
-
__device__ float frexpf(float x, int *nptr)
-
提取浮点数值的尾数和指数。
将浮点值
x分解为归一化小数部分m和指数部分n。其中m的绝对值将大于等于0.5且小于1.0,或者等于0;\( x = m\cdot 2^n \)。整型指数n将被存储到nptr指针所指向的内存位置。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
返回小数部分
m。frexpf( \( \pm 0 \) ,
nptr) 返回 \( \pm 0 \) 并在nptr指向的位置存储零值。frexpf( \( \pm \infty \) ,
nptr) 返回 \( \pm \infty \) 并将未指定的值存储到nptr所指向的位置。frexpf(NaN,
y) 返回一个NaN值,并在nptr指针指向的位置存储一个未指定的值。
-
__device__ float hypotf(float x, float y)
-
计算两个参数平方和的平方根。
计算直角三角形斜边的长度,该三角形的两条直角边长度分别为
x和y,且不会出现过度溢出或下溢。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
返回斜边的长度 \( \sqrt{x^2+y^2} \)。
hypotf(
x,y)、hypotf(y,x)和hypotf(x,-y)是等价的。hypotf(
x, \( \pm 0 \) ) 等价于 fabsf(x)。hypotf( \( \pm \infty \) ,
y) 返回 \( +\infty \) ,即使y是一个NaN。hypotf(NaN,
y) 返回 NaN,当y不是 \( \pm\infty \) 时。
-
__device__ int ilogbf(float x)
-
计算参数的无偏整数指数。
计算输入参数
x的无偏整数指数。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
如果成功,返回参数的无偏指数。
ilogbf( \( \pm 0 \) ) 返回
INT_MIN。ilogbf(NaN) 返回
INT_MIN。ilogbf( \( \pm \infty \) ) 返回
INT_MAX。注意:上述行为未考虑
FP_ILOGB0和FP_ILOGBNAN。
-
__device__ __RETURN_TYPE isfinite(float a)
-
判断参数是否为有限值。
判断浮点数值
a是否为有限值(零、次正规数、正规数且非无穷大或非数字)。- Returns
-
使用Visual Studio 2013主机编译器时:__RETURN_TYPE为'bool'。当且仅当
a为有限值时返回true。使用其他主机编译器时:__RETURN_TYPE 为 'int'。当且仅当
a为有限值时返回非零值。
-
__device__ __RETURN_TYPE isinf(float a)
-
判断参数是否为无限值。
判断浮点数值
a是否为无限值(正或负)。- Returns
-
使用Visual Studio 2013主机编译器时:__RETURN_TYPE为'bool'。当且仅当
a为无限值时返回true。使用其他主机编译器时:__RETURN_TYPE为'int'。当且仅当
a为无限值时返回非零值。
-
__device__ __RETURN_TYPE isnan(float a)
-
判断参数是否为NaN。
判断浮点数值
a是否为 NaN。- Returns
-
使用Visual Studio 2013主机编译器时:__RETURN_TYPE为'bool'。当且仅当
a是NaN值时返回true。使用其他主机编译器时:__RETURN_TYPE 为 'int'。当且仅当
a是 NaN 值时返回非零值。
-
__device__ float j0f(float x)
-
计算输入参数的第一类零阶贝塞尔函数值。
计算输入参数
x的第一类零阶贝塞尔函数值\( J_0(x) \)。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
返回第一类零阶贝塞尔函数的值。
j0f( \( \pm \infty \) ) 返回 +0。
j0f(NaN) 返回 NaN。
-
__device__ float j1f(float x)
-
计算输入参数的一阶第一类贝塞尔函数值。
计算输入参数
x的一阶第一类贝塞尔函数值\( J_1(x) \)。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
返回第一类1阶贝塞尔函数的值。
j1f( \( \pm 0 \) ) 返回 \( \pm 0 \)。
j1f( \( \pm \infty \) ) 返回 \( \pm 0 \).
j1f(NaN) 返回 NaN。
-
__device__ float jnf(int n, float x)
-
计算输入参数的第一类n阶贝塞尔函数值。
计算第一类贝塞尔函数在阶数
n下对输入参数x的值,\( J_n(x) \)。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
返回第一类贝塞尔函数在阶数为
n时的值。jnf(
n, NaN) 返回 NaN。jnf(
n,x) 当n< 0 时返回 NaN。jnf(
n, \( +\infty \) ) 返回 +0。
-
__device__ float ldexpf(float x, int exp)
-
计算 \( x\cdot 2^{exp} \) 的值。
计算输入参数
x和exp的 \( x\cdot 2^{exp} \) 值。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
ldexpf(
x,exp) 等价于 scalbnf(x,exp)。
-
__device__ float lgammaf(float x)
-
计算输入参数伽玛函数绝对值的自然对数。
计算输入参数
x的伽马函数绝对值的自然对数,即\( \log_{e}\left|\Gamma(x)\right| \)的值注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
lgammaf(1) 返回 +0。
lgammaf(2) 返回 +0。
lgammaf(
x) 当x\( \leq \) 0 且x为整数时返回 \( +\infty \)。lgammaf( \( -\infty \) ) 返回 \( +\infty \)。
lgammaf( \( +\infty \) ) 返回 \( +\infty \)。
lgammaf(NaN) 返回 NaN。
-
__device__ long long int llrintf(float x)
-
将输入四舍五入到最接近的整数值。
将
x四舍五入到最接近的整数值,中间值情况会舍入到最接近的偶数整数值。如果结果超出返回类型的范围,则行为未定义。- Returns
-
返回四舍五入后的整数值。
-
__device__ long long int llroundf(float x)
-
四舍五入到最接近的整数值。
将
x四舍五入到最接近的整数值,中间值(0.5)向远离零的方向舍入。如果结果超出返回类型的范围,则行为未定义。注意
此函数可能比其他舍入方法更慢。请参阅llrintf()。
- Returns
-
返回四舍五入后的整数值。
-
__device__ float log10f(float x)
-
计算输入参数的以10为底的对数。
计算输入参数
x的以10为底的对数。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
注意
此函数受编译器标志
use_fast_math的影响。有关受影响函数的完整列表,请参阅CUDA C++编程指南的数学函数附录中的内建函数章节。- Returns
-
log10f( \( \pm 0 \) ) 返回 \( -\infty \)。
log10f(1) 返回 +0。
当
x小于0时,log10f(x)返回NaN。log10f( \( +\infty \) ) 返回 \( +\infty \)。
log10f(NaN) 返回 NaN。
-
__device__ float log1pf(float x)
-
计算 \( \log_{e}(1+x) \) 的值。
计算输入参数
x的 \( \log_{e}(1+x) \) 值。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
log1pf( \( \pm 0 \) ) 返回 \( \pm 0 \)。
log1pf(-1) 返回 \( -\infty \)。
当
x< -1时,log1pf(x)返回NaN。log1pf( \( +\infty \) ) 返回 \( +\infty \)。
log1pf(NaN) 返回 NaN。
-
__device__ float log2f(float x)
-
计算输入参数的以2为底的对数。
计算输入参数
x的以2为底的对数。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
注意
此函数受编译器标志
use_fast_math的影响。有关受影响函数的完整列表,请参阅CUDA C++编程指南的数学函数附录中的内建函数章节。- Returns
-
log2f( \( \pm 0 \) ) 返回 \( -\infty \)。
log2f(1) 返回 +0。
log2f(
x) 当x< 0 时返回 NaN。log2f( \( +\infty \) ) 返回 \( +\infty \)。
log2f(NaN) 返回 NaN。
-
__device__ float logbf(float x)
-
计算输入参数的指数部分的浮点数表示。
计算输入参数
x的指数部分的浮点数表示。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
logbf( \( \pm 0 \) ) 返回 \( -\infty \).
logbf( \( \pm \infty \) ) 返回 \( +\infty \)。
logbf(NaN) 返回 NaN。
-
__device__ float logf(float x)
-
计算输入参数的自然对数。
计算输入参数
x的自然对数。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
注意
此函数受编译器标志
use_fast_math的影响。有关受影响函数的完整列表,请参阅CUDA C++编程指南的数学函数附录中的内建函数章节。- Returns
-
logf( \( \pm 0 \) ) 返回 \( -\infty \).
logf(1) 返回 +0。
当
x< 0 时,logf(x) 返回 NaN。logf( \( +\infty \) ) 返回 \( +\infty \)。
logf(NaN) 返回 NaN。
-
__device__ long int lrintf(float x)
-
将输入四舍五入到最接近的整数值。
将
x四舍五入到最接近的整数值,中间值情况会舍入到最接近的偶数整数值。如果结果超出返回类型的范围,则行为未定义。- Returns
-
返回四舍五入后的整数值。
-
__device__ long int lroundf(float x)
-
四舍五入到最接近的整数值。
将
x四舍五入到最接近的整数值,中间值(0.5)向远离零的方向舍入。如果结果超出返回类型的范围,则行为未定义。注意
此函数可能比其他舍入方法更慢。参见lrintf()。
- Returns
-
返回四舍五入后的整数值。
-
__device__ float max(const float a, const float b)
-
计算输入
float参数的最大值。计算参数
a和b的最大值。行为等同于fmaxf()函数。注意,这与
std:规范不同
-
__device__ float min(const float a, const float b)
-
计算输入
float参数的最小值。计算参数
a和b的最小值。功能等同于fminf()函数。注意,这与
std:规范不同
-
__device__ float modff(float x, float *iptr)
-
将输入参数分解为小数部分和整数部分。
将参数
x分解为小数部分和整数部分。整数部分存储在参数iptr中。小数部分和整数部分的符号与参数x相同。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
modff( \( \pm x \) ,
iptr) 返回一个与x符号相同的结果。modff( \( \pm \infty \) ,
iptr) 返回 \( \pm 0 \) 并将 \( \pm \infty \) 存储到iptr所指向的对象中。modff(NaN,
iptr) 会在iptr指向的对象中存储一个NaN并返回NaN。
-
__device__ float nanf(const char *tagp)
-
返回“非数字”值。
返回一个静默NaN的表示形式。参数
tagp用于选择可能的表示形式之一。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
nanf(
tagp) 返回NaN。
-
__device__ float nearbyintf(float x)
-
将输入参数四舍五入到最接近的整数。
将参数
x舍入为单精度浮点格式的整数值。使用四舍五入到最近的舍入方式,平局情况向偶数舍入。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
nearbyintf( \( \pm 0 \) ) 返回 \( \pm 0 \)。
nearbyintf( \( \pm \infty \) ) 返回 \( \pm \infty \)。
nearbyintf(NaN) 返回 NaN。
-
__device__ float nextafterf(float x, float y)
-
返回参数
x沿y方向的下一个可表示的单精度浮点数值。计算在
y方向上紧随x的下一个可表示的单精度浮点数值。例如,如果y大于x,nextafterf()将返回大于x的最小可表示数值。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
nextafterf(
x,y) =y当x等于y时。如果
x或y中任意一个是NaN,则nextafterf(x,y) =NaN。
-
__device__ float norm3df(float a, float b, float c)
-
计算参数三个坐标平方和的平方根。
计算三维向量在欧几里得空间中的长度,避免不必要的溢出或下溢。
注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
返回3D向量的长度 \( \sqrt{a^2+b^2+c^2} \)。
当存在一个精确的无限坐标时,即使存在NaN值,也会返回\( +\infty \)。
当所有坐标均为 \( \pm 0 \) 时,返回 +0。
当至少一个坐标是NaN且没有无限值时,返回NaN。
-
__device__ float norm4df(float a, float b, float c, float d)
-
计算参数四个坐标的平方和的平方根。
计算四维向量在欧几里得空间中的长度,避免不必要的溢出或下溢。
注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
返回4D向量的长度 \( \sqrt{a^2+b^2+c^2+d^2} \)。
当存在一个精确的无限坐标时,即使存在NaN值,也会返回\( +\infty \)。
当所有坐标均为 \( \pm 0 \) 时返回 +0。
当至少有一个坐标是NaN且没有无限值时,返回NaN。
-
__device__ float normcdff(float x)
-
计算标准正态累积分布函数。
计算标准正态分布的累积分布函数,输入参数为
x,\( \Phi(x) \)。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
normcdff( \( +\infty \) ) 返回 1。
normcdff( \( -\infty \) ) 返回 +0
normcdff(NaN) 返回 NaN。
-
__device__ float normcdfinvf(float x)
-
计算标准正态累积分布函数的逆函数。
计算输入参数
x的标准正态累积分布函数的反函数,即\( \Phi^{-1}(x) \)。该函数定义在区间\( (0, 1) \)内的输入值。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
normcdfinvf( \( \pm 0 \) ) 返回 \( -\infty \).
normcdfinvf(1) 返回 \( +\infty \)。
如果
x不在区间[0,1]内,normcdfinvf(x)将返回NaN。normcdfinvf(NaN) 返回 NaN。
-
__device__ float normf(int dim, float const *p)
-
计算任意数量坐标的平方和的平方根。
计算向量
p的长度,其维度作为参数传递,避免不必要的上溢或下溢。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
返回dim维向量的长度\( \sqrt{\sum_{i=0}^{dim-1} p_i^2} \)。
当存在一个精确的无限坐标时,即使存在NaN值,也会返回\( +\infty \)。
当所有坐标均为 \( \pm 0 \) 时,返回 +0。
当至少一个坐标是NaN且没有无限值时,返回NaN。
-
__device__ float powf(float x, float y)
-
计算第一个参数的值为第二个参数的幂次方。
计算
x的y次幂。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
注意
此函数受编译器标志
use_fast_math的影响。有关受影响函数的完整列表,请参阅CUDA C++编程指南的数学函数附录中的内建函数章节。- Returns
-
powf( \( \pm 0 \) ,
y) 当y为小于0的奇数时返回 \( \pm \infty \)。powf( \( \pm 0 \) ,
y) 当y小于0且不是奇数时返回 \( +\infty \)。powf( \( \pm 0 \) ,
y) 当y为大于0的奇数时返回 \( \pm 0 \)。powf( \( \pm 0 \) ,
y) 当y> 0 且不是奇数时返回 +0。powf(-1, \( \pm \infty \) ) 返回1。
powf(+1,
y) 对于任何y都返回 1,即使是一个 NaN。powf(
x, \( \pm 0 \) ) 对于任何x都返回1,即使x是NaN。powf(
x,y) 对于有限负数x和有限非整数y返回 NaN。powf(
x, \( -\infty \) ) 当 \( | x | < 1 \) 时返回 \( +\infty \)。powf(
x, \( -\infty \) ) 当 \( | x | > 1 \) 时返回 +0。powf(
x, \( +\infty \) ) 当 \( | x | < 1 \) 时返回 +0。powf(
x, \( +\infty \) ) 当 \( | x | > 1 \) 时返回 \( +\infty \)。powf( \( -\infty \) ,
y) 当y为小于0的奇数时返回-0。powf( \( -\infty \) ,
y) 当y小于0且不是奇数时返回+0。powf( \( -\infty \) ,
y) 当y为大于0的奇数时返回 \( -\infty \)。powf( \( -\infty \) ,
y) 当y> 0 且不是奇数时返回 \( +\infty \)。powf( \( +\infty \) ,
y) 当y< 0 时返回 +0。powf( \( +\infty \) ,
y) 当y> 0 时返回 \( +\infty \)。当
x或y或两者都是NaN且x\( \neq \) +1且y\( \neq\pm 0 \)时,powf(x,y)返回NaN。
-
__device__ float rcbrtf(float x)
-
计算倒数立方根函数。
计算
x的倒数立方根函数。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
rcbrtf( \( \pm 0 \) ) 返回 \( \pm \infty \)。
rcbrtf( \( \pm \infty \) ) 返回 \( \pm 0 \)。
rcbrtf(NaN) 返回 NaN。
-
__device__ float remainderf(float x, float y)
-
计算单精度浮点余数。
计算非零
y时,x除以y的单精度浮点余数r。因此\( r = x - n y \)。值n是最接近\( \frac{x}{y} \)的整数值。当\( | n -\frac{x}{y} | = \frac{1}{2} \)时,选择偶数值n。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
remainderf(
x, \( \pm 0 \) ) 返回NaN。remainderf( \( \pm \infty \) ,
y) 返回 NaN。remainderf(
x, \( \pm \infty \) ) 对于有限值x返回x。如果任一参数为NaN,则返回NaN。
-
__device__ float remquof(float x, float y, int *quo)
-
计算单精度浮点余数和部分商。
计算单精度浮点余数,计算方式与remainderf()函数相同。参数
quo返回x除以y时的部分商值。quo值的符号与\( \frac{x}{y} \)相同,可能不是精确的商值,但在低3位与精确商值一致。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
返回余数。
remquof(
x, \( \pm 0 \) ,quo) 返回NaN并在quo指向的位置存储一个未指定的值。remquof( \( \pm \infty \) ,
y,quo) 返回 NaN 并在quo指向的位置存储一个未指定的值。remquof(
x,y,quo) 如果x或y是NaN,则返回NaN并在quo指向的位置存储一个未指定的值。remquof(
x, \( \pm \infty \) ,quo) 返回x并将零存储在quo所指向的位置(当x为有限值时)。
-
__device__ float rhypotf(float x, float y)
-
计算两个参数平方和的平方根的倒数。
计算直角三角形斜边长度分之一,该直角三角形的两条直角边长度分别为
x和y,且不会出现过度溢出或下溢。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
返回斜边长度的倒数 \( \frac{1}{\sqrt{x^2+y^2}} \)。
rhypotf(
x,y)、rhypotf(y,x)和rhypotf(x,-y)是等价的。rhypotf( \( \pm \infty \) ,
y) 返回 +0,即使y是一个 NaN。rhypotf( \( \pm 0, \pm 0 \)) 返回 \( +\infty \)。
当
y不是\( \pm\infty \)时,rhypotf(NaN,y)返回NaN。
-
__device__ float rintf(float x)
-
将输入四舍五入为最接近的浮点整数值。
将
x四舍五入为最接近的浮点格式整数值,中间值则舍入到最接近的偶数整数值。- Returns
-
返回四舍五入后的整数值。
rintf( \( \pm 0 \) ) 返回 \( \pm 0 \)。
rintf( \( \pm \infty \) ) 返回 \( \pm \infty \)。
rintf(NaN) 返回 NaN。
-
__device__ float rnorm3df(float a, float b, float c)
-
计算三个坐标平方和的平方根的倒数。
计算欧几里得空间中三维向量长度的倒数,避免不必要的溢出或下溢。
注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
返回3D向量长度的倒数\( \frac{1}{\sqrt{a^2+b^2+c^2}} \)。
即使存在NaN值,当出现精确无限坐标时,仍会返回\( +0 \)。
当所有坐标均为 \( \pm 0 \) 时,返回 \( +\infty \)。
当至少一个坐标是NaN且没有无限值时,返回NaN。
-
__device__ float rnorm4df(float a, float b, float c, float d)
-
计算四个坐标平方和的平方根的倒数。
计算四维欧几里得空间向量长度的倒数,避免不必要的溢出或下溢。
注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
返回3D向量长度的倒数\( \frac{1}{\sqrt{a^2+b^2+c^2+d^2}} \)。
即使存在NaN值,当坐标精确无限时,仍会返回\( +0 \)。
当所有坐标均为 \( \pm 0 \) 时,返回 \( +\infty \)。
当至少一个坐标是NaN且没有无限值时,返回NaN。
-
__device__ float rnormf(int dim, float const *p)
-
计算任意数量坐标的平方和平方根的倒数。
计算向量
p在欧几里得空间中的长度的倒数,其维度作为参数传入,避免不必要的溢出或下溢。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
返回向量长度的倒数 \( \frac{1}{\sqrt{\sum_{i=0}^{dim-1} p_i^2}} \)。
即使存在NaN值,当坐标精确无限时,仍会返回\( +0 \)。
当所有坐标均为 \( \pm 0 \) 时,返回 \( +\infty \)。
当至少一个坐标是NaN且没有无限值时,返回NaN。
-
__device__ float roundf(float x)
-
将浮点数四舍五入到最接近的整数值。
将
x四舍五入为最接近的浮点格式整数值,中间值(0.5)向远离零的方向舍入。注意
此函数可能比其他舍入方法更慢。请参阅rintf()。
- Returns
-
返回四舍五入后的整数值。
roundf( \( \pm 0 \) ) 返回 \( \pm 0 \).
roundf( \( \pm \infty \) ) 返回 \( \pm \infty \)。
roundf(NaN) 返回 NaN。
-
__device__ float rsqrtf(float x)
-
计算输入参数的平方根的倒数。
计算
x的非负平方根的倒数,\( 1/\sqrt{x} \)。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
返回 \( 1/\sqrt{x} \)。
rsqrtf( \( +\infty \) ) 返回 +0。
rsqrtf( \( \pm 0 \) ) 返回 \( \pm \infty \)。
如果
x小于0,rsqrtf函数将返回NaN。rsqrtf(NaN) 返回 NaN。
-
__device__ float scalblnf(float x, long int n)
-
将浮点输入按2的整数次幂进行缩放。
通过高效操作浮点指数,将
x缩放\( 2^n \)倍。- Returns
-
返回
x* \( 2^n \)。scalblnf( \( \pm 0 \) ,
n) 返回 \( \pm 0 \)。scalblnf(
x, 0) 返回x。scalblnf( \( \pm \infty \) ,
n) 返回 \( \pm \infty \)。scalblnf(NaN,
n) 返回 NaN。
-
__device__ float scalbnf(float x, int n)
-
将浮点输入按2的整数次幂进行缩放。
通过高效操作浮点指数,将
x缩放\( 2^n \)倍。- Returns
-
返回
x* \( 2^n \)。scalbnf( \( \pm 0 \) ,
n) 返回 \( \pm 0 \)。scalbnf(
x, 0) 返回x。scalbnf( \( \pm \infty \) ,
n) 返回 \( \pm \infty \)。scalbnf(NaN,
n) 返回 NaN。
-
__device__ __RETURN_TYPE signbit(float a)
-
返回输入的符号位。
判断浮点数值
a是否为负数。- Returns
-
报告所有值的符号位,包括无穷大、零和NaN。
使用Visual Studio 2013主机编译器:__RETURN_TYPE为'bool'。当且仅当
a为负数时返回true。使用其他主机编译器时:__RETURN_TYPE 为 'int'。当且仅当
a为负数时返回非零值。
-
__device__ void sincosf(float x, float *sptr, float *cptr)
-
计算第一个输入参数的正弦和余弦值。
计算第一个输入参数
x(以弧度为单位)的正弦和余弦值。正弦和余弦的结果分别写入第二个参数sptr和第三个参数cptr。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
注意
此函数受编译器标志
use_fast_math的影响。有关受影响函数的完整列表,请参阅CUDA C++编程指南的数学函数附录中的内建函数章节。
-
__device__ void sincospif(float x, float *sptr, float *cptr)
-
计算第一个输入参数\( \times \pi \)的正弦和余弦值。
计算第一个输入参数
x(以弧度为单位)的正弦和余弦值,\( \times \pi \)。正弦和余弦的结果分别写入第二个参数sptr和第三个参数cptr。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
-
__device__ float sinf(float x)
-
计算输入参数的正弦值。
计算输入参数
x的正弦值(以弧度为单位)。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
注意
此函数受编译器标志
use_fast_math的影响。有关受影响函数的完整列表,请参阅CUDA C++编程指南的数学函数附录中的内建函数章节。- Returns
-
sinf( \( \pm 0 \) ) 返回 \( \pm 0 \)。
sinf( \( \pm \infty \) ) 返回 NaN。
sinf(NaN) 返回 NaN。
-
__device__ float sinhf(float x)
-
计算输入参数的双曲正弦值。
计算输入参数
x的双曲正弦值。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
sinhf( \( \pm 0 \) ) 返回 \( \pm 0 \)。
sinhf( \( \pm \infty \) ) 返回 \( \pm \infty \)。
sinhf(NaN) 返回 NaN。
-
__device__ float sinpif(float x)
-
计算输入参数 \( \times \pi \) 的正弦值。
计算
x\( \times \pi \)的正弦值(以弧度为单位),其中x是输入参数。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
sinpif( \( \pm 0 \) ) 返回 \( \pm 0 \)。
sinpif( \( \pm \infty \) ) 返回 NaN。
sinpif(NaN) 返回 NaN。
-
__device__ float sqrtf(float x)
-
计算输入参数的平方根。
计算
x的非负平方根,\( \sqrt{x} \)。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
返回 \( \sqrt{x} \)。
sqrtf( \( \pm 0 \) ) 返回 \( \pm 0 \)。
sqrtf( \( +\infty \) ) 返回 \( +\infty \)。
如果
x小于 0,sqrtf(x) 将返回 NaN。sqrtf(NaN) 返回 NaN。
-
__device__ float tanf(float x)
-
计算输入参数的正切值。
计算输入参数
x的正切值(以弧度为单位)。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
注意
此函数受编译器标志
use_fast_math的影响。有关受影响函数的完整列表,请参阅CUDA C++编程指南的数学函数附录中的内建函数章节。- Returns
-
tanf( \( \pm 0 \) ) 返回 \( \pm 0 \)。
tanf( \( \pm \infty \) ) 返回 NaN。
tanf(NaN) 返回 NaN。
-
__device__ float tanhf(float x)
-
计算输入参数的双曲正切值。
计算输入参数
x的双曲正切值。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
tanhf( \( \pm 0 \) ) 返回 \( \pm 0 \)。
tanhf( \( \pm \infty \) ) 返回 \( \pm 1 \)。
tanhf(NaN) 返回 NaN。
-
__device__ float tgammaf(float x)
-
计算输入参数的伽玛函数。
计算输入参数
x的伽马函数值,即 \( \Gamma(x) \) 的值。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
tgammaf( \( \pm 0 \) ) 返回 \( \pm \infty \)。
如果
x小于0且x为整数,tgammaf(x)将返回NaN。tgammaf( \( -\infty \) ) 返回 NaN。
tgammaf( \( +\infty \) ) 返回 \( +\infty \)。
tgammaf(NaN) 返回 NaN。
-
__device__ float truncf(float x)
-
将输入参数截断为整数部分。
将
x四舍五入到最接近但不大于x绝对值的整数值。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
返回截断后的整数值。
truncf( \( \pm 0 \) ) 返回 \( \pm 0 \)。
truncf( \( \pm \infty \) ) 返回 \( \pm \infty \)。
truncf(NaN) 返回 NaN。
-
__device__ float y0f(float x)
-
计算输入参数对应的第二类零阶贝塞尔函数值。
计算输入参数
x的第二类零阶贝塞尔函数值\( Y_0(x) \)。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
返回第二类零阶贝塞尔函数的值。
y0f( \( \pm 0 \) ) 返回 \( -\infty \)。
y0f(
x) 当x< 0 时返回 NaN。y0f( \( +\infty \) ) 返回 +0。
y0f(NaN) 返回 NaN。
-
__device__ float y1f(float x)
-
计算输入参数的第二类一阶贝塞尔函数值。
计算输入参数
x的第二类1阶贝塞尔函数值\( Y_1(x) \)。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
返回第二类一阶贝塞尔函数的值。
y1f( \( \pm 0 \) ) 返回 \( -\infty \).
当
x< 0 时,y1f(x) 返回 NaN。y1f( \( +\infty \) ) 返回 +0。
y1f(NaN) 返回 NaN。
-
__device__ float ynf(int n, float x)
-
计算输入参数对应的第二类n阶贝塞尔函数值。
计算输入参数
x的第二类贝塞尔函数值,阶数为n,即\( Y_n(x) \)。注意
有关精度信息,请参阅《CUDA C++编程指南》数学函数附录中的单精度浮点函数部分。
- Returns
-
返回第二类贝塞尔函数在阶数
n处的值。当
n小于 0 时,ynf(n,x) 返回 NaN。ynf(
n, \( \pm 0 \) ) 返回 \( -\infty \)。ynf(
n,x) 当x< 0 时返回 NaN。ynf(
n, \( +\infty \) ) 返回 +0。ynf(
n, NaN) 返回 NaN。