# Vector512<T> Struct

## Definition

Represents a 512-bit vector of a specified numeric type that is suitable for low-level optimization of parallel algorithms.

``````generic <typename T>
public value class Vector512 : IEquatable<System::Runtime::Intrinsics::Vector512<T>>``````
``public readonly struct Vector512<T> : IEquatable<System.Runtime.Intrinsics.Vector512<T>>``
``type Vector512<'T> = struct``
``````Public Structure Vector512(Of T)
Implements IEquatable(Of Vector512(Of T))``````

#### Type Parameters

T

The type of the elements in the vector.

Inheritance
Vector512<T>
Implements

## Properties

 Gets a new Vector512 with all bits set to 1. Gets the number of `T` that are in a Vector512. Gets `true` if `T` is supported; otherwise, `false`. Gets the element at the specified index. Gets a new Vector512 with all elements initialized to one. Gets a new Vector512 with all elements initialized to zero.

## Methods

 Determines whether the specified object is equal to the current instance. Determines whether the specified Vector512 is equal to the current instance. Gets the hash code for the instance. Converts the current instance to an equivalent string representation.

## Operators

 Adds two vectors to compute their sum. Computes the bitwise-and of two vectors. Computes the bitwise-or of two vectors. Divides a vector by a scalar to compute the per-element quotient. Divides two vectors to compute their quotient. Compares two vectors to determine if all elements are equal. Computes the exclusive-or of two vectors. Compares two vectors to determine if any elements are not equal. Shifts each element of a vector left by the specified amount. Multiplies a vector by a scalar to compute their product. Multiplies a vector by a scalar to compute their product. Multiplies two vectors to compute their element-wise product. Computes the ones-complement of a vector. Shifts (signed) each element of a vector right by the specified amount. Subtracts two vectors to compute their difference. Computes the unary negation of a vector. Returns a given vector unchanged. Shifts (unsigned) each element of a vector right by the specified amount.

## Extension Methods

 Reinterprets a Vector512 as a new Vector512. Reinterprets a Vector512 as a new Vector512. Reinterprets a Vector512 as a new Vector512. Reinterprets a Vector512 as a new Vector512. Reinterprets a Vector512 as a new Vector512. Reinterprets a Vector512 as a new Vector512. Reinterprets a Vector512 as a new Vector512. Reinterprets a Vector512 as a new Vector512. Reinterprets a Vector512 as a new Vector512. Reinterprets a Vector512 as a new Vector512. Reinterprets a Vector512 as a new Vector512. Reinterprets a Vector512 as a new Vector512. Reinterprets a Vector512 as a new Vector512. Reinterprets a Vector512 as a new Vector. Copies a Vector512 to a given array. Copies a Vector512 to a given array starting at the specified index. Copies a Vector512 to a given span. Extracts the most significant bit from each element in a vector. Gets the element at the specified index. Gets the value of the lower 256-bits as a new Vector256. Gets the value of the upper 256-bits as a new Vector256. Stores a vector at the given destination. Stores a vector at the given aligned destination. Stores a vector at the given aligned destination. Stores a vector at the given destination. Stores a vector at the given destination. Converts the given vector to a scalar containing the value of the first element. Tries to copy a Vector to a given span. Creates a new Vector512 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. Creates a new Vector512 with the lower 256-bits set to the specified value and the upper 256-bits set to the same value as that in the given vector. Creates a new Vector512 with the upper 256-bits set to the specified value and the lower 256-bits set to the same value as that in the given vector.