Vector64.FusedMultiplyAdd Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Overloads
FusedMultiplyAdd(Vector64<Double>, Vector64<Double>, Vector64<Double>) |
Computes ( |
FusedMultiplyAdd(Vector64<Single>, Vector64<Single>, Vector64<Single>) |
Computes ( |
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
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
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.