TensorPrimitives.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<T>(ReadOnlySpan<T>, ReadOnlySpan<T>, ReadOnlySpan<T>, Span<T>) |
Computes the element-wise result of |
FusedMultiplyAdd<T>(ReadOnlySpan<T>, ReadOnlySpan<T>, T, Span<T>) |
Computes the element-wise result of |
FusedMultiplyAdd<T>(ReadOnlySpan<T>, T, ReadOnlySpan<T>, Span<T>) |
Computes the element-wise result of |
FusedMultiplyAdd<T>(ReadOnlySpan<T>, ReadOnlySpan<T>, ReadOnlySpan<T>, Span<T>)
Computes the element-wise result of (
for the specified tensors of numbers.x
* y
) + addend
public:
generic <typename T>
where T : System::Numerics::IFloatingPointIeee754<T> static void FusedMultiplyAdd(ReadOnlySpan<T> x, ReadOnlySpan<T> y, ReadOnlySpan<T> addend, Span<T> destination);
public static void FusedMultiplyAdd<T> (ReadOnlySpan<T> x, ReadOnlySpan<T> y, ReadOnlySpan<T> addend, Span<T> destination) where T : System.Numerics.IFloatingPointIeee754<T>;
static member FusedMultiplyAdd : ReadOnlySpan<'T (requires 'T :> System.Numerics.IFloatingPointIeee754<'T>)> * ReadOnlySpan<'T (requires 'T :> System.Numerics.IFloatingPointIeee754<'T>)> * ReadOnlySpan<'T (requires 'T :> System.Numerics.IFloatingPointIeee754<'T>)> * Span<'T (requires 'T :> System.Numerics.IFloatingPointIeee754<'T>)> -> unit (requires 'T :> System.Numerics.IFloatingPointIeee754<'T>)
Public Shared Sub FusedMultiplyAdd(Of T As IFloatingPointIeee754(Of T)) (x As ReadOnlySpan(Of T), y As ReadOnlySpan(Of T), addend As ReadOnlySpan(Of T), destination As Span(Of T))
Type Parameters
- T
Parameters
The first tensor, represented as a span.
The second tensor, represented as a span.
- addend
- ReadOnlySpan<T>
The third tensor, represented as a span.
- destination
- Span<T>
The destination tensor, represented as a span.
Exceptions
addend
and destination
reference overlapping memory locations and do not begin at the same location.
Remarks
This method effectively computes
.destination
[i] = (x
[i] * y
[i]) + addend
[i]
If either of the element-wise input values is equal to NaN, the resulting element-wise value is also NaN.
This computes (x
* y
) 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 (x
* y
) 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<T>(ReadOnlySpan<T>, ReadOnlySpan<T>, T, Span<T>)
Computes the element-wise result of (
for the specified tensors of numbers.x
* y
) + addend
public:
generic <typename T>
where T : System::Numerics::IFloatingPointIeee754<T> static void FusedMultiplyAdd(ReadOnlySpan<T> x, ReadOnlySpan<T> y, T addend, Span<T> destination);
public static void FusedMultiplyAdd<T> (ReadOnlySpan<T> x, ReadOnlySpan<T> y, T addend, Span<T> destination) where T : System.Numerics.IFloatingPointIeee754<T>;
static member FusedMultiplyAdd : ReadOnlySpan<'T (requires 'T :> System.Numerics.IFloatingPointIeee754<'T>)> * ReadOnlySpan<'T (requires 'T :> System.Numerics.IFloatingPointIeee754<'T>)> * 'T * Span<'T (requires 'T :> System.Numerics.IFloatingPointIeee754<'T>)> -> unit (requires 'T :> System.Numerics.IFloatingPointIeee754<'T>)
Public Shared Sub FusedMultiplyAdd(Of T As IFloatingPointIeee754(Of T)) (x As ReadOnlySpan(Of T), y As ReadOnlySpan(Of T), addend As T, destination As Span(Of T))
Type Parameters
- T
Parameters
The first tensor, represented as a span.
The second tensor, represented as a span.
- addend
- T
The third tensor, represented as a scalar.
- destination
- Span<T>
The destination tensor, represented as a span.
Exceptions
y
and destination
reference overlapping memory locations and do not begin at the same location.
Remarks
This method effectively computes
. It corresponds to the destination
[i] = (x
[i] * y
[i]) + addend
axpy
method defined by BLAS1
.
If either of the element-wise input values is equal to NaN, the resulting element-wise value is also NaN.
This computes (x
* y
) 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 (x
* y
) 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<T>(ReadOnlySpan<T>, T, ReadOnlySpan<T>, Span<T>)
Computes the element-wise result of (
for the specified tensors of numbers.x
* y
) + addend
public:
generic <typename T>
where T : System::Numerics::IFloatingPointIeee754<T> static void FusedMultiplyAdd(ReadOnlySpan<T> x, T y, ReadOnlySpan<T> addend, Span<T> destination);
public static void FusedMultiplyAdd<T> (ReadOnlySpan<T> x, T y, ReadOnlySpan<T> addend, Span<T> destination) where T : System.Numerics.IFloatingPointIeee754<T>;
static member FusedMultiplyAdd : ReadOnlySpan<'T (requires 'T :> System.Numerics.IFloatingPointIeee754<'T>)> * 'T * ReadOnlySpan<'T (requires 'T :> System.Numerics.IFloatingPointIeee754<'T>)> * Span<'T (requires 'T :> System.Numerics.IFloatingPointIeee754<'T>)> -> unit (requires 'T :> System.Numerics.IFloatingPointIeee754<'T>)
Public Shared Sub FusedMultiplyAdd(Of T As IFloatingPointIeee754(Of T)) (x As ReadOnlySpan(Of T), y As T, addend As ReadOnlySpan(Of T), destination As Span(Of T))
Type Parameters
- T
Parameters
The first tensor, represented as a span.
- y
- T
The second tensor, represented as a scalar.
- addend
- ReadOnlySpan<T>
The third tensor, represented as a span.
- destination
- Span<T>
The destination tensor, represented as a span.
Exceptions
addend
and destination
reference overlapping memory locations and do not begin at the same location.
Remarks
This method effectively computes
.destination
[i] = (x
[i] * y
) + addend
[i]
If either of the element-wise input values is equal to NaN, the resulting element-wise value is also NaN.
This computes (x
* y
) 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 (x
* y
) 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.