Поделиться через


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

значение

Возвращаемое значение

(>; > >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). Тем не менее, em не всегда> возвращает тот же результат, <fusedMac(a, b, +0.0)>что и (a * b) с момента fusedMac(-0.0, +0.0, +0.0) () имеет значение +0.0-0.0 * +0.0-0.0; fusedMac(a, b, -0.0) эквивалентно () однакоa * b.<

Добавлено в 9.

Документация по Java для java.lang.StrictMath.fma(double, double, double).

Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.

Применяется к

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

значение

Возвращаемое значение

(>; > >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). Тем не менее, em не всегда> возвращает тот же результат, <fma(a, b, +0.0f)>что и (a * b) с момента fma(-0.0f, +0.0f, +0.0f) () имеет значение +0.0f-0.0f * +0.0f-0.0f; fma(a, b, -0.0f) эквивалентно () однакоa * b.<

Добавлено в 9.

Документация по Java для java.lang.StrictMath.fma(float, float, float).

Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.

Применяется к