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


Vector.FusedMultiplyAdd Метод

Определение

Перегрузки

FusedMultiplyAdd(Vector<Double>, Vector<Double>, Vector<Double>)

Вычисления (left * right) + addend, округленные как одна тернарная операция.

FusedMultiplyAdd(Vector<Single>, Vector<Single>, Vector<Single>)

Вычисления (left * right) + addend, округленные как одна тернарная операция.

FusedMultiplyAdd(Vector<Double>, Vector<Double>, Vector<Double>)

Вычисления (left * right) + addend, округленные как одна тернарная операция.

public:
 static System::Numerics::Vector<double> FusedMultiplyAdd(System::Numerics::Vector<double> left, System::Numerics::Vector<double> right, System::Numerics::Vector<double> addend);
public static System.Numerics.Vector<double> FusedMultiplyAdd (System.Numerics.Vector<double> left, System.Numerics.Vector<double> right, System.Numerics.Vector<double> addend);
static member FusedMultiplyAdd : System.Numerics.Vector<double> * System.Numerics.Vector<double> * System.Numerics.Vector<double> -> System.Numerics.Vector<double>
Public Function FusedMultiplyAdd (left As Vector(Of Double), right As Vector(Of Double), addend As Vector(Of Double)) As Vector(Of Double)

Параметры

left
Vector<Double>

Вектор, который нужно умножить на right.

right
Vector<Double>

Вектор, который нужно умножить на left.

addend
Vector<Double>

Вектор, добавляемый к результату left умножен на right.

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

(left * right) + addend, округленный как одна тернарная операция.

Комментарии

Это вычисляет (left * right) как если бы бесконечной точности, добавляет addend к этому результату, как будто к бесконечной точности, и, наконец, округляется до ближайшего представляющего значения.

Это отличается от неисплавленной последовательности, которая будет вычислять (left * right), как будто до бесконечной точности, округлить результат до ближайшего представляющего значения, добавить addend в округленный результат, как будто к бесконечной точности, и, наконец, округлить до ближайшего представляющего значения.

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

FusedMultiplyAdd(Vector<Single>, Vector<Single>, Vector<Single>)

Вычисления (left * right) + addend, округленные как одна тернарная операция.

public:
 static System::Numerics::Vector<float> FusedMultiplyAdd(System::Numerics::Vector<float> left, System::Numerics::Vector<float> right, System::Numerics::Vector<float> addend);
public static System.Numerics.Vector<float> FusedMultiplyAdd (System.Numerics.Vector<float> left, System.Numerics.Vector<float> right, System.Numerics.Vector<float> addend);
static member FusedMultiplyAdd : System.Numerics.Vector<single> * System.Numerics.Vector<single> * System.Numerics.Vector<single> -> System.Numerics.Vector<single>
Public Function FusedMultiplyAdd (left As Vector(Of Single), right As Vector(Of Single), addend As Vector(Of Single)) As Vector(Of Single)

Параметры

left
Vector<Single>

Вектор, который нужно умножить на right.

right
Vector<Single>

Вектор, который нужно умножить на left.

addend
Vector<Single>

Вектор, добавляемый к результату left умножен на right.

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

(left * right) + addend, округленный как одна тернарная операция.

Комментарии

Это вычисляет (left * right) как если бы бесконечной точности, добавляет addend к этому результату, как будто к бесконечной точности, и, наконец, округляется до ближайшего представляющего значения.

Это отличается от неисплавленной последовательности, которая будет вычислять (left * right), как будто до бесконечной точности, округлить результат до ближайшего представляющего значения, добавить addend в округленный результат, как будто к бесконечной точности, и, наконец, округлить до ближайшего представляющего значения.

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