Vector256 Class

Definition

Provides a collection of static methods for creating, manipulating, and otherwise operating on 256-bit vectors.

public ref class Vector256 abstract sealed
public static class Vector256
type Vector256 = class
Public Module Vector256
Inheritance
Vector256

Properties

IsHardwareAccelerated

Gets a value that indicates whether 256-bit vector operations are subject to hardware acceleration through JIT intrinsic support.

Methods

Abs<T>(Vector256<T>)

Computes the absolute value of each element in a vector.

Add<T>(Vector256<T>, Vector256<T>)

Adds two vectors to compute their sum.

AndNot<T>(Vector256<T>, Vector256<T>)

Computes the bitwise-and of a given vector and the ones complement of another vector.

As<T,U>(Vector256<T>)

Reinterprets a Vector256<T> of type TFrom as a new Vector256<T> of type TTo.

AsByte<T>(Vector256<T>)

Reinterprets a Vector256<T> as a new Vector256 of type Byte.

AsDouble<T>(Vector256<T>)

Reinterprets a Vector256<T> as a new Vector256 of type Double.

AsInt16<T>(Vector256<T>)

Reinterprets a Vector256<T> as a new Vector256 of type Int16.

AsInt32<T>(Vector256<T>)

Reinterprets a Vector256<T> as a new Vector256 of type Int32.

AsInt64<T>(Vector256<T>)

Reinterprets a Vector256<T> as a new Vector256 of type Int64.

AsNInt<T>(Vector256<T>)

Reinterprets a Vector256<T> as a new Vector256<T>.

AsNUInt<T>(Vector256<T>)

Reinterprets a Vector256<T> as a new Vector256<T>.

AsSByte<T>(Vector256<T>)

Reinterprets a Vector256<T> as a new Vector256 of type SByte.

AsSingle<T>(Vector256<T>)

Reinterprets a Vector256<T> as a new Vector256 of type Single.

AsUInt16<T>(Vector256<T>)

Reinterprets a Vector256<T> as a new Vector256 of type UInt16.

AsUInt32<T>(Vector256<T>)

Reinterprets a Vector256<T> as a new Vector256 of type UInt32.

AsUInt64<T>(Vector256<T>)

Reinterprets a Vector256<T> as a new Vector256 of type UInt64.

AsVector<T>(Vector256<T>)

Reinterprets a Vector256<T> as a new Vector<T>.

AsVector256<T>(Vector<T>)

Reinterprets a Vector<T> as a new Vector256<T>.

BitwiseAnd<T>(Vector256<T>, Vector256<T>)

Computes the bitwise-and of two vectors.

BitwiseOr<T>(Vector256<T>, Vector256<T>)

Computes the bitwise-or of two vectors.

Ceiling(Vector256<Double>)

Computes the ceiling of each element in a vector.

Ceiling(Vector256<Single>)

Computes the ceiling of each element in a vector.

ConditionalSelect<T>(Vector256<T>, Vector256<T>, Vector256<T>)

Conditionally selects a value from two vectors on a bitwise basis.

ConvertToDouble(Vector256<Int64>)

Converts a Vector256<T> to a Vector256<T>.

ConvertToDouble(Vector256<UInt64>)

Converts a Vector256<T> to a Vector256<T>.

ConvertToInt32(Vector256<Single>)

Converts a Vector256<T> to a Vector256<T>.

ConvertToInt64(Vector256<Double>)

Converts a Vector256<T> to a Vector256<T>.

ConvertToSingle(Vector256<Int32>)

Converts a Vector256<T> to a Vector256<T>.

ConvertToSingle(Vector256<UInt32>)

Converts a Vector256<T> to a Vector256<T>.

ConvertToUInt32(Vector256<Single>)

Converts a Vector256<T> to a Vector256<T>.

ConvertToUInt64(Vector256<Double>)

Converts a Vector256<T> to a Vector256<T>.

