Vector64.FusedMultiplyAdd Method

Definition

Overloads

FusedMultiplyAdd(Vector64<Double>, Vector64<Double>, Vector64<Double>)

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

FusedMultiplyAdd(Vector64<Single>, Vector64<Single>, Vector64<Single>)

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

FusedMultiplyAdd(Vector64<Double>, Vector64<Double>, Vector64<Double>)

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

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

Parameters

left
Vector64<Double>

The vector to be multiplied with right.

right
Vector64<Double>

The vector to be multiplied with left.

addend
Vector64<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(Vector64<Single>, Vector64<Single>, Vector64<Single>)

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

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

Parameters

left
Vector64<Single>

The vector to be multiplied with right.

right
Vector64<Single>

The vector to be multiplied with left.

addend
Vector64<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