Vector Class
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.
Provides a collection of static methods for creating, manipulating, and otherwise operating on generic vectors.
public ref class Vector abstract sealed
public static class Vector
type Vector = class
Public Class Vector
Public Module Vector
 Inheritance

Vector
Properties
IsHardwareAccelerated 
Gets a value that indicates whether vector operations are subject to hardware acceleration through JIT intrinsic support. 
Methods
Abs<T>(Vector<T>) 
Returns a new vector whose elements are the absolute values of the given vector's elements. 
Add<T>(Vector<T>, Vector<T>) 
Returns a new vector whose values are the sum of each pair of elements from two given vectors. 
AndNot<T>(Vector<T>, Vector<T>) 
Returns a new vector by performing a bitwise And Not operation on each pair of corresponding elements in two vectors. 
As<TFrom,TTo>(Vector<TFrom>)  
AsVectorByte<T>(Vector<T>) 
Reinterprets the bits of a specified vector into those of a vector of unsigned bytes. 
AsVectorDouble<T>(Vector<T>) 
Reinterprets the bits of a specified vector into those of a doubleprecision floatingpoint vector. 
AsVectorInt16<T>(Vector<T>) 
Reinterprets the bits of a specified vector into those of a vector of 16bit integers. 
AsVectorInt32<T>(Vector<T>) 
Reinterprets the bits of a specified vector into those of a vector of integers. 
AsVectorInt64<T>(Vector<T>) 
Reinterprets the bits of a specified vector into those of a vector of long integers. 
AsVectorNInt<T>(Vector<T>) 
Reinterprets the bits of a specified vector into those of a vector of nativesized integers. 
AsVectorNUInt<T>(Vector<T>) 
Reinterprets the bits of a specified vector into those of a vector of nativesized, unsigned integers. 
AsVectorSByte<T>(Vector<T>) 
Reinterprets the bits of a specified vector into those of a vector of signed bytes. 
AsVectorSingle<T>(Vector<T>) 
Reinterprets the bits of a specified vector into those of a singleprecision floatingpoint vector. 
AsVectorUInt16<T>(Vector<T>) 
Reinterprets the bits of a specified vector into those of a vector of unsigned 16bit integers. 
AsVectorUInt32<T>(Vector<T>) 
Reinterprets the bits of a specified vector into those of a vector of unsigned integers. 
AsVectorUInt64<T>(Vector<T>) 
Reinterprets the bits of a specified vector into those of a vector of unsigned long integers. 
BitwiseAnd<T>(Vector<T>, Vector<T>) 
Returns a new vector by performing a bitwise 
BitwiseOr<T>(Vector<T>, Vector<T>) 
Returns a new vector by performing a bitwise 
Ceiling(Vector<Double>) 
Returns a new vector whose elements are the smallest integral values that are greater than or equal to the given vector's elements. 
Ceiling(Vector<Single>) 
Returns a new vector whose elements are the smallest integral values that are greater than or equal to the given vector's elements. 
ConditionalSelect(Vector<Int32>, Vector<Single>, Vector<Single>) 
Creates a new singleprecision vector with elements selected between two specified singleprecision source vectors based on an integral mask vector. 
ConditionalSelect(Vector<Int64>, Vector<Double>, Vector<Double>) 
Creates a new doubleprecision vector with elements selected between two specified doubleprecision source vectors based on an integral mask vector. 
ConditionalSelect<T>(Vector<T>, Vector<T>, Vector<T>) 
Creates a new vector of a specified type with elements selected between two specified source vectors of the same type based on an integral mask vector. 
ConvertToDouble(Vector<Int64>) 
Converts a 
ConvertToDouble(Vector<UInt64>) 
Converts a 
ConvertToInt32(Vector<Single>) 
Converts a 
ConvertToInt64(Vector<Double>) 
Converts a 
ConvertToSingle(Vector<Int32>) 
Converts a 
ConvertToSingle(Vector<UInt32>) 
Converts a 
ConvertToUInt32(Vector<Single>) 
Converts a 
ConvertToUInt64(Vector<Double>) 
Converts a 
CreateSequence<T>(T, T)  
Divide<T>(Vector<T>, T) 
Divides a vector by a scalar to compute the perelement quotient. 
Divide<T>(Vector<T>, Vector<T>) 
Returns a new vector whose values are the result of dividing the first vector's elements by the corresponding elements in the second vector. 
Dot<T>(Vector<T>, Vector<T>) 
Returns the dot product of two vectors. 
Equals(Vector<Double>, Vector<Double>) 
Returns a new integral vector whose elements signal whether the elements in two specified doubleprecision vectors are equal. 
Equals(Vector<Int32>, Vector<Int32>) 
Returns a new integral vector whose elements signal whether the elements in two specified integral vectors are equal. 
Equals(Vector<Int64>, Vector<Int64>) 
Returns a new vector whose elements signal whether the elements in two specified long integer vectors are equal. 
Equals(Vector<Single>, Vector<Single>) 
Returns a new integral vector whose elements signal whether the elements in two specified singleprecision vectors are equal. 
Equals<T>(Vector<T>, Vector<T>) 
Returns a new vector of a specified type whose elements signal whether the elements in two specified vectors of the same type are equal. 
EqualsAll<T>(Vector<T>, Vector<T>) 
Returns a value that indicates whether each pair of elements in the given vectors is equal. 
EqualsAny<T>(Vector<T>, Vector<T>) 
Returns a value that indicates whether any single pair of elements in the given vectors is equal. 
Floor(Vector<Double>) 
Returns a new vector whose elements are the largest integral values that are less than or equal to the given vector's elements. 
Floor(Vector<Single>) 
Returns a new vector whose elements are the largest integral values that are less than or equal to the given vector's elements. 
GetElement<T>(Vector<T>, Int32) 
Gets the element at the specified index. 
GreaterThan(Vector<Double>, Vector<Double>) 
Returns a new integral vector whose elements signal whether the elements in one doubleprecision floatingpoint vector are greater than their corresponding elements in a second doubleprecision floatingpoint vector. 
GreaterThan(Vector<Int32>, Vector<Int32>) 
Returns a new integral vector whose elements signal whether the elements in one integral vector are greater than their corresponding elements in a second integral vector. 
GreaterThan(Vector<Int64>, Vector<Int64>) 
Returns a new long integer vector whose elements signal whether the elements in one long integer vector are greater than their corresponding elements in a second long integer vector. 
GreaterThan(Vector<Single>, Vector<Single>) 
Returns a new integral vector whose elements signal whether the elements in one singleprecision floatingpoint vector are greater than their corresponding elements in a second singleprecision floatingpoint vector. 
GreaterThan<T>(Vector<T>, Vector<T>) 
Returns a new vector whose elements signal whether the elements in one vector of a specified type are greater than their corresponding elements in the second vector of the same time. 
GreaterThanAll<T>(Vector<T>, Vector<T>) 
Returns a value that indicates whether all elements in the first vector are greater than the corresponding elements in the second vector. 
GreaterThanAny<T>(Vector<T>, Vector<T>) 
Returns a value that indicates whether any element in the first vector is greater than the corresponding element in the second vector. 
GreaterThanOrEqual(Vector<Double>, Vector<Double>) 
Returns a new integral vector whose elements signal whether the elements in one vector are greater than or equal to their corresponding elements in the second doubleprecision floatingpoint vector. 
GreaterThanOrEqual(Vector<Int32>, Vector<Int32>) 
Returns a new integral vector whose elements signal whether the elements in one integral vector are greater than or equal to their corresponding elements in the second integral vector. 
GreaterThanOrEqual(Vector<Int64>, Vector<Int64>) 
Returns a new long integer vector whose elements signal whether the elements in one long integer vector are greater than or equal to their corresponding elements in the second long integer vector. 
GreaterThanOrEqual(Vector<Single>, Vector<Single>) 
Returns a new integral vector whose elements signal whether the elements in one vector are greater than or equal to their corresponding elements in the singleprecision floatingpoint second vector. 
GreaterThanOrEqual<T>(Vector<T>, Vector<T>) 
Returns a new vector whose elements signal whether the elements in one vector of a specified type are greater than or equal to their corresponding elements in the second vector of the same type. 
GreaterThanOrEqualAll<T>(Vector<T>, Vector<T>) 
Returns a value that indicates whether all elements in the first vector are greater than or equal to all the corresponding elements in the second vector. 
GreaterThanOrEqualAny<T>(Vector<T>, Vector<T>) 
Returns a value that indicates whether any element in the first vector is greater than or equal to the corresponding element in the second vector. 
LessThan(Vector<Double>, Vector<Double>) 
Returns a new integral vector whose elements signal whether the elements in one doubleprecision floatingpoint vector are less than their corresponding elements in a second doubleprecision floatingpoint vector. 
LessThan(Vector<Int32>, Vector<Int32>) 
Returns a new integral vector whose elements signal whether the elements in one integral vector are less than their corresponding elements in a second integral vector. 
LessThan(Vector<Int64>, Vector<Int64>) 
Returns a new long integer vector whose elements signal whether the elements in one long integer vector are less than their corresponding elements in a second long integer vector. 
LessThan(Vector<Single>, Vector<Single>) 
Returns a new integral vector whose elements signal whether the elements in one singleprecision vector are less than their corresponding elements in a second singleprecision vector. 
LessThan<T>(Vector<T>, Vector<T>) 
Returns a new vector of a specified type whose elements signal whether the elements in one vector are less than their corresponding elements in the second vector. 
LessThanAll<T>(Vector<T>, Vector<T>) 
Returns a value that indicates whether all of the elements in the first vector are less than their corresponding elements in the second vector. 
LessThanAny<T>(Vector<T>, Vector<T>) 
Returns a value that indicates whether any element in the first vector is less than the corresponding element in the second vector. 
LessThanOrEqual(Vector<Double>, Vector<Double>) 
Returns a new integral vector whose elements signal whether the elements in one doubleprecision floatingpoint vector are less than or equal to their corresponding elements in a second doubleprecision floatingpoint vector. 
LessThanOrEqual(Vector<Int32>, Vector<Int32>) 
Returns a new integral vector whose elements signal whether the elements in one integral vector are less than or equal to their corresponding elements in a second integral vector. 
LessThanOrEqual(Vector<Int64>, Vector<Int64>) 
Returns a new long integer vector whose elements signal whether the elements in one long integer vector are less or equal to their corresponding elements in a second long integer vector. 
LessThanOrEqual(Vector<Single>, Vector<Single>) 
Returns a new integral vector whose elements signal whether the elements in one singleprecision floatingpoint vector are less than or equal to their corresponding elements in a second singleprecision floatingpoint vector. 
LessThanOrEqual<T>(Vector<T>, Vector<T>) 
Returns a new vector whose elements signal whether the elements in one vector are less than or equal to their corresponding elements in the second vector. 
LessThanOrEqualAll<T>(Vector<T>, Vector<T>) 
Returns a value that indicates whether all elements in the first vector are less than or equal to their corresponding elements in the second vector. 
LessThanOrEqualAny<T>(Vector<T>, Vector<T>) 
Returns a value that indicates whether any element in the first vector is less than or equal to the corresponding element in the second vector. 
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>(Vector<T>, Vector<T>) 
Returns a new vector whose elements are the maximum of each pair of elements in the two given vectors. 
Min<T>(Vector<T>, Vector<T>) 
Returns a new vector whose elements are the minimum of each pair of elements in the two given vectors. 
Multiply<T>(T, Vector<T>) 
Returns a new vector whose values are a scalar value multiplied by each of the values of a specified vector. 
Multiply<T>(Vector<T>, T) 
Returns a new vector whose values are the values of a specified vector each multiplied by a scalar value. 
Multiply<T>(Vector<T>, Vector<T>) 
Returns a new vector whose values are the product of each pair of elements in two specified vectors. 
Narrow(Vector<Double>, Vector<Double>) 
Narrows two 
Narrow(Vector<Int16>, Vector<Int16>) 
Narrows two 
Narrow(Vector<Int32>, Vector<Int32>) 
Narrows two 
Narrow(Vector<Int64>, Vector<Int64>) 
Narrows two 
Narrow(Vector<UInt16>, Vector<UInt16>) 
Narrows two 
Narrow(Vector<UInt32>, Vector<UInt32>) 
Narrows two 
Narrow(Vector<UInt64>, Vector<UInt64>) 
Narrows two 
Negate<T>(Vector<T>) 
Returns a new vector whose elements are the negation of the corresponding element in the specified vector. 
OnesComplement<T>(Vector<T>) 
Returns a new vector whose elements are obtained by taking the one's complement of a specified vector's elements. 
ShiftLeft(Vector<Byte>, Int32) 
Shifts each element of a vector left by the specified amount. 
ShiftLeft(Vector<Int16>, Int32) 
Shifts each element of a vector left by the specified amount. 
ShiftLeft(Vector<Int32>, Int32) 
Shifts each element of a vector left by the specified amount. 
ShiftLeft(Vector<Int64>, Int32) 
Shifts each element of a vector left by the specified amount. 
ShiftLeft(Vector<IntPtr>, Int32) 
Shifts each element of a vector left by the specified amount. 
ShiftLeft(Vector<SByte>, Int32) 
Shifts each element of a vector left by the specified amount. 
ShiftLeft(Vector<UInt16>, Int32) 
Shifts each element of a vector left by the specified amount. 
ShiftLeft(Vector<UInt32>, Int32) 
Shifts each element of a vector left by the specified amount. 
ShiftLeft(Vector<UInt64>, Int32) 
Shifts each element of a vector left by the specified amount. 
ShiftLeft(Vector<UIntPtr>, Int32) 
Shifts each element of a vector left by the specified amount. 
ShiftRightArithmetic(Vector<Int16>, Int32) 
Shifts (signed) each element of a vector right by the specified amount. 
ShiftRightArithmetic(Vector<Int32>, Int32) 
Shifts (signed) each element of a vector right by the specified amount. 
ShiftRightArithmetic(Vector<Int64>, Int32) 
Shifts (signed) each element of a vector right by the specified amount. 
ShiftRightArithmetic(Vector<IntPtr>, Int32) 
Shifts (signed) each element of a vector right by the specified amount. 
ShiftRightArithmetic(Vector<SByte>, Int32) 
Shifts (signed) each element of a vector right by the specified amount. 
ShiftRightLogical(Vector<Byte>, Int32) 
Shifts (unsigned) each element of a vector right by the specified amount. 
ShiftRightLogical(Vector<Int16>, Int32) 
Shifts (unsigned) each element of a vector right by the specified amount. 
ShiftRightLogical(Vector<Int32>, Int32) 
Shifts (unsigned) each element of a vector right by the specified amount. 
ShiftRightLogical(Vector<Int64>, Int32) 
Shifts (unsigned) each element of a vector right by the specified amount. 
ShiftRightLogical(Vector<IntPtr>, Int32) 
Shifts (unsigned) each element of a vector right by the specified amount. 
ShiftRightLogical(Vector<SByte>, Int32) 
Shifts (unsigned) each element of a vector right by the specified amount. 
ShiftRightLogical(Vector<UInt16>, Int32) 
Shifts (unsigned) each element of a vector right by the specified amount. 
ShiftRightLogical(Vector<UInt32>, Int32) 
Shifts (unsigned) each element of a vector right by the specified amount. 
ShiftRightLogical(Vector<UInt64>, Int32) 
Shifts (unsigned) each element of a vector right by the specified amount. 
ShiftRightLogical(Vector<UIntPtr>, Int32) 
Shifts (unsigned) each element of a vector right by the specified amount. 
SquareRoot<T>(Vector<T>) 
Returns a new vector whose elements are the square roots of a specified vector's elements. 
Store<T>(Vector<T>, T*) 
Stores a vector at the given destination. 
StoreAligned<T>(Vector<T>, T*) 
Stores a vector at the given aligned destination. 
StoreAlignedNonTemporal<T>(Vector<T>, T*) 
Stores a vector at the given aligned destination. 
StoreUnsafe<T>(Vector<T>, T) 
Stores a vector at the given destination. 
StoreUnsafe<T>(Vector<T>, T, UIntPtr) 
Stores a vector at the given destination. 
Subtract<T>(Vector<T>, Vector<T>) 
Returns a new vector whose values are the difference between the elements in the second vector and their corresponding elements in the first vector. 
Sum<T>(Vector<T>) 
Returns the sum of all the elements inside the specified vector. 
ToScalar<T>(Vector<T>) 
Converts the given vector to a scalar containing the value of the first element. 
Widen(Vector<Byte>, Vector<UInt16>, Vector<UInt16>) 
Widens a 
Widen(Vector<Int16>, Vector<Int32>, Vector<Int32>) 
Widens a 
Widen(Vector<Int32>, Vector<Int64>, Vector<Int64>) 
Widens a 
Widen(Vector<SByte>, Vector<Int16>, Vector<Int16>) 
Widens a 
Widen(Vector<Single>, Vector<Double>, Vector<Double>) 
Widens a 
Widen(Vector<UInt16>, Vector<UInt32>, Vector<UInt32>) 
Widens a 
Widen(Vector<UInt32>, Vector<UInt64>, Vector<UInt64>) 
Widens a 
WidenLower(Vector<Byte>)  
WidenLower(Vector<Int16>)  
WidenLower(Vector<Int32>)  
WidenLower(Vector<SByte>)  
WidenLower(Vector<Single>)  
WidenLower(Vector<UInt16>)  
WidenLower(Vector<UInt32>)  
WidenUpper(Vector<Byte>)  
WidenUpper(Vector<Int16>)  
WidenUpper(Vector<Int32>)  
WidenUpper(Vector<SByte>)  
WidenUpper(Vector<Single>)  
WidenUpper(Vector<UInt16>)  
WidenUpper(Vector<UInt32>)  
WithElement<T>(Vector<T>, Int32, T) 
Creates a new Vector<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. 
Xor<T>(Vector<T>, Vector<T>) 
Returns a new vector by performing a bitwise exclusive Or ( 
Applies to
Feedback
https://aka.ms/ContentUserFeedback.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Submit and view feedback for