CopyTo<T>(Vector256<T>, Span<T>)

Copies a Vector256<T> to a given span.

CopyTo<T>(Vector256<T>, T[])

Copies a Vector256<T> to a given array.

CopyTo<T>(Vector256<T>, T[], Int32)

Copies a Vector256<T> to a given array starting at the specified index.

Create(Byte)

Creates a new Vector256<T> instance with all elements initialized to the specified value.

Create(Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte)

Creates a new Vector256<T> instance with each element initialized to the corresponding specified value.

Create(Double)

Creates a new Vector256<T> instance with all elements initialized to the specified value.

Create(Double, Double, Double, Double)

Creates a new Vector256<T> instance with each element initialized to the corresponding specified value.

Create(Int16)

Creates a new Vector256<T> instance with all elements initialized to the specified value.

Create(Int16, Int16, Int16, Int16, Int16, Int16, Int16, Int16, Int16, Int16, Int16, Int16, Int16, Int16, Int16, Int16)

Creates a new Vector256<T> instance with each element initialized to the corresponding specified value.

Create(Int32)

Creates a new Vector256<T> instance with all elements initialized to the specified value.

Create(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32)

Creates a new Vector256<T> instance with each element initialized to the corresponding specified value.

Create(Int64)

Creates a new Vector256<T> instance with all elements initialized to the specified value.

Create(Int64, Int64, Int64, Int64)

Creates a new Vector256<T> instance with each element initialized to the corresponding specified value.

Create(IntPtr)

Creates a new Vector256<T> instance with all elements initialized to the specified value.

Create(SByte)

Creates a new Vector256<T> instance with all elements initialized to the specified value.

Create(SByte, SByte, SByte, SByte, SByte, SByte, SByte, SByte, SByte, SByte, SByte, SByte, SByte, SByte, SByte, SByte, SByte, SByte, SByte, SByte, SByte, SByte, SByte, SByte, SByte, SByte, SByte, SByte, SByte, SByte, SByte, SByte)

Creates a new Vector256<T> instance with each element initialized to the corresponding specified value.

Create(Single)

Creates a new Vector256<T> instance with all elements initialized to the specified value.

Create(Single, Single, Single, Single, Single, Single, Single, Single)

Creates a new Vector256<T> instance with each element initialized to the corresponding specified value.

Create(UInt16)

Creates a new Vector256<T> instance with all elements initialized to the specified value.

Create(UInt16, UInt16, UInt16, UInt16, UInt16, UInt16, UInt16, UInt16, UInt16, UInt16, UInt16, UInt16, UInt16, UInt16, UInt16, UInt16)

Creates a new Vector256<T> instance with each element initialized to the corresponding specified value.

Create(UInt32)

Creates a new Vector256<T> instance with all elements initialized to the specified value.

Create(UInt32, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32)

Creates a new Vector256<T> instance with each element initialized to the corresponding specified value.

Create(UInt64)

Creates a new Vector256<T> instance with all elements initialized to the specified value.

Create(UInt64, UInt64, UInt64, UInt64)

Creates a new Vector256<T> instance with each element initialized to the corresponding specified value.

Create(UIntPtr)

Creates a new Vector256<T> instance with all elements initialized to the specified value.

Create(Vector128<Byte>, Vector128<Byte>)

Creates a new Vector256<T> instance from two Vector128<T> instances.

Create(Vector128<Double>, Vector128<Double>)

Creates a new Vector256<T> instance from two Vector128<T> instances.

Create(Vector128<Int16>, Vector128<Int16>)

Creates a new Vector256<T> instance from two Vector128<T> instances.

Create(Vector128<Int32>, Vector128<Int32>)

Creates a new Vector256<T> instance from two Vector128<T> instances.

Create(Vector128<Int64>, Vector128<Int64>)

Creates a new Vector256<T> instance from two Vector128<T> instances.

Create(Vector128<SByte>, Vector128<SByte>)

