แก้ไข

แชร์ผ่าน


Vector.FusedMultiplyAdd Method

Definition

Overloads

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

Computes (left * right) + addend, rounded as one ternary operation.

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

Computes (left * right) + addend, rounded as one ternary operation.

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

Computes (left * right) + addend, rounded as one ternary operation.

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)

Parameters

left
Vector<Double>

The vector to be multiplied with right.

right
Vector<Double>

The vector to be multiplied with left.

addend
Vector<Double>

The vector to be added to the result of left multiplied by right.

Returns

(left * right) + addend, rounded as one ternary operation.

Remarks

This computes (left * right) as if to infinite precision, adds addend to that result as if to infinite precision, and finally rounds to the nearest representable value.

This differs from the non-fused sequence which would compute (left * right) as if to infinite precision, round the result to the nearest representable value, add addend to the rounded result as if to infinite precision, and finally round to the nearest representable value.

Applies to

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

Computes (left * right) + addend, rounded as one ternary operation.

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)

Parameters

left
Vector<Single>

The vector to be multiplied with right.

right
Vector<Single>

The vector to be multiplied with left.

addend
Vector<Single>

The vector to be added to the result of left multiplied by right.

Returns

(left * right) + addend, rounded as one ternary operation.

Remarks

This computes (left * right) as if to infinite precision, adds addend to that result as if to infinite precision, and finally rounds to the nearest representable value.

This differs from the non-fused sequence which would compute (left * right) as if to infinite precision, round the result to the nearest representable value, add addend to the rounded result as if to infinite precision, and finally round to the nearest representable value.

Applies to