Vector<T> Структура

Определение

Представляет один вектор указанного числового типа, который подходит для низкоуровневой оптимизации параллельных алгоритмов.

generic <typename T>
 where T : value classpublic value class Vector : IEquatable<System::Numerics::Vector<T>>, IFormattable
generic <typename T>
public value class Vector : IEquatable<System::Numerics::Vector<T>>, IFormattable
public struct Vector<T> : IEquatable<System.Numerics.Vector<T>>, IFormattable where T : struct
public readonly struct Vector<T> : IEquatable<System.Numerics.Vector<T>>, IFormattable where T : struct
public readonly struct Vector<T> : IEquatable<System.Numerics.Vector<T>>, IFormattable
type Vector<'T (requires 'T : struct)> = struct
    interface IFormattable
type Vector<'T> = struct
    interface IFormattable
Public Structure Vector(Of T)
Implements IEquatable(Of Vector(Of T)), IFormattable

Параметры типа

T

Тип элементов в векторе. T может быть любого элементарного числового типа.

Наследование
Vector<T>
Реализации

Комментарии

Vector<T> — это неизменяемая структура, представляющая один вектор указанного числового типа. Число экземпляров Vector<T> является фиксированным, но его верхний предел зависит от регистра ЦП. Он предназначен для использования в качестве стандартного блока для векторизации больших алгоритмов и поэтому не может использоваться непосредственно в качестве произвольного вектора длины или тензора.

Структура Vector<T> обеспечивает поддержку аппаратного ускорения.

Термин примитивные числовые типы данных в этой статье относится к числовым типам данных, которые непосредственно поддерживаются ЦП и имеют инструкции, которые могут управлять этими типами данных.

Конструкторы

Vector<T>(ReadOnlySpan<Byte>)

Конструирует вектор из заданного диапазона байтов, доступного только для чтения.

Vector<T>(ReadOnlySpan<T>)

Конструирует вектор из заданного ReadOnlySpan<T>.

Vector<T>(Span<T>)

Конструирует вектор из заданного Span<T>.

Vector<T>(T)

Создает вектор с координатами заданного типа.

Vector<T>(T[])

Создает вектор на основе заданного массива.

Vector<T>(T[], Int32)

Создает вектор на основе заданного массива, начиная с указанной позиции индекса.

Свойства

AllBitsSet

Возвращает новый Vector<T> со всеми битами, для которых задано значение 1.

Count

Возвращает количество элементов, хранимых в векторе.

Indices

Представляет один вектор указанного числового типа, который подходит для низкоуровневой оптимизации параллельных алгоритмов.

IsSupported

Возвращает значение, указывающее, поддерживается ли T .

Item[Int32]

Получает элемент по указанному индексу.

One

Возвращает вектор, содержащий все единицы.

Zero

Возвращает вектор, содержащий все нули.

Методы

CopyTo(Span<Byte>)

Копирует вектор в заданный Span<T>.

CopyTo(Span<T>)

Копирует вектор в заданный диапазон. .

CopyTo(T[])

Копирует экземпляр вектора в заданный массив назначения.

CopyTo(T[], Int32)

Копирует экземпляр вектора в заданный массив назначения, начиная с указанной позиции индекса.

Equals(Object)

Возвращает значение, показывающее, равен ли экземпляр указанному объекту.

Equals(Vector<T>)

Возвращает значение, показывающее, равен ли данный экземпляр указанному вектору.

GetHashCode()

Возвращает хэш-код данного экземпляра.

ToString()

Возвращает строковое представление данного вектора, используя форматирование по умолчанию.

ToString(String)

Возвращает строковое представление данного вектора, используя заданную строку форматирования для форматирования отдельных элементов.

ToString(String, IFormatProvider)

Возвращает строковое представление данного вектора, используя заданную строку форматирования для форматирования отдельных элементов и заданный поставщик формата для указания форматирования, определяемого языком и региональными параметрами.

TryCopyTo(Span<Byte>)

Пытается скопировать вектор в заданный диапазон байтов.

TryCopyTo(Span<T>)

Пытается скопировать вектор в заданный Span<T>.

Операторы

Addition(Vector<T>, Vector<T>)

Складывает два вектора.

BitwiseAnd(Vector<T>, Vector<T>)

Возвращает новый вектор, выполняя битовую операцию And для всех элементов в двух векторах.

BitwiseOr(Vector<T>, Vector<T>)

Возвращает новый вектор, выполняя битовую операцию Or для всех элементов в двух векторах.

Division(Vector<T>, T)

Делит вектор на скаляр для вычисления частного элемента.

Division(Vector<T>, Vector<T>)

Делит первый вектор на второй.

Equality(Vector<T>, Vector<T>)

Возвращает значение, указывающее, равны ли все пары элементов в двух заданных векторах.

ExclusiveOr(Vector<T>, Vector<T>)

Возвращает новый вектор, выполняя битовую операцию XOr для всех элементов в двух векторах.

Explicit(Vector<T> to Vector<Byte>)

Повторно интерпретирует биты заданного вектора в вектор типа Byte.

Explicit(Vector<T> to Vector<Double>)

Повторно интерпретирует биты заданного вектора в вектор типа Double.

Explicit(Vector<T> to Vector<Int16>)

Повторно интерпретирует биты заданного вектора в вектор типа Int16.

Explicit(Vector<T> to Vector<Int32>)

Повторно интерпретирует биты заданного вектора в вектор типа Int32.

Explicit(Vector<T> to Vector<Int64>)

Повторно интерпретирует биты заданного вектора в вектор типа Int64.

Explicit(Vector<T> to Vector<IntPtr>)

Повторно интерпретирует биты исходного вектора в вектор целых чисел собственного размера.

Explicit(Vector<T> to Vector<SByte>)

Повторно интерпретирует биты заданного вектора в вектор типа SByte.

Explicit(Vector<T> to Vector<Single>)

Повторно интерпретирует биты заданного вектора в вектор типа Single.

Explicit(Vector<T> to Vector<UInt16>)

Повторно интерпретирует биты заданного вектора в вектор типа UInt16.

Explicit(Vector<T> to Vector<UInt32>)

Повторно интерпретирует биты заданного вектора в вектор типа UInt32.

Explicit(Vector<T> to Vector<UInt64>)

Повторно интерпретирует биты заданного вектора в вектор типа UInt64.

Explicit(Vector<T> to Vector<UIntPtr>)

Повторно интерпретирует биты исходного вектора в вектор целых чисел без знака собственного размера.

Inequality(Vector<T>, Vector<T>)

Возвращает значение, указывающее, равна ли каждая отдельная пара элементов в двух заданных векторах.

LeftShift(Vector<T>, Int32)

Сдвигает каждый элемент вектора влево на указанную величину.

Multiply(T, Vector<T>)

Умножает вектор на заданное скалярное значение.

Multiply(Vector<T>, T)

Умножает вектор на заданное скалярное значение.

Multiply(Vector<T>, Vector<T>)

Возвращает новый вектор, значения которого являются произведением каждой пары элементов в двух заданных векторах.

OnesComplement(Vector<T>)

Возвращает новый вектор, элементы которого получаются путем принятия дополнения до единицы элементов заданного вектора.

RightShift(Vector<T>, Int32)

Сдвигает (со знаком) каждый элемент вектора вправо на указанную величину.

Subtraction(Vector<T>, Vector<T>)

Вычитает второй вектор из первого.

UnaryNegation(Vector<T>)

Преобразует данный вектор в отрицательный.

UnaryPlus(Vector<T>)

Возвращает заданный вектор без изменений.

UnsignedRightShift(Vector<T>, Int32)

Сдвигает (без знака) каждый элемент вектора вправо на указанную величину.

Методы расширения

As<TFrom,TTo>(Vector<TFrom>)

Переинтерпретирует Vector<T> как новый Vector<T>.

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

Получает элемент с указанным индексом.

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

Сохраняет вектор в заданном месте назначения.

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

Сохраняет вектор в заданном выровненном месте назначения.

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

Сохраняет вектор в заданном выровненном месте назначения.

StoreUnsafe<T>(Vector<T>, T)

Сохраняет вектор в заданном месте назначения.

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

Сохраняет вектор в заданном месте назначения.

ToScalar<T>(Vector<T>)

Преобразует заданный вектор в скаляр, содержащий значение первого элемента.

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

Создает новый Vector<T> с элементом по указанному индексу, для которого задано указанное значение, а остальные элементы получают то же значение, что и в данном векторе.

AsVector128<T>(Vector<T>)

Переинтерпретирует Vector<T> как новый Vector128<T>.

AsVector256<T>(Vector<T>)

Переинтерпретирует Vector<T> как новый Vector256<T>.

AsVector512<T>(Vector<T>)

Переинтерпретирует Vector<T> как новый Vector512<T>.

Применяется к