Creates a new Vector256<T> instance from two Vector128<T> instances.

Create(Vector128<Single>, Vector128<Single>)

Creates a new Vector256<T> instance from two Vector128<T> instances.

Create(Vector128<UInt16>, Vector128<UInt16>)

Creates a new Vector256<T> instance from two Vector128<T> instances.

Create(Vector128<UInt32>, Vector128<UInt32>)

Creates a new Vector256<T> instance from two Vector128<T> instances.

Create(Vector128<UInt64>, Vector128<UInt64>)

Creates a new Vector256<T> instance from two Vector128<T> instances.

Create<T>(ReadOnlySpan<T>)

Creates a new Vector256<T> from a given readonly span.

Create<T>(T)

Creates a new Vector256<T> instance with all elements initialized to the specified value.

Create<T>(T[])

Creates a new Vector256<T> from a given array.

Create<T>(T[], Int32)

Creates a new Vector256<T> from a given array.

CreateScalar(Byte)

Creates a new Vector256<T> instance with the first element initialized to the specified value and the remaining elements initialized to zero.

CreateScalar(Double)

Creates a new Vector256<T> instance with the first element initialized to the specified value and the remaining elements initialized to zero.

CreateScalar(Int16)

Creates a new Vector256<T> instance with the first element initialized to the specified value and the remaining elements initialized to zero.

CreateScalar(Int32)

Creates a new Vector256<T> instance with the first element initialized to the specified value and the remaining elements initialized to zero.

CreateScalar(Int64)

Creates a new Vector256<T> instance with the first element initialized to the specified value and the remaining elements initialized to zero.

CreateScalar(IntPtr)

Creates a new Vector256<T> instance with the first element initialized to the specified value and the remaining elements initialized to zero.

CreateScalar(SByte)

Creates a new Vector256<T> instance with the first element initialized to the specified value and the remaining elements initialized to zero.

CreateScalar(Single)

Creates a new Vector256<T> instance with the first element initialized to the specified value and the remaining elements initialized to zero.

CreateScalar(UInt16)

Creates a new Vector256<T> instance with the first element initialized to the specified value and the remaining elements initialized to zero.

CreateScalar(UInt32)

Creates a new Vector256<T> instance with the first element initialized to the specified value and the remaining elements initialized to zero.

CreateScalar(UInt64)

Creates a new Vector256<T> instance with the first element initialized to the specified value and the remaining elements initialized to zero.

CreateScalar(UIntPtr)

Creates a new Vector256<T> instance with the first element initialized to the specified value and the remaining elements initialized to zero.

CreateScalarUnsafe(Byte)

Creates a new Vector256<T> instance with the first element initialized to the specified value and the remaining elements left uninitialized.

CreateScalarUnsafe(Double)

Creates a new Vector256<T> instance with the first element initialized to the specified value and the remaining elements left uninitialized.

CreateScalarUnsafe(Int16)

Creates a new Vector256<T> instance with the first element initialized to the specified value and the remaining elements left uninitialized.

CreateScalarUnsafe(Int32)

Creates a new Vector256<T> instance with the first element initialized to the specified value and the remaining elements left uninitialized.

CreateScalarUnsafe(Int64)

Creates a new Vector256<T> instance with the first element initialized to the specified value and the remaining elements left uninitialized.

CreateScalarUnsafe(IntPtr)

Creates a new Vector256<T> instance with the first element initialized to the specified value and the remaining elements left uninitialized.

CreateScalarUnsafe(SByte)

Creates a new Vector256<T> instance with the first element initialized to the specified value and the remaining elements left uninitialized.

CreateScalarUnsafe(Single)

Creates a new Vector256<T> instance with the first element initialized to the specified value and the remaining elements left uninitialized.

CreateScalarUnsafe(UInt16)

Creates a new Vector256<T> instance with the first element initialized to the specified value and the remaining elements left uninitialized.

