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
public readonly struct Vector<T> : IEquatable<System.Numerics.Vector<T>>, IFormattable where T : struct
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[], Int32)

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

Vector<T>(T[])

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

Свойства

Имя Описание
AllBitsSet

Возвращает новое значение Vector<T> со всеми битами, равными 1.

Count

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

Indices

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

IsSupported

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

Item[Int32]

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

One

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

Zero

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

Методы

Имя Описание
CopyTo(Span<Byte>)

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

CopyTo(Span<T>)

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

CopyTo(T[], Int32)

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

CopyTo(T[])

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

Equals(Object)

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

Equals(Vector<T>)

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

GetHashCode()

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

ToString()

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

ToString(String, IFormatProvider)

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

ToString(String)

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

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)

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

Свойства расширения

Имя Описание
E

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

Epsilon

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

NaN

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

NegativeInfinity

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

NegativeOne

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

NegativeZero

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

Pi

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

PositiveInfinity

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

Tau

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

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

Имя Описание
As<TFrom,TTo>(Vector<TFrom>)

Переинтерпретирует новый Vector<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>.

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, UIntPtr)

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

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

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

ToScalar<T>(Vector<T>)

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

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

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

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