Udostępnij za pośrednictwem


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ą reprezentującą pojedynczy wektor określonego typu liczbowego. Liczba wystąpień Vector<T> jest stała, ale jej górny limit jest zależny od rejestrowania procesora CPU. Ma być używany jako blok konstrukcyjny do wektoryzacji dużych algorytmów i dlatego nie może być używany 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>.

Vector<T>(Span<T>)

Tworzy wektor z danego Span<T>.

Vector<T>(T)

Tworzy wektor, którego składniki mają określony typ.

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

Pobiera nowy Vector<T> z elementami ustawionymi na indeks.

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 danego 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 określonemu obiektowi.

Equals(Vector<T>)

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

GetHashCode()

Zwraca kod 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 w celu sformatowania poszczególnych elementów.

ToString(String, IFormatProvider)

Zwraca reprezentację ciągu tego wektora przy użyciu określonego ciągu formatu w celu sformatowania 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>.

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 do wektora typu Byte.

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

Ponownie interpretuje bity określonego wektora do wektora typu Double.

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

Ponownie interpretuje bity określonego wektora do wektora typu Int16.

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

Ponownie interpretuje bity określonego wektora do wektora typu Int32.

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

Ponownie interpretuje bity określonego wektora do 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 do wektora typu SByte.

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

Ponownie interpretuje bity określonego wektora do wektora typu Single.

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

Ponownie interpretuje bity określonego wektora do wektora typu UInt16.

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

Ponownie interpretuje bity określonego wektora do wektora typu UInt32.

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

Ponownie interpretuje bity określonego wektora do 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ą produktem 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 jednego z elementów określonego wektora.

RightShift(Vector<T>, Int32)

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

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 Vector<T> jako nowy Vector<T>.

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

Pobiera element w określonym indeksie.

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> z elementem w określonym indeksie ustawionym na określoną wartość, a pozostałe elementy ustawione na tę samą wartość co w danym wektorze.

AsVector128<T>(Vector<T>)

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

AsVector256<T>(Vector<T>)

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

AsVector512<T>(Vector<T>)

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

Dotyczy