Background and motivation
These slipped through when aiming for parity.
API Proposal
namespace System.Numerics.Tensors;
public static class TensorPrimitives
{
// Same surface area as Min/Max{Magnitude}, but for Min/Max{Magnitude}Number
+ public static int IndexOfMaxNumber<T>(ReadOnlySpan<T> x) where T : INumber<T>;
+ public static int IndexOfMinNumber<T>(ReadOnlySpan<T> x) where T : INumber<T>;
+ public static int IndexOfMaxMagnitudeNumber<T>(ReadOnlySpan<T> x) where T : INumber<T>;
+ public static int IndexOfMinMagnitudeNumber<T>(ReadOnlySpan<T> x) where T : INumber<T>;
+ public static T MaxMagnitudeNumber<T>(ReadOnlySpan<T> x) where T : INumberBase<T>;
+ public static void MaxMagnitudeNumber<T>(ReadOnlySpan<T> x, ReadOnlySpan<T> y, System.Span<T> destination) where T : INumberBase<T>;
+ public static void MaxMagnitudeNumber<T>(ReadOnlySpan<T> x, T y, Span<T> destination) where T : INumberBase<T>;
+ public static T MaxNumber<T>(ReadOnlySpan<T> x) where T : INumber<T>;
+ public static void MaxNumber<T>(ReadOnlySpan<T> x, ReadOnlySpan<T> y, Span<T> destination) where T : INumber<T>;
+ public static void MaxNumber<T>(ReadOnlySpan<T> x, T y, Span<T> destination) where T : INumber<T>;
+ public static T MinMagnitudeNumber<T>(ReadOnlySpan<T> x) where T : INumberBase<T>;
+ public static void MinMagnitudeNumber<T>(ReadOnlySpan<T> x, ReadOnlySpan<T> y, Span<T> destination) where T : INumberBase<T>;
+ public static void MinMagnitudeNumber<T>(ReadOnlySpan<T> x, T y, Span<T> destination) where T : INumberBase<T>;
+ public static T MinNumber<T>(ReadOnlySpan<T> x) where T : INumber<T>;
+ public static void MinNumber<T>(ReadOnlySpan<T> x, ReadOnlySpan<T> y, Span<T> destination) where T : INumber<T>;
+ public static void MinNumber<T>(ReadOnlySpan<T> x, T y, Span<T> destination) where T : INumber<T>;
}
API Usage
TensorPrimitives.MaxMagnitude(x, y, dest);
Alternative Designs
No response
Risks
No response
Background and motivation
These slipped through when aiming for parity.
API Proposal
namespace System.Numerics.Tensors; public static class TensorPrimitives { // Same surface area as Min/Max{Magnitude}, but for Min/Max{Magnitude}Number + public static int IndexOfMaxNumber<T>(ReadOnlySpan<T> x) where T : INumber<T>; + public static int IndexOfMinNumber<T>(ReadOnlySpan<T> x) where T : INumber<T>; + public static int IndexOfMaxMagnitudeNumber<T>(ReadOnlySpan<T> x) where T : INumber<T>; + public static int IndexOfMinMagnitudeNumber<T>(ReadOnlySpan<T> x) where T : INumber<T>; + public static T MaxMagnitudeNumber<T>(ReadOnlySpan<T> x) where T : INumberBase<T>; + public static void MaxMagnitudeNumber<T>(ReadOnlySpan<T> x, ReadOnlySpan<T> y, System.Span<T> destination) where T : INumberBase<T>; + public static void MaxMagnitudeNumber<T>(ReadOnlySpan<T> x, T y, Span<T> destination) where T : INumberBase<T>; + public static T MaxNumber<T>(ReadOnlySpan<T> x) where T : INumber<T>; + public static void MaxNumber<T>(ReadOnlySpan<T> x, ReadOnlySpan<T> y, Span<T> destination) where T : INumber<T>; + public static void MaxNumber<T>(ReadOnlySpan<T> x, T y, Span<T> destination) where T : INumber<T>; + public static T MinMagnitudeNumber<T>(ReadOnlySpan<T> x) where T : INumberBase<T>; + public static void MinMagnitudeNumber<T>(ReadOnlySpan<T> x, ReadOnlySpan<T> y, Span<T> destination) where T : INumberBase<T>; + public static void MinMagnitudeNumber<T>(ReadOnlySpan<T> x, T y, Span<T> destination) where T : INumberBase<T>; + public static T MinNumber<T>(ReadOnlySpan<T> x) where T : INumber<T>; + public static void MinNumber<T>(ReadOnlySpan<T> x, ReadOnlySpan<T> y, Span<T> destination) where T : INumber<T>; + public static void MinNumber<T>(ReadOnlySpan<T> x, T y, Span<T> destination) where T : INumber<T>; }API Usage
Alternative Designs
No response
Risks
No response