CreateScalarUnsafe(UInt32)

Creates a new Vector256<T> instance with the first element initialized to the specified value and the remaining elements left uninitialized.

CreateScalarUnsafe(UInt64)

Creates a new Vector256<T> instance with the first element initialized to the specified value and the remaining elements left uninitialized.

CreateScalarUnsafe(UIntPtr)

Creates a new Vector256<T> instance with the first element initialized to the specified value and the remaining elements left uninitialized.

Divide<T>(Vector256<T>, Vector256<T>)

Divides two vectors to compute their quotient.

Dot<T>(Vector256<T>, Vector256<T>)

Computes the dot product of two vectors.

Equals<T>(Vector256<T>, Vector256<T>)

Compares two vectors to determine if they are equal on a per-element basis.

EqualsAll<T>(Vector256<T>, Vector256<T>)

Compares two vectors to determine if all elements are equal.

EqualsAny<T>(Vector256<T>, Vector256<T>)

Compares two vectors to determine if any elements are equal.

ExtractMostSignificantBits<T>(Vector256<T>)

Extracts the most significant bit from each element in a vector.

Floor(Vector256<Double>)

Computes the floor of each element in a vector.

Floor(Vector256<Single>)

Computes the floor of each element in a vector.

GetElement<T>(Vector256<T>, Int32)

Gets the element at the specified index.

GetLower<T>(Vector256<T>)

Gets the value of the lower 128 bits as a new Vector128<T>.

GetUpper<T>(Vector256<T>)

Gets the value of the upper 128 bits as a new Vector128<T>.

GreaterThan<T>(Vector256<T>, Vector256<T>)

Compares two vectors to determine which is greater on a per-element basis.

GreaterThanAll<T>(Vector256<T>, Vector256<T>)

Compares two vectors to determine if all elements are greater.

GreaterThanAny<T>(Vector256<T>, Vector256<T>)

Compares two vectors to determine if any elements are greater.

GreaterThanOrEqual<T>(Vector256<T>, Vector256<T>)

Compares two vectors to determine which is greater or equal on a per-element basis.

GreaterThanOrEqualAll<T>(Vector256<T>, Vector256<T>)

Compares two vectors to determine if all elements are greater or equal.

GreaterThanOrEqualAny<T>(Vector256<T>, Vector256<T>)

Compares two vectors to determine if any elements are greater or equal.

LessThan<T>(Vector256<T>, Vector256<T>)

Compares two vectors to determine which is less on a per-element basis.

LessThanAll<T>(Vector256<T>, Vector256<T>)

Compares two vectors to determine if all elements are less.

LessThanAny<T>(Vector256<T>, Vector256<T>)

Compares two vectors to determine if any elements are less.

LessThanOrEqual<T>(Vector256<T>, Vector256<T>)

Compares two vectors to determine which is less or equal on a per-element basis.

LessThanOrEqualAll<T>(Vector256<T>, Vector256<T>)

Compares two vectors to determine if all elements are less or equal.

LessThanOrEqualAny<T>(Vector256<T>, Vector256<T>)

Compares two vectors to determine if any elements are less or equal.

Load<T>(T*)

Loads a vector from the given source.

LoadAligned<T>(T*)

Loads a vector from the given aligned source.

LoadAlignedNonTemporal<T>(T*)

Loads a vector from the given aligned source.

LoadUnsafe<T>(T)

Loads a vector from the given source.

LoadUnsafe<T>(T, UIntPtr)

Loads a vector from the given source and element offset.

Max<T>(Vector256<T>, Vector256<T>)

Computes the maximum of two vectors on a per-element basis.

Min<T>(Vector256<T>, Vector256<T>)

Computes the minimum of two vectors on a per-element basis.

Multiply<T>(T, Vector256<T>)

Multiplies a vector by a scalar to compute their product.

Multiply<T>(Vector256<T>, T)

Multiplies a vector by a scalar to compute their product.

