Share via


TensorPrimitives.FusedMultiplyAdd Method

Definition

Overloads

FusedMultiplyAdd<T>(ReadOnlySpan<T>, ReadOnlySpan<T>, ReadOnlySpan<T>, Span<T>)

Computes the element-wise result of (x * y) + addend for the specified tensors of numbers.

FusedMultiplyAdd<T>(ReadOnlySpan<T>, ReadOnlySpan<T>, T, Span<T>)

Computes the element-wise result of (x * y) + addend for the specified tensors of numbers.

FusedMultiplyAdd<T>(ReadOnlySpan<T>, T, ReadOnlySpan<T>, Span<T>)

Computes the element-wise result of (x * y) + addend for the specified tensors of numbers.

FusedMultiplyAdd<T>(ReadOnlySpan<T>, ReadOnlySpan<T>, ReadOnlySpan<T>, Span<T>)

Source:
TensorPrimitives.FusedMultiplyAdd.cs
Source:
TensorPrimitives.FusedMultiplyAdd.cs

Computes the element-wise result of (x * y) + addend for the specified tensors of numbers.

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

x
ReadOnlySpan<T>

The first tensor, represented as a span.

y
ReadOnlySpan<T>

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>)

Source:
TensorPrimitives.FusedMultiplyAdd.cs
Source:
TensorPrimitives.FusedMultiplyAdd.cs

Computes the element-wise result of (x * y) + addend for the specified tensors of numbers.

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

x
ReadOnlySpan<T>

The first tensor, represented as a span.

y
ReadOnlySpan<T>

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 destination[i] = (x[i] * y[i]) + addend. It corresponds to the 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>)

Source:
TensorPrimitives.FusedMultiplyAdd.cs
Source:
TensorPrimitives.FusedMultiplyAdd.cs

Computes the element-wise result of (x * y) + addend for the specified tensors of numbers.

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

x
ReadOnlySpan<T>

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.

Applies to