Поделиться через


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

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

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>.

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