Multiply<T>(Vector256<T>, Vector256<T>)

Multiplies two vectors to compute their element-wise product.

Narrow(Vector256<Double>, Vector256<Double>)

Narrows two Vector256<T> instances into one Vector256<T>.

Narrow(Vector256<Int16>, Vector256<Int16>)

Narrows two Vector256<T> instances into one Vector256<T>.

Narrow(Vector256<Int32>, Vector256<Int32>)

Narrows two Vector256<T> instances into one Vector256<T>.

Narrow(Vector256<Int64>, Vector256<Int64>)

Narrows two Vector256<T> instances into one Vector256<T>.

Narrow(Vector256<UInt16>, Vector256<UInt16>)

Narrows two Vector256<T> instances into one Vector256<T>.

Narrow(Vector256<UInt32>, Vector256<UInt32>)

Narrows two Vector256<T> instances into one Vector256<T>.

Narrow(Vector256<UInt64>, Vector256<UInt64>)

Narrows two Vector256<T> instances into one Vector256<T>.

Negate<T>(Vector256<T>)

Negates a vector.

OnesComplement<T>(Vector256<T>)

Computes the ones-complement of a vector.

ShiftLeft(Vector256<Byte>, Int32)

Shifts each element of a vector left by the specified amount.

ShiftLeft(Vector256<Int16>, Int32)

Shifts each element of a vector left by the specified amount.

ShiftLeft(Vector256<Int32>, Int32)

Shifts each element of a vector left by the specified amount.

ShiftLeft(Vector256<Int64>, Int32)

Shifts each element of a vector left by the specified amount.

ShiftLeft(Vector256<IntPtr>, Int32)

Shifts each element of a vector left by the specified amount.

ShiftLeft(Vector256<SByte>, Int32)

Shifts each element of a vector left by the specified amount.

ShiftLeft(Vector256<UInt16>, Int32)

Shifts each element of a vector left by the specified amount.

ShiftLeft(Vector256<UInt32>, Int32)

Shifts each element of a vector left by the specified amount.

ShiftLeft(Vector256<UInt64>, Int32)

Shifts each element of a vector left by the specified amount.

ShiftLeft(Vector256<UIntPtr>, Int32)

Shifts each element of a vector left by the specified amount.

ShiftRightArithmetic(Vector256<Int16>, Int32)

Shifts (signed) each element of a vector right by the specified amount.

ShiftRightArithmetic(Vector256<Int32>, Int32)

Shifts (signed) each element of a vector right by the specified amount.

ShiftRightArithmetic(Vector256<Int64>, Int32)

Shifts (signed) each element of a vector right by the specified amount.

ShiftRightArithmetic(Vector256<IntPtr>, Int32)

Shifts (signed) each element of a vector right by the specified amount.

ShiftRightArithmetic(Vector256<SByte>, Int32)

Shifts (signed) each element of a vector right by the specified amount.

ShiftRightLogical(Vector256<Byte>, Int32)

Shifts (unsigned) each element of a vector right by the specified amount.

ShiftRightLogical(Vector256<Int16>, Int32)

Shifts (unsigned) each element of a vector right by the specified amount.

ShiftRightLogical(Vector256<Int32>, Int32)

Shifts (unsigned) each element of a vector right by the specified amount.

ShiftRightLogical(Vector256<Int64>, Int32)

Shifts (unsigned) each element of a vector right by the specified amount.

ShiftRightLogical(Vector256<IntPtr>, Int32)

Shifts (unsigned) each element of a vector right by the specified amount.

ShiftRightLogical(Vector256<SByte>, Int32)

Shifts (unsigned) each element of a vector right by the specified amount.

ShiftRightLogical(Vector256<UInt16>, Int32)

Shifts (unsigned) each element of a vector right by the specified amount.

ShiftRightLogical(Vector256<UInt32>, Int32)

Shifts (unsigned) each element of a vector right by the specified amount.

ShiftRightLogical(Vector256<UInt64>, Int32)

Shifts (unsigned) each element of a vector right by the specified amount.

ShiftRightLogical(Vector256<UIntPtr>, Int32)

Shifts (unsigned) each element of a vector right by the specified amount.

Shuffle(Vector256<Byte>, Vector256<Byte>)

Creates a new vector by selecting values from an input vector using a set of indices.

Shuffle(Vector256<Double>, Vector256<Int64>)

Creates a new vector by selecting values from an input vector using a set of indices.

Shuffle(Vector256<Int16>, Vector256<Int16>)

Creates a new vector by selecting values from an input vector using a set of indices.

Shuffle(Vector256<Int32>, Vector256<Int32>)

Creates a new vector by selecting values from an input vector using a set of indices.

Shuffle(Vector256<Int64>, Vector256<Int64>)

Creates a new vector by selecting values from an input vector using a set of indices.

Shuffle(Vector256<SByte>, Vector256<SByte>)

Creates a new vector by selecting values from an input vector using a set of indices.

Shuffle(Vector256<Single>, Vector256<Int32>)

Creates a new vector by selecting values from an input vector using a set of indices.

Shuffle(Vector256<UInt16>, Vector256<UInt16>)

Creates a new vector by selecting values from an input vector using a set of indices.

Shuffle(Vector256<UInt32>, Vector256<UInt32>)

Creates a new vector by selecting values from an input vector using a set of indices.

Shuffle(Vector256<UInt64>, Vector256<UInt64>)

Creates a new vector by selecting values from an input vector using a set of indices.

Sqrt<T>(Vector256<T>)

Computes the square root of a vector on a per-element basis.

Store<T>(Vector256<T>, T*)

Stores a vector at the given destination.

StoreAligned<T>(Vector256<T>, T*)

Stores a vector at the given aligned destination.

StoreAlignedNonTemporal<T>(Vector256<T>, T*)

Stores a vector at the given aligned destination.

StoreUnsafe<T>(Vector256<T>, T)

Stores a vector at the given destination.

StoreUnsafe<T>(Vector256<T>, T, UIntPtr)

Stores a vector at the given destination.

Subtract<T>(Vector256<T>, Vector256<T>)

Subtracts two vectors to compute their difference.

Sum<T>(Vector256<T>)

Computes the sum of all elements in a vector.

ToScalar<T>(Vector256<T>)

Converts the given vector to a scalar containing the value of the first element.

TryCopyTo<T>(Vector256<T>, Span<T>)

Tries to copy a Vector<T> to a given span.

Widen(Vector256<Byte>)

Widens a Vector256<T> into two Vector256<T>.

Widen(Vector256<Int16>)

Widens a Vector256<T> into two Vector256<T>.

Widen(Vector256<Int32>)

Widens a Vector256<T> into two Vector256<T>.

Widen(Vector256<SByte>)

Widens a Vector256<T> into two Vector256<T>.

Widen(Vector256<Single>)

Widens a Vector256<T> into two Vector256<T>.

Widen(Vector256<UInt16>)

Widens a Vector256<T> into two Vector256<T>.

Widen(Vector256<UInt32>)

Widens a Vector256<T> into two Vector256<T>.

WithElement<T>(Vector256<T>, Int32, T)

Creates a new Vector256<T> with the element at the specified index set to the specified value and the remaining elements set to the same value as that in the given vector.

WithLower<T>(Vector256<T>, Vector128<T>)

Creates a new Vector256<T> with the lower 128 bits set to the specified value and the upper 128 bits set to the same value as that in the given vector.

WithUpper<T>(Vector256<T>, Vector128<T>)

Creates a new Vector256<T> with the upper 128 bits set to the specified value and the lower 128 bits set to the same value as that in the given vector.

Xor<T>(Vector256<T>, Vector256<T>)

Computes the exclusive-or of two vectors.

Applies to