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 Vector<T> wystąpień 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, 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 pierwotnych danych liczbowych 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>elementu .

Vector<T>(Span<T>)

Tworzy wektor z danego Span<T>elementu .

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> element 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 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ę na 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, aby sformatować poszczególne elementy.

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

Reinterpretuje bity określonego wektora do wektora typu Byte.

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

Reinterpretuje bity określonego wektora do wektora typu Double.

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

Reinterpretuje bity określonego wektora do wektora typu Int16.

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

Reinterpretuje bity określonego wektora do wektora typu Int32.

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

Reinterpretuje bity określonego wektora do wektora typu Int64.

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

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

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

Reinterpretuje bity określonego wektora do wektora typu SByte.

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

Reinterpretuje bity określonego wektora do wektora typu Single.

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

Reinterpretuje bity określonego wektora do wektora typu UInt16.

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

Reinterpretuje bity określonego wektora do wektora typu UInt32.

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

Reinterpretuje bity określonego wektora do wektora typu UInt64.

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

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

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

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

LeftShift(Vector<T>, Int32)

Przesuwa każdy element wektora pozostawionego przez 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 elementów określonego wektora.

RightShift(Vector<T>, Int32)

Przesuwa (podpisany) każdy element wektora z prawej strony o określoną kwotę.

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

Odejmuje drugi wektor od pierwszego.

UnaryNegation(Vector<T>)

Neguje dany wektor.

UnaryPlus(Vector<T>)

Zwraca określony wektor bez zmian.

UnsignedRightShift(Vector<T>, Int32)

Przesuwa (niepodpisane) każdy element wektora z prawej strony o określoną ilość.

Metody rozszerzania

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

Reinterpretuje element Vector<T> jako nowy Vector<T>.

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

Pobiera element wskazywany przez określony indeks.

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

Przechowuje wektor w danej lokalizacji docelowej.

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 danej lokalizacji docelowej.

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

Przechowuje wektor w danej lokalizacji docelowej.

ToScalar<T>(Vector<T>)

Konwertuje dany wektor na skalar 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>)

Reinterpretuje element Vector<T> jako nowy Vector128<T>.

AsVector256<T>(Vector<T>)

Reinterpretuje element Vector<T> jako nowy Vector256<T>.

AsVector512<T>(Vector<T>)

Reinterpretuje element Vector<T> jako nowy Vector512<T>.

Dotyczy