<PackageReference Include="System.Numerics.Vectors" Version="4.4.0-preview2-25405-01" />

System.Numerics.Vector

public static class Vector
Contains various methods useful for creating, manipulating, combining, and converting generic vectors with one another.
namespace System.Numerics { public static class Vector { public static bool IsHardwareAccelerated { get; } public static void Widen(Vector<byte> source, out Vector<ushort> low, out Vector<ushort> high); public static void Widen(Vector<ushort> source, out Vector<uint> low, out Vector<uint> high); public static void Widen(Vector<uint> source, out Vector<ulong> low, out Vector<ulong> high); public static void Widen(Vector<sbyte> source, out Vector<short> low, out Vector<short> high); public static void Widen(Vector<short> source, out Vector<int> low, out Vector<int> high); public static void Widen(Vector<int> source, out Vector<long> low, out Vector<long> high); public static void Widen(Vector<float> source, out Vector<double> low, out Vector<double> high); public static Vector<byte> Narrow(Vector<ushort> low, Vector<ushort> high); public static Vector<ushort> Narrow(Vector<uint> low, Vector<uint> high); public static Vector<uint> Narrow(Vector<ulong> low, Vector<ulong> high); public static Vector<sbyte> Narrow(Vector<short> low, Vector<short> high); public static Vector<short> Narrow(Vector<int> low, Vector<int> high); public static Vector<int> Narrow(Vector<long> low, Vector<long> high); public static Vector<float> Narrow(Vector<double> low, Vector<double> high); public static Vector<float> ConvertToSingle(Vector<int> value); public static Vector<float> ConvertToSingle(Vector<uint> value); public static Vector<double> ConvertToDouble(Vector<long> value); public static Vector<double> ConvertToDouble(Vector<ulong> value); public static Vector<int> ConvertToInt32(Vector<float> value); public static Vector<uint> ConvertToUInt32(Vector<float> value); public static Vector<long> ConvertToInt64(Vector<double> value); public static Vector<ulong> ConvertToUInt64(Vector<double> value); public static Vector<float> ConditionalSelect(Vector<int> condition, Vector<float> left, Vector<float> right); public static Vector<double> ConditionalSelect(Vector<long> condition, Vector<double> left, Vector<double> right); public static Vector<T> ConditionalSelect<T>(Vector<T> condition, Vector<T> left, Vector<T> right) where T : struct; public static Vector<T> Equals<T>(Vector<T> left, Vector<T> right) where T : struct; public static Vector<int> Equals(Vector<float> left, Vector<float> right); public static Vector<int> Equals(Vector<int> left, Vector<int> right); public static Vector<long> Equals(Vector<double> left, Vector<double> right); public static Vector<long> Equals(Vector<long> left, Vector<long> right); public static bool EqualsAll<T>(Vector<T> left, Vector<T> right) where T : struct; public static bool EqualsAny<T>(Vector<T> left, Vector<T> right) where T : struct; public static Vector<T> LessThan<T>(Vector<T> left, Vector<T> right) where T : struct; public static Vector<int> LessThan(Vector<float> left, Vector<float> right); public static Vector<int> LessThan(Vector<int> left, Vector<int> right); public static Vector<long> LessThan(Vector<double> left, Vector<double> right); public static Vector<long> LessThan(Vector<long> left, Vector<long> right); public static bool LessThanAll<T>(Vector<T> left, Vector<T> right) where T : struct; public static bool LessThanAny<T>(Vector<T> left, Vector<T> right) where T : struct; public static Vector<T> LessThanOrEqual<T>(Vector<T> left, Vector<T> right) where T : struct; public static Vector<int> LessThanOrEqual(Vector<float> left, Vector<float> right); public static Vector<int> LessThanOrEqual(Vector<int> left, Vector<int> right); public static Vector<long> LessThanOrEqual(Vector<long> left, Vector<long> right); public static Vector<long> LessThanOrEqual(Vector<double> left, Vector<double> right); public static bool LessThanOrEqualAll<T>(Vector<T> left, Vector<T> right) where T : struct; public static bool LessThanOrEqualAny<T>(Vector<T> left, Vector<T> right) where T : struct; public static Vector<T> GreaterThan<T>(Vector<T> left, Vector<T> right) where T : struct; public static Vector<int> GreaterThan(Vector<float> left, Vector<float> right); public static Vector<int> GreaterThan(Vector<int> left, Vector<int> right); public static Vector<long> GreaterThan(Vector<double> left, Vector<double> right); public static Vector<long> GreaterThan(Vector<long> left, Vector<long> right); public static bool GreaterThanAll<T>(Vector<T> left, Vector<T> right) where T : struct; public static bool GreaterThanAny<T>(Vector<T> left, Vector<T> right) where T : struct; public static Vector<T> GreaterThanOrEqual<T>(Vector<T> left, Vector<T> right) where T : struct; public static Vector<int> GreaterThanOrEqual(Vector<float> left, Vector<float> right); public static Vector<int> GreaterThanOrEqual(Vector<int> left, Vector<int> right); public static Vector<long> GreaterThanOrEqual(Vector<long> left, Vector<long> right); public static Vector<long> GreaterThanOrEqual(Vector<double> left, Vector<double> right); public static bool GreaterThanOrEqualAll<T>(Vector<T> left, Vector<T> right) where T : struct; public static bool GreaterThanOrEqualAny<T>(Vector<T> left, Vector<T> right) where T : struct; public static Vector<T> Abs<T>(Vector<T> value) where T : struct; public static Vector<T> Min<T>(Vector<T> left, Vector<T> right) where T : struct; public static Vector<T> Max<T>(Vector<T> left, Vector<T> right) where T : struct; public static T Dot<T>(Vector<T> left, Vector<T> right) where T : struct; public static Vector<T> SquareRoot<T>(Vector<T> value) where T : struct; public static Vector<T> Add<T>(Vector<T> left, Vector<T> right) where T : struct; public static Vector<T> Subtract<T>(Vector<T> left, Vector<T> right) where T : struct; public static Vector<T> Multiply<T>(Vector<T> left, Vector<T> right) where T : struct; public static Vector<T> Multiply<T>(Vector<T> left, T right) where T : struct; public static Vector<T> Multiply<T>(T left, Vector<T> right) where T : struct; public static Vector<T> Divide<T>(Vector<T> left, Vector<T> right) where T : struct; public static Vector<T> Negate<T>(Vector<T> value) where T : struct; public static Vector<T> BitwiseAnd<T>(Vector<T> left, Vector<T> right) where T : struct; public static Vector<T> BitwiseOr<T>(Vector<T> left, Vector<T> right) where T : struct; public static Vector<T> OnesComplement<T>(Vector<T> value) where T : struct; public static Vector<T> Xor<T>(Vector<T> left, Vector<T> right) where T : struct; public static Vector<T> AndNot<T>(Vector<T> left, Vector<T> right) where T : struct; public static Vector<byte> AsVectorByte<T>(Vector<T> value) where T : struct; public static Vector<sbyte> AsVectorSByte<T>(Vector<T> value) where T : struct; public static Vector<ushort> AsVectorUInt16<T>(Vector<T> value) where T : struct; public static Vector<short> AsVectorInt16<T>(Vector<T> value) where T : struct; public static Vector<uint> AsVectorUInt32<T>(Vector<T> value) where T : struct; public static Vector<int> AsVectorInt32<T>(Vector<T> value) where T : struct; public static Vector<ulong> AsVectorUInt64<T>(Vector<T> value) where T : struct; public static Vector<long> AsVectorInt64<T>(Vector<T> value) where T : struct; public static Vector<float> AsVectorSingle<T>(Vector<T> value) where T : struct; public static Vector<double> AsVectorDouble<T>(Vector<T> value) where T : struct; } }