9. 双精度内置函数
本节介绍仅在设备代码中支持的双精度内置函数。
要使用这些函数,您无需在程序中包含任何额外的头文件。
Functions
- __device__ double __dadd_rd(double x, double y)
-
以向下舍入模式添加两个浮点数值。
- __device__ double __dadd_rn(double x, double y)
-
在四舍五入到最近偶数模式下将两个浮点数值相加。
- __device__ double __dadd_ru(double x, double y)
-
在向上舍入模式下将两个浮点数值相加。
- __device__ double __dadd_rz(double x, double y)
-
在向零舍入模式下将两个浮点值相加。
- __device__ double __ddiv_rd(double x, double y)
-
以向下取整模式对两个浮点数值进行除法运算。
- __device__ double __ddiv_rn(double x, double y)
-
以四舍五入到最接近偶数的模式对两个浮点值进行除法运算。
- __device__ double __ddiv_ru(double x, double y)
-
以向上取整模式对两个浮点数值进行除法运算。
- __device__ double __ddiv_rz(double x, double y)
-
以向零舍入模式对两个浮点值进行除法运算。
- __device__ double __dmul_rd(double x, double y)
-
以向下舍入模式计算两个浮点数的乘积。
- __device__ double __dmul_rn(double x, double y)
-
以四舍五入到最接近的偶数模式计算两个浮点数的乘积。
- __device__ double __dmul_ru(double x, double y)
-
在向上舍入模式下将两个浮点数值相乘。
- __device__ double __dmul_rz(double x, double y)
-
以向零舍入模式计算两个浮点数的乘积。
- __device__ double __drcp_rd(double x)
-
以向下舍入模式计算 \(\frac{1}{x}\)。
- __device__ double __drcp_rn(double x)
-
以最近偶数舍入模式计算 \(\frac{1}{x}\)。
- __device__ double __drcp_ru(double x)
-
以向上舍入模式计算 \(\frac{1}{x}\)。
- __device__ double __drcp_rz(double x)
-
以向零舍入模式计算 \(\frac{1}{x}\)。
- __device__ double __dsqrt_rd(double x)
-
以向下取整模式计算 \(\sqrt{x}\)。
- __device__ double __dsqrt_rn(double x)
-
以四舍五入到最近偶数模式计算 \(\sqrt{x}\)。
- __device__ double __dsqrt_ru(double x)
-
以向上取整模式计算 \(\sqrt{x}\)。
- __device__ double __dsqrt_rz(double x)
-
以向零舍入模式计算 \(\sqrt{x}\)。
- __device__ double __dsub_rd(double x, double y)
-
在向下舍入模式下减去两个浮点数值。
- __device__ double __dsub_rn(double x, double y)
-
在舍入到最近偶数模式下减去两个浮点数值。
- __device__ double __dsub_ru(double x, double y)
-
在向上舍入模式下减去两个浮点数值。
- __device__ double __dsub_rz(double x, double y)
-
在向零舍入模式下减去两个浮点数值。
- __device__ double __fma_rd(double x, double y, double z)
-
在向下舍入模式下,将\(x \times y + z\)作为单一运算进行计算。
- __device__ double __fma_rn(double x, double y, double z)
-
在四舍五入到最近偶数模式下,将\(x \times y + z\)作为单一运算进行计算。
- __device__ double __fma_ru(double x, double y, double z)
-
在向上取整模式下,将\(x \times y + z\)作为单一运算执行。
- __device__ double __fma_rz(double x, double y, double z)
-
在向零取整模式下,将\(x \times y + z\)作为单次运算执行。
9.1. 函数
-
__device__ double __dadd_rd(double x, double y)
-
在向下舍入模式下将两个浮点数值相加。
以向下舍入(至负无穷大)模式将两个浮点值
x和y相加。注意
有关精度信息,请参阅《CUDA C++编程指南》的数学函数附录中的内建函数章节。
注意
此操作永远不会被合并为单一的乘加指令。
- Returns
-
返回
x+y。__dadd_rd(
x,y) 等价于 __dadd_rd(y,x)。__dadd_rd(
x, \( \pm\infty \)) 对于有限值x返回 \( \pm\infty \)。__dadd_rd( \( \pm\infty \), \( \pm\infty \)) 返回 \( \pm\infty \)。
__dadd_rd( \( \pm\infty \), \( \mp\infty \)) 返回 NaN。
__dadd_rd( \( \pm 0 \), \( \pm 0 \)) 返回 \( \pm 0 \)。
对于有限的
x(包括\( \pm 0 \)),__dadd_rd(x,-x)会返回\( -0 \)。如果任一参数为NaN,则返回NaN。
-
__device__ double __dadd_rn(double x, double y)
-
在舍入到最近偶数模式下将两个浮点数值相加。
以四舍五入到最接近偶数模式将两个浮点值
x和y相加。注意
有关精度信息,请参阅《CUDA C++编程指南》的数学函数附录中的内建函数章节。
注意
此操作永远不会被合并为单一的乘加指令。
- Returns
-
返回
x+y。__dadd_rn(
x,y) 等同于 __dadd_rn(y,x)。__dadd_rn(
x, \( \pm\infty \)) 对于有限值x返回 \( \pm\infty \)。__dadd_rn( \( \pm\infty \), \( \pm\infty \)) 返回 \( \pm\infty \)。
__dadd_rn( \( \pm\infty \), \( \mp\infty \)) 返回 NaN。
__dadd_rn( \( \pm 0 \), \( \pm 0 \)) 返回 \( \pm 0 \)。
__dadd_rn(
x,-x) 对于有限值x返回 \( +0 \),包括 \( \pm 0 \)。如果任一参数为NaN,则返回NaN。
-
__device__ double __dadd_ru(double x, double y)
-
在向上舍入模式下添加两个浮点值。
以向上舍入(向正无穷大)模式将两个浮点值
x和y相加。注意
有关精度信息,请参阅《CUDA C++编程指南》的数学函数附录中的内建函数章节。
注意
此操作永远不会被合并为单一的乘加指令。
- Returns
-
返回
x+y。__dadd_ru(
x,y) 等价于 __dadd_ru(y,x)。__dadd_ru(
x, \( \pm\infty \)) 对于有限值x返回 \( \pm\infty \)。__dadd_ru( \( \pm\infty \), \( \pm\infty \)) 返回 \( \pm\infty \)。
__dadd_ru( \( \pm\infty \), \( \mp\infty \)) 返回 NaN。
__dadd_ru( \( \pm 0 \), \( \pm 0 \)) 返回 \( \pm 0 \)。
__dadd_ru(
x,-x) 对于有限值x返回 \( +0 \),包括 \( \pm 0 \)。如果任一参数为NaN,则返回NaN。
-
__device__ double __dadd_rz(double x, double y)
-
在向零舍入模式下添加两个浮点数值。
以向零舍入模式将两个浮点值
x和y相加。注意
有关精度信息,请参阅《CUDA C++编程指南》的数学函数附录中的内建函数章节。
注意
此操作永远不会被合并为单一的乘加指令。
- Returns
-
返回
x+y。__dadd_rz(
x,y) 等价于 __dadd_rz(y,x)。__dadd_rz(
x, \( \pm\infty \)) 对于有限值x返回 \( \pm\infty \)。__dadd_rz( \( \pm\infty \), \( \pm\infty \)) 返回 \( \pm\infty \)。
__dadd_rz( \( \pm\infty \), \( \mp\infty \)) 返回 NaN。
__dadd_rz( \( \pm 0 \), \( \pm 0 \)) 返回 \( \pm 0 \)。
__dadd_rz(
x,-x) 对于有限值x(包括 \( \pm 0 \))返回 \( +0 \)。如果任一参数为NaN,则返回NaN。
-
__device__ double __ddiv_rd(double x, double y)
-
以向下取整模式对两个浮点数值进行除法运算。
将两个浮点数值
x除以y,采用向下取整(趋向负无穷)模式。注意
有关精度信息,请参阅《CUDA C++编程指南》的数学函数附录中的内建函数章节。
注意
需要计算能力 >= 2.0。
- Returns
-
返回
x/y。当输入和结果都不是NaN时,商数
x/y的符号是x和y符号的异或结果。__ddiv_rd( \( \pm 0 \), \( \pm 0 \)) 返回 NaN。
__ddiv_rd( \( \pm\infty \), \( \pm\infty \)) 返回 NaN。
__ddiv_rd(
x, \( \pm\infty \)) 对于有限值x返回具有适当符号的 \( 0 \)。__ddiv_rd( \( \pm\infty \),
y) 对于有限的y返回适当符号的\( \infty \)。__ddiv_rd(
x, \( \pm 0 \)) 对于非零的x返回具有适当符号的\( \infty \)。__ddiv_rd( \( \pm 0 \),
y) 对于y\( \neq 0 \) 返回适当符号的 \( 0 \)。如果任一参数为NaN,则返回NaN。
-
__device__ double __ddiv_rn(double x, double y)
-
以四舍五入到最接近的偶数模式对两个浮点值进行除法运算。
在四舍五入到最近偶数模式下,将两个浮点数值
x除以y。注意
有关精度信息,请参阅《CUDA C++编程指南》的数学函数附录中的内建函数章节。
注意
需要计算能力 >= 2.0。
- Returns
-
返回
x/y。当输入和结果都不是NaN时,商数
x/y的符号是x和y符号的异或结果。__ddiv_rn( \( \pm 0 \), \( \pm 0 \)) 返回 NaN。
__ddiv_rn( \( \pm\infty \), \( \pm\infty \)) 返回 NaN。
__ddiv_rn(
x, \( \pm\infty \)) 对于有限值x返回具有适当符号的 \( 0 \)。__ddiv_rn( \( \pm\infty \),
y) 对于有限的y返回适当符号的\( \infty \)。__ddiv_rn(
x, \( \pm 0 \)) 对于非零的x返回适当符号的 \( \infty \)。__ddiv_rn( \( \pm 0 \),
y) 对于y\( \neq 0 \) 的情况返回适当符号的 \( 0 \)。如果任一参数为NaN,则返回NaN。
-
__device__ double __ddiv_ru(double x, double y)
-
以向上取整模式对两个浮点数值进行除法运算。
将两个浮点数值
x除以y,采用向上取整(向正无穷大)模式。注意
有关精度信息,请参阅《CUDA C++编程指南》的数学函数附录中的内建函数章节。
注意
需要计算能力 >= 2.0。
- Returns
-
返回
x/y。当输入和结果都不是NaN时,商数
x/y的符号是x和y符号的异或结果。__ddiv_ru( \( \pm 0 \), \( \pm 0 \)) 返回 NaN。
__ddiv_ru( \( \pm\infty \), \( \pm\infty \)) 返回 NaN。
__ddiv_ru(
x, \( \pm\infty \)) 对于有限值x返回带适当符号的\( 0 \)。__ddiv_ru( \( \pm\infty \),
y) 对于有限的y返回适当符号的\( \infty \)。__ddiv_ru(
x, \( \pm 0 \)) 对于非零的x返回适当符号的\( \infty \)。__ddiv_ru( \( \pm 0 \),
y) 当y\( \neq 0 \) 时返回适当符号的 \( 0 \)。如果任一参数为NaN,则返回NaN。
-
__device__ double __ddiv_rz(double x, double y)
-
以向零舍入模式对两个浮点值进行除法运算。
在向零舍入模式下,将两个浮点数值
x除以y。注意
有关精度信息,请参阅《CUDA C++编程指南》的数学函数附录中的内建函数章节。
注意
需要计算能力 >= 2.0。
- Returns
-
返回
x/y。当输入和结果都不是NaN时,商数
x/y的符号是x和y符号的异或结果。__ddiv_rz( \( \pm 0 \), \( \pm 0 \)) 返回 NaN。
__ddiv_rz( \( \pm\infty \), \( \pm\infty \)) 返回 NaN。
__ddiv_rz(
x, \( \pm\infty \)) 对于有限值x返回带有适当符号的\( 0 \)。__ddiv_rz( \( \pm\infty \),
y) 对于有限的y返回适当符号的\( \infty \)。__ddiv_rz(
x, \( \pm 0 \)) 对于非零的x返回适当符号的\( \infty \)。__ddiv_rz( \( \pm 0 \),
y) 当y\( \neq 0 \) 时返回适当符号的 \( 0 \)。如果任一参数为NaN,则返回NaN。
-
__device__ double __dmul_rd(double x, double y)
-
以向下舍入模式计算两个浮点数的乘积。
以向下舍入(至负无穷大)模式将两个浮点数值
x和y相乘。注意
有关精度信息,请参阅《CUDA C++编程指南》的数学函数附录中的内建函数章节。
注意
此操作永远不会被合并为单一的乘加指令。
- Returns
-
返回
x*y。当输入和结果都不是NaN时,乘积
x*y的符号是x和y符号的异或。__dmul_rd(
x,y) 等价于 __dmul_rd(y,x)。__dmul_rd(
x, \( \pm\infty \)) 对于x\( \neq 0 \)的情况返回适当符号的\( \infty \)。__dmul_rd( \( \pm 0 \), \( \pm\infty \)) 返回 NaN。
__dmul_rd( \( \pm 0 \),
y) 对于有限的y返回具有适当符号的 \( 0 \)。如果任一参数为NaN,则返回NaN。
-
__device__ double __dmul_rn(double x, double y)
-
以四舍五入到最近偶数模式计算两个浮点数的乘积。
以四舍五入到最接近偶数的模式将两个浮点数值
x和y相乘。注意
有关精度信息,请参阅《CUDA C++编程指南》的数学函数附录中的内建函数章节。
注意
此操作永远不会被合并为单一的乘加指令。
- Returns
-
返回
x*y。当输入和结果都不是NaN时,乘积
x*y的符号是x和y符号的异或。__dmul_rn(
x,y) 等同于 __dmul_rn(y,x)。__dmul_rn(
x, \( \pm\infty \)) 当x\( \neq 0 \)时返回相应符号的\( \infty \)。__dmul_rn( \( \pm 0 \), \( \pm\infty \)) 返回 NaN。
__dmul_rn( \( \pm 0 \),
y) 对于有限值的y返回具有适当符号的 \( 0 \)。如果任一参数为NaN,则返回NaN。
-
__device__ double __dmul_ru(double x, double y)
-
以向上舍入模式计算两个浮点数的乘积。
以向上舍入(向正无穷大)模式将两个浮点数值
x和y相乘。注意
有关精度信息,请参阅《CUDA C++编程指南》的数学函数附录中的内建函数章节。
注意
此操作永远不会被合并为单一的乘加指令。
- Returns
-
返回
x*y。当输入和结果都不是NaN时,乘积
x*y的符号是x和y符号的异或。__dmul_ru(
x,y) 等同于 __dmul_ru(y,x)。__dmul_ru(
x, \( \pm\infty \)) 当x\( \neq 0 \)时返回适当符号的\( \infty \)。__dmul_ru( \( \pm 0 \), \( \pm\infty \)) 返回 NaN。
__dmul_ru( \( \pm 0 \),
y) 对于有限的y返回适当符号的\( 0 \)。如果任一参数为NaN,则返回NaN。
-
__device__ double __dmul_rz(double x, double y)
-
以向零舍入模式计算两个浮点数的乘积。
以向零舍入模式将两个浮点数值
x和y相乘。注意
有关精度信息,请参阅《CUDA C++编程指南》的数学函数附录中的内建函数章节。
注意
此操作永远不会被合并为单一的乘加指令。
- Returns
-
返回
x*y。当输入和结果都不是NaN时,乘积
x*y的符号是x和y符号的异或。__dmul_rz(
x,y) 等价于 __dmul_rz(y,x)。__dmul_rz(
x, \( \pm\infty \)) 当x\( \neq 0 \)时返回相应符号的\( \infty \)。__dmul_rz( \( \pm 0 \), \( \pm\infty \)) 返回 NaN。
__dmul_rz( \( \pm 0 \),
y) 对于有限的y返回具有适当符号的 \( 0 \)。如果任一参数为NaN,则返回NaN。
-
__device__ double __drcp_rd(double x)
-
以向下舍入模式计算 \( \frac{1}{x} \)。
计算
x的倒数,采用向下取整(趋向负无穷)模式。注意
有关精度信息,请参阅《CUDA C++编程指南》的数学函数附录中的内建函数章节。
注意
需要计算能力 >= 2.0。
- Returns
-
返回 \( \frac{1}{x} \)。
-
__device__ double __drcp_rn(double x)
-
以四舍五入到最近偶数模式计算 \( \frac{1}{x} \)。
以四舍五入到最近偶数模式计算
x的倒数。注意
有关精度信息,请参阅《CUDA C++编程指南》的数学函数附录中的内建函数章节。
注意
需要计算能力 >= 2.0。
- Returns
-
返回 \( \frac{1}{x} \)。
-
__device__ double __drcp_ru(double x)
-
以向上舍入模式计算 \( \frac{1}{x} \)。
计算
x的倒数,采用向上取整(趋近正无穷)模式。注意
有关精度信息,请参阅《CUDA C++编程指南》的数学函数附录中的内建函数章节。
注意
需要计算能力 >= 2.0。
- Returns
-
返回 \( \frac{1}{x} \)。
-
__device__ double __drcp_rz(double x)
-
以向零舍入模式计算 \( \frac{1}{x} \)。
计算
x的倒数,采用向零取整模式。注意
有关精度信息,请参阅《CUDA C++编程指南》的数学函数附录中的内建函数章节。
注意
需要计算能力 >= 2.0。
- Returns
-
返回 \( \frac{1}{x} \)。
-
__device__ double __dsqrt_rd(double x)
-
以向下取整模式计算 \( \sqrt{x} \)。
以向下取整(趋向负无穷)模式计算
x的平方根。注意
有关精度信息,请参阅《CUDA C++编程指南》的数学函数附录中的内建函数章节。
注意
需要计算能力 >= 2.0。
- Returns
-
返回 \( \sqrt{x} \)。
-
__device__ double __dsqrt_rn(double x)
-
以四舍五入到最近偶数模式计算 \( \sqrt{x} \)。
以四舍五入到最接近的偶数模式计算
x的平方根。注意
有关精度信息,请参阅《CUDA C++编程指南》的数学函数附录中的内建函数章节。
注意
需要计算能力 >= 2.0。
- Returns
-
返回 \( \sqrt{x} \)。
-
__device__ double __dsqrt_ru(double x)
-
以向上取整模式计算 \( \sqrt{x} \)。
以向上取整(朝向正无穷)模式计算
x的平方根。注意
有关精度信息,请参阅《CUDA C++编程指南》的数学函数附录中的内建函数章节。
注意
需要计算能力 >= 2.0。
- Returns
-
返回 \( \sqrt{x} \)。
-
__device__ double __dsqrt_rz(double x)
-
以向零舍入模式计算 \( \sqrt{x} \)。
以向零舍入模式计算
x的平方根。注意
有关精度信息,请参阅《CUDA C++编程指南》的数学函数附录中的内建函数章节。
注意
需要计算能力 >= 2.0。
- Returns
-
返回 \( \sqrt{x} \)。
-
__device__ double __dsub_rd(double x, double y)
-
在向下舍入模式下减去两个浮点数值。
在向下舍入(至负无穷大)模式下对两个浮点数值
x和y进行减法运算。注意
有关精度信息,请参阅《CUDA C++编程指南》的数学函数附录中的内建函数章节。
注意
此操作永远不会被合并为单一的乘加指令。
- Returns
-
返回
x减去y。__dsub_rd( \( \pm\infty \),
y) 对于有限的y返回 \( \pm\infty \)。__dsub_rd(
x, \( \pm\infty \)) 对于有限值x返回 \( \mp\infty \)。__dsub_rd( \( \pm\infty \), \( \pm\infty \)) 返回 NaN。
__dsub_rd( \( \pm\infty \), \( \mp\infty \)) 返回 \( \pm\infty \)。
__dsub_rd( \( \pm 0 \), \( \mp 0 \)) 返回 \( \pm 0 \)。
__dsub_rd(
x,x) 对于有限值x返回 \( -0 \),包括 \( \pm 0 \)。如果任一参数为NaN,则返回NaN。
-
__device__ double __dsub_rn(double x, double y)
-
以舍入到最近偶数模式减去两个浮点数值。
在四舍五入到最接近偶数的模式下,对两个浮点数值
x和y进行减法运算。注意
有关精度信息,请参阅《CUDA C++编程指南》的数学函数附录中的内建函数章节。
注意
此操作永远不会被合并为单一的乘加指令。
- Returns
-
返回
x减去y。__dsub_rn( \( \pm\infty \),
y) 对于有限值y返回 \( \pm\infty \)。__dsub_rn(
x, \( \pm\infty \)) 对于有限值x返回 \( \mp\infty \)。__dsub_rn( \( \pm\infty \), \( \pm\infty \)) 返回 NaN。
__dsub_rn( \( \pm\infty \), \( \mp\infty \)) 返回 \( \pm\infty \)。
__dsub_rn( \( \pm 0 \), \( \mp 0 \)) 返回 \( \pm 0 \)。
__dsub_rn(
x,x) 对于有限值x(包括 \( \pm 0 \))返回 \( +0 \)。如果任一参数为NaN,则返回NaN。
-
__device__ double __dsub_ru(double x, double y)
-
在向上舍入模式下减去两个浮点数值。
在向上舍入(朝向正无穷大)模式下减去两个浮点值
x和y。注意
有关精度信息,请参阅《CUDA C++编程指南》的数学函数附录中的内建函数章节。
注意
此操作永远不会被合并为单一的乘加指令。
- Returns
-
返回
x减去y。__dsub_ru( \( \pm\infty \),
y) 对于有限的y返回 \( \pm\infty \)。__dsub_ru(
x, \( \pm\infty \)) 对于有限值x返回 \( \mp\infty \)。__dsub_ru( \( \pm\infty \), \( \pm\infty \)) 返回 NaN。
__dsub_ru( \( \pm\infty \), \( \mp\infty \)) 返回 \( \pm\infty \).
__dsub_ru( \( \pm 0 \), \( \mp 0 \)) 返回 \( \pm 0 \).
__dsub_ru(
x,x) 对于有限值x返回 \( +0 \),包括 \( \pm 0 \)。如果任一参数为NaN,则返回NaN。
-
__device__ double __dsub_rz(double x, double y)
-
在向零舍入模式下减去两个浮点数值。
在向零舍入模式下减去两个浮点值
x和y。注意
有关精度信息,请参阅《CUDA C++编程指南》的数学函数附录中的内建函数章节。
注意
此操作永远不会被合并为单一的乘加指令。
- Returns
-
返回
x减去y。__dsub_rz( \( \pm\infty \),
y) 对于有限值的y返回 \( \pm\infty \)。__dsub_rz(
x, \( \pm\infty \)) 对于有限值x返回 \( \mp\infty \)。__dsub_rz( \( \pm\infty \), \( \pm\infty \)) 返回 NaN。
__dsub_rz( \( \pm\infty \), \( \mp\infty \)) 返回 \( \pm\infty \).
__dsub_rz( \( \pm 0 \), \( \mp 0 \)) 返回 \( \pm 0 \)。
__dsub_rz(
x,x) 对于有限值x返回 \( +0 \),包括 \( \pm 0 \)。如果任一参数为NaN,则返回NaN。
-
__device__ double __fma_rd(double x, double y, double z)
-
在向下取整模式下,将\( x \times y + z \)作为单一运算进行计算。
计算\( x \times y + z \)的值作为单个三元运算,并以向下舍入(至负无穷大)模式对结果进行一次舍入。
注意
有关精度信息,请参阅《CUDA C++编程指南》的数学函数附录中的内建函数章节。
- Returns
-
返回\( x \times y + z \)作为单次运算的舍入值。
__fma_rd( \( \pm \infty \) , \( \pm 0 \) ,
z) 返回 NaN。__fma_rd( \( \pm 0 \) , \( \pm \infty \) ,
z) 返回NaN。__fma_rd(
x,y, \( -\infty \) ) 如果 \( x \times y \) 是精确的 \( +\infty \) 则返回 NaN。__fma_rd(
x,y, \( +\infty \) ) 当 \( x \times y \) 是精确的 \( -\infty \) 时返回 NaN。__fma_rd(
x,y, \( \pm 0 \)) 当 \( x \times y \) 精确等于 \( \pm 0 \) 时返回 \( \pm 0 \)。__fma_rd(
x,y, \( \mp 0 \)) 当 \( x \times y \) 精确等于 \( \pm 0 \) 时返回 \( -0 \)。__fma_rd(
x,y,z) 当\( x \times y + z \)精确等于零且\( z \neq 0 \)时返回\( -0 \)。如果任一参数为NaN,则返回NaN。
-
__device__ double __fma_rn(double x, double y, double z)
-
在四舍五入到最近偶数模式下,将\( x \times y + z \)作为单一运算进行计算。
将\( x \times y + z \)作为单个三元运算计算其值,并以四舍五入到最接近偶数的模式对结果进行一次舍入。
注意
有关精度信息,请参阅《CUDA C++编程指南》的数学函数附录中的内建函数章节。
- Returns
-
返回\( x \times y + z \)作为单次运算的舍入值。
__fma_rn( \( \pm \infty \) , \( \pm 0 \) ,
z) 返回 NaN。__fma_rn( \( \pm 0 \) , \( \pm \infty \) ,
z) 返回 NaN。__fma_rn(
x,y, \( -\infty \) ) 当 \( x \times y \) 是精确的 \( +\infty \) 时返回 NaN。__fma_rn(
x,y, \( +\infty \) ) 如果 \( x \times y \) 是精确的 \( -\infty \) 则返回 NaN。__fma_rn(
x,y, \( \pm 0 \)) 当 \( x \times y \) 精确等于 \( \pm 0 \) 时返回 \( \pm 0 \)。__fma_rn(
x,y, \( \mp 0 \)) 当 \( x \times y \) 精确等于 \( \pm 0 \) 时返回 \( +0 \)。__fma_rn(
x,y,z) 当\( x \times y + z \)精确等于零且\( z \neq 0 \)时返回\( +0 \)。如果任一参数为NaN,则返回NaN。
-
__device__ double __fma_ru(double x, double y, double z)
-
在向上取整模式下,将 \( x \times y + z \) 作为单一运算执行。
计算\( x \times y + z \)的值作为单个三元运算,以向上舍入(向正无穷大)模式对结果进行一次舍入。
注意
有关精度信息,请参阅《CUDA C++编程指南》的数学函数附录中的内建函数章节。
- Returns
-
返回\( x \times y + z \)作为单次运算的舍入值。
__fma_ru( \( \pm \infty \) , \( \pm 0 \) ,
z) 返回 NaN。__fma_ru( \( \pm 0 \) , \( \pm \infty \) ,
z) 返回 NaN。__fma_ru(
x,y, \( -\infty \) ) 如果 \( x \times y \) 是精确的 \( +\infty \),则返回 NaN。__fma_ru(
x,y, \( +\infty \) ) 当 \( x \times y \) 是精确的 \( -\infty \) 时返回 NaN。__fma_ru(
x,y, \( \pm 0 \)) 当 \( x \times y \) 精确等于 \( \pm 0 \) 时返回 \( \pm 0 \)。__fma_ru(
x,y, \( \mp 0 \)) 当 \( x \times y \) 精确等于 \( \pm 0 \) 时返回 \( +0 \)。__fma_ru(
x,y,z) 当\( x \times y + z \)精确等于零且\( z \neq 0 \)时返回\( +0 \)。如果任一参数为NaN,则返回NaN。
-
__device__ double __fma_rz(double x, double y, double z)
-
在向零取整模式下,将\( x \times y + z \)作为单一运算进行计算。
计算\( x \times y + z \)的值作为单个三元运算,在向零舍入模式下对结果进行一次舍入。
注意
有关精度信息,请参阅《CUDA C++编程指南》的数学函数附录中的内建函数章节。
- Returns
-
返回\( x \times y + z \)作为单次运算的舍入值。
__fma_rz( \( \pm \infty \) , \( \pm 0 \) ,
z) 返回 NaN。__fma_rz( \( \pm 0 \) , \( \pm \infty \) ,
z) 返回 NaN。__fma_rz(
x,y, \( -\infty \) ) 当\( x \times y \)为精确的\( +\infty \)时返回NaN。__fma_rz(
x,y, \( +\infty \) ) 当 \( x \times y \) 是精确的 \( -\infty \) 时返回 NaN。__fma_rz(
x,y, \( \pm 0 \)) 当 \( x \times y \) 精确等于 \( \pm 0 \) 时返回 \( \pm 0 \)。__fma_rz(
x,y, \( \mp 0 \)) 当\( x \times y \)精确等于\( \pm 0 \)时返回\( +0 \)。__fma_rz(
x,y,z) 当\( x \times y + z \)精确等于零且\( z \neq 0 \)时返回\( +0 \)。如果任一参数为NaN,则返回NaN。