Vector<T> Struktura

Definicja

Reprezentuje pojedynczy wektor określonego typu liczbowego, który jest odpowiedni do optymalizacji algorytmów równoległych niskiego poziomu.

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

Parametry typu

T

Typ elementów w wektorze. T może być dowolnym pierwotnym typem liczbowym.

Dziedziczenie
Vector<T>
Implementuje

Uwagi

Vector<T> jest niezmienną strukturą, która reprezentuje pojedynczy wektor określonego typu liczbowego. Vector<T> Liczba wystąpień jest stała, ale jej górny limit jest zależny od rejestrowania procesora CPU. Jest ona przeznaczona do użycia jako blok konstrukcyjny do wektoryzacji dużych algorytmów, dlatego nie może być używana bezpośrednio jako dowolny wektor długości lub tensor.

Struktura Vector<T> zapewnia obsługę przyspieszania sprzętowego.

Termin typ danych liczbowych pierwotnych w tym artykule odnosi się do typów danych liczbowych, które są bezpośrednio obsługiwane przez procesor CPU i zawierają instrukcje, które mogą manipulować tymi typami danych.

Konstruktory

Vector<T>(ReadOnlySpan<Byte>)

Tworzy wektor z danego zakresu tylko do odczytu bajtów.

Vector<T>(ReadOnlySpan<T>)

Tworzy wektor z danego ReadOnlySpan<T>obiektu .

Vector<T>(Span<T>)

Tworzy wektor z danego Span<T>obiektu .

Vector<T>(T)

Tworzy wektor, którego składniki są określonego typu.

Vector<T>(T[])

Tworzy wektor z określonej tablicy.

Vector<T>(T[], Int32)

Tworzy wektor z określonej tablicy rozpoczynającej się od określonej pozycji indeksu.

Właściwości

AllBitsSet

Pobiera nowy Vector<T> ze wszystkimi bitami ustawionymi na 1.

Count

Zwraca liczbę elementów przechowywanych w wektorze.

Indices

Reprezentuje pojedynczy wektor określonego typu liczbowego, który jest odpowiedni do optymalizacji algorytmów równoległych niskiego poziomu.

IsSupported

Pobiera wartość wskazującą, czy T jest obsługiwana.

Item[Int32]

Pobiera element w określonym indeksie.

One

Zwraca wektor zawierający wszystkie.

Zero

Zwraca wektor zawierający wszystkie zera.

Metody

CopyTo(Span<Byte>)

Kopiuje wektor do podanego Span<T>.

CopyTo(Span<T>)

Kopiuje wektor do danego zakresu. .

CopyTo(T[])

Kopiuje wystąpienie wektora do określonej tablicy docelowej.

CopyTo(T[], Int32)

Kopiuje wystąpienie wektora do określonej tablicy docelowej rozpoczynającej się od określonej pozycji indeksu.

Equals(Object)

Zwraca wartość wskazującą, czy to wystąpienie jest równe podanemu obiektowi.

Equals(Vector<T>)

Zwraca wartość wskazującą, czy to wystąpienie jest równe określonemu wektorowi.

GetHashCode()

Zwraca wartość skrótu dla tego wystąpienia.

ToString()

Zwraca reprezentację ciągu tego wektora przy użyciu formatowania domyślnego.

ToString(String)

Zwraca reprezentację ciągu tego wektora przy użyciu określonego ciągu formatu do formatowania poszczególnych elementów.

ToString(String, IFormatProvider)

Zwraca reprezentację ciągu tego wektora przy użyciu określonego ciągu formatu do formatowania poszczególnych elementów i określonego dostawcy formatu w celu zdefiniowania formatowania specyficznego dla kultury.

TryCopyTo(Span<Byte>)

Próbuje skopiować wektor do danego zakresu bajtów.

TryCopyTo(Span<T>)

Próbuje skopiować wektor do danego Span<T>elementu .

Operatory

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

Dodaje dwa wektory razem.

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

Zwraca nowy wektor, wykonując bitową And operację na każdym z elementów w dwóch wektorach.

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

Zwraca nowy wektor, wykonując bitową Or operację na każdym z elementów w dwóch wektorach.

Division(Vector<T>, T)

Dzieli wektor przez skalarny, aby obliczyć iloraz dla poszczególnych elementów.

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

Dzieli pierwszy wektor przez drugi.

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

Zwraca wartość wskazującą, czy każda para elementów w dwóch określonych wektorach jest równa.

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

Zwraca nowy wektor, wykonując bitową XOr operację na każdym z elementów w dwóch wektorach.

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

Ponownie interpretuje bity określonego wektora wektora typu Byte.

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

Ponownie interpretuje bity określonego wektora wektora typu Double.

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

Ponownie interpretuje bity określonego wektora wektora typu Int16.

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

Ponownie interpretuje bity określonego wektora wektora typu Int32.

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

Ponownie interpretuje bity określonego wektora wektora typu Int64.

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

Ponownie interpretuje bity wektora źródłowego do wektora liczb całkowitych o rozmiarze natywnym.

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

Ponownie interpretuje bity określonego wektora wektora typu SByte.

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

Ponownie interpretuje bity określonego wektora wektora typu Single.

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

Ponownie interpretuje bity określonego wektora wektora typu UInt16.

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

Ponownie interpretuje bity określonego wektora wektora typu UInt32.

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

Ponownie interpretuje bity określonego wektora wektora typu UInt64.

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

Ponownie interpretuje bity wektora źródłowego w wektor wielkości natywnej, niepodpisanych liczb całkowitych.

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

Zwraca wartość wskazującą, czy dowolna pojedyncza para elementów w określonych wektorach jest równa.

LeftShift(Vector<T>, Int32)

Przesuwa każdy element wektora w lewo o określoną ilość.

Multiply(T, Vector<T>)

Mnoży wektor przez określoną wartość skalarną.

Multiply(Vector<T>, T)

Mnoży wektor przez określoną wartość skalarną.

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

Zwraca nowy wektor, którego wartości są iloczynem każdej pary elementów w dwóch określonych wektorach.

OnesComplement(Vector<T>)

Zwraca nowy wektor, którego elementy są uzyskiwane przez pobranie uzupełnienia określonego wektora.

RightShift(Vector<T>, Int32)

Przesuwa (podpisany) każdy element wektora w prawo o określoną kwotę.

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

Odejmuje drugi wektor od pierwszego.

UnaryNegation(Vector<T>)

Neguje dany wektor.

UnaryPlus(Vector<T>)

Zwraca dany wektor bez zmian.

UnsignedRightShift(Vector<T>, Int32)

Przesuwa (bez znaku) każdy element wektora w prawo o określoną ilość.

Metody rozszerzania

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

Ponownie interpretuje element Vector<T> jako nowy Vector<T>element .

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

Pobiera element wskazywany przez określony indeks.

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

Przechowuje wektor w danym miejscu docelowym.

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

Przechowuje wektor w danym wyrównanym miejscu docelowym.

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

Przechowuje wektor w danym wyrównanym miejscu docelowym.

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

Przechowuje wektor w danym miejscu docelowym.

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

Przechowuje wektor w danym miejscu docelowym.

ToScalar<T>(Vector<T>)

Konwertuje dany wektor na skalarny zawierający wartość pierwszego elementu.

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

Tworzy nowy Vector<T> element z określonym indeksem ustawionym na określoną wartość, a pozostałe elementy ustawione na tę samą wartość co w danym wektorze.

AsVector128<T>(Vector<T>)

Ponownie interpretuje element Vector<T> jako nowy Vector128<T>element .

AsVector256<T>(Vector<T>)

Ponownie interpretuje element Vector<T> jako nowy Vector256<T>element .

AsVector512<T>(Vector<T>)

Ponownie interpretuje element Vector<T> jako nowy Vector512<T>element .

Dotyczy