StrictMath.Fma 方法

定义

重载

Fma(Double, Double, Double)

返回三个参数的融合乘法:也就是说,返回与第三个参数求和的前两个参数的确切乘积,然后将一次舍入到最近的 double参数。

Fma(Single, Single, Single)

返回三个参数的融合乘法:也就是说,返回与第三个参数求和的前两个参数的确切乘积,然后将一次舍入到最近的 float参数。

Fma(Double, Double, Double)

返回三个参数的融合乘法:也就是说,返回与第三个参数求和的前两个参数的确切乘积,然后将一次舍入到最近的 double参数。

[Android.Runtime.Register("fma", "(DDD)D", "", ApiSince=33)]
public static double Fma (double a, double b, double c);
[<Android.Runtime.Register("fma", "(DDD)D", "", ApiSince=33)>]
static member Fma : double * double * double -> double

参数

a
Double

b
Double

c
Double

返回

a × b + c) 计算,就像具有无限范围和精度一样,并将一次舍入到最 double 接近的值

属性

注解

返回三个参数的融合乘法:也就是说,返回与第三个参数求和的前两个参数的确切乘积,然后将一次舍入到最近的 double参数。

舍入是使用 java.math.RoundingMode#HALF_EVEN舍入到最接近的甚至舍入模式完成的。

相比之下,如果 a * b + c 计算为常规浮点表达式,则涉及两个舍入错误,第一个用于乘法运算,第二个用于加法运算。

特殊情况: <ul><li> 如果任何参数为 NaN,则结果为 NaN。

<li> 如果前两个参数之一是无限的,另一个参数为零,则结果为 NaN。

<li> 如果前两个参数的确切积是无限的(换句话说,至少有一个参数是无限的,另一个参数既不是零,也不是 NaN),第三个参数是相反的符号的无穷大,结果为 NaN。

</ul>

请注意, fusedMac(a, 1.0, c) 返回与 (a + c) 相同的结果。 但是, fusedMac(a, b, +0.0) em 不/em> 始终返回与 () 相同的结果,因为 fusedMac(-0.0, +0.0, +0.0)+0.0 a * b/> 是 fusedMac(a, b, -0.0)-0.0;但与 (a * b-0.0 * +0.0) 等效。<><

已在 9 中添加。

适用于 . 的 java.lang.StrictMath.fma(double, double, double)Java 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

适用于

Fma(Single, Single, Single)

返回三个参数的融合乘法:也就是说,返回与第三个参数求和的前两个参数的确切乘积,然后将一次舍入到最近的 float参数。

[Android.Runtime.Register("fma", "(FFF)F", "", ApiSince=33)]
public static float Fma (float a, float b, float c);
[<Android.Runtime.Register("fma", "(FFF)F", "", ApiSince=33)>]
static member Fma : single * single * single -> single

参数

a
Single

b
Single

c
Single

返回

a × b + c) 计算,就像具有无限范围和精度一样,并将一次舍入到最 float 接近的值

属性

注解

返回三个参数的融合乘法:也就是说,返回与第三个参数求和的前两个参数的确切乘积,然后将一次舍入到最近的 float参数。

舍入是使用 java.math.RoundingMode#HALF_EVEN舍入到最接近的甚至舍入模式完成的。

相比之下,如果 a * b + c 计算为常规浮点表达式,则涉及两个舍入错误,第一个用于乘法运算,第二个用于加法运算。

特殊情况: <ul><li> 如果任何参数为 NaN,则结果为 NaN。

<li> 如果前两个参数之一是无限的,另一个参数为零,则结果为 NaN。

<li> 如果前两个参数的确切积是无限的(换句话说,至少有一个参数是无限的,另一个参数既不是零,也不是 NaN),第三个参数是相反的符号的无穷大,结果为 NaN。

</ul>

请注意, fma(a, 1.0f, c) 返回与 (a + c) 相同的结果。 但是, fma(a, b, +0.0f) em 不/em> 始终返回与 () 相同的结果,因为 fma(-0.0f, +0.0f, +0.0f)+0.0f a * b/> 是 fma(a, b, -0.0f)-0.0f;但与 (a * b-0.0f * +0.0f) 等效。<><

已在 9 中添加。

适用于 . 的 java.lang.StrictMath.fma(float, float, float)Java 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

适用于