Sdílet prostřednictvím


Vector<T> Struktura

Definice

Představuje jeden vektor zadaného číselného typu, který je vhodný pro optimalizaci paralelních algoritmů nízké úrovně.

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 prvků vektoru. T může být libovolný primitivní číselný typ.

Dědičnost
Vector<T>
Implementuje

Poznámky

Vector<T> je neměnná struktura, která představuje jeden vektor zadaného číselného typu. Počet Vector<T> instancí je pevný, ale jeho horní limit je závislý na registru procesoru. Je určena k použití jako stavební blok pro vektorizaci velkých algoritmů, a proto ji nelze použít přímo jako libovolný vektor délky nebo tensor.

Struktura Vector<T> poskytuje podporu hardwarové akcelerace.

Termín primitivní číselný datový typ v tomto článku odkazuje na číselné datové typy, které jsou přímo podporovány procesorem a mají pokyny, které mohou manipulovat s těmito datovými typy.

Konstruktory

Vector<T>(ReadOnlySpan<Byte>)

Vytvoří vektor z daného rozsahu jen pro čtení bajtů.

Vector<T>(ReadOnlySpan<T>)

Vytvoří vektor z dané ReadOnlySpan<T>.

Vector<T>(Span<T>)

Vytvoří vektor z dané Span<T>.

Vector<T>(T)

Vytvoří vektor, jehož součásti jsou zadaného typu.

Vector<T>(T[])

Vytvoří vektor ze zadaného pole.

Vector<T>(T[], Int32)

Vytvoří vektor ze zadaného pole počínaje zadanou pozicí indexu.

Vlastnosti

AllBitsSet

Získá nový Vector<T> se všemi bity nastavenými na 1.

Count

Vrátí počet prvků uložených ve vektoru.

Indices

Získá nový Vector<T> s prvky nastavenými na jejich index.

IsSupported

Získá hodnotu, která označuje, zda T je podporována.

Item[Int32]

Získá prvek v zadaném indexu.

One

Vrátí vektor obsahující všechny.

Zero

Vrátí vektor obsahující všechny nuly.

Metody

CopyTo(Span<Byte>)

Zkopíruje vektor do daného Span<T>.

CopyTo(Span<T>)

Zkopíruje vektor do daného rozsahu. .

CopyTo(T[])

Zkopíruje instanci vektoru do zadaného cílového pole.

CopyTo(T[], Int32)

Zkopíruje instanci vektoru do zadaného cílového pole začínající na zadané pozici indexu.

Equals(Object)

Vrátí hodnotu, která určuje, zda je tato instance rovna zadanému objektu.

Equals(Vector<T>)

Vrátí hodnotu, která určuje, zda je tato instance rovna zadanému vektoru.

GetHashCode()

Vrátí kód hash pro tuto instanci.

ToString()

Vrátí řetězcovou reprezentaci tohoto vektoru pomocí výchozího formátování.

ToString(String)

Vrátí řetězcovou reprezentaci tohoto vektoru pomocí zadaného řetězce formátu k formátování jednotlivých prvků.

ToString(String, IFormatProvider)

Vrátí řetězcovou reprezentaci tohoto vektoru pomocí zadaného řetězce formátu k formátování jednotlivých prvků a zadaného zprostředkovatele formátu pro definování formátování specifického pro jazykovou verzi.

TryCopyTo(Span<Byte>)

Pokusí se zkopírovat vektor do daného rozsahu bajtů.

TryCopyTo(Span<T>)

Pokusí se zkopírovat vektor na danou Span<T>.

Operátory

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

Sečte dva vektory dohromady.

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

Vrátí nový vektor provedením bitové operace And pro každý prvek ve dvou vektorech.

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

Vrátí nový vektor provedením bitové operace Or pro každý prvek ve dvou vektorech.

Division(Vector<T>, T)

Vydělí vektor skalárem pro výpočet podílu jednotlivých prvků.

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

Vydělí první vektor druhou.

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

Vrátí hodnotu, která určuje, zda jsou každá dvojice prvků ve dvou zadaných vektorech rovna.

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

Vrátí nový vektor provedením bitové operace XOr pro každý prvek ve dvou vektorech.

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

Reinterpretuje bity zadaného vektoru na vektor typu Byte.

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

Reinterpretuje bity zadaného vektoru na vektor typu Double.

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

Reinterpretuje bity zadaného vektoru na vektor typu Int16.

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

Reinterpretuje bity zadaného vektoru na vektor typu Int32.

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

Reinterpretuje bity zadaného vektoru na vektor typu Int64.

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

Reinterpretuje bity zdrojového vektoru do vektoru celých čísel v nativní velikosti.

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

Reinterpretuje bity zadaného vektoru na vektor typu SByte.

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

Reinterpretuje bity zadaného vektoru na vektor typu Single.

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

Reinterpretuje bity zadaného vektoru na vektor typu UInt16.

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

Reinterpretuje bity zadaného vektoru na vektor typu UInt32.

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

Reinterpretuje bity zadaného vektoru na vektor typu UInt64.

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

Reinterpretuje bity zdrojového vektoru na vektor nativní velikosti bez znaménka celých čísel.

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

Vrátí hodnotu, která určuje, zda je jakákoliv dvojice prvků v zadaných vektorech rovna.

LeftShift(Vector<T>, Int32)

Posune každý prvek vektoru doleva o zadanou hodnotu.

Multiply(T, Vector<T>)

Vynásobí vektor zadanou skalární hodnotou.

Multiply(Vector<T>, T)

Vynásobí vektor zadanou skalární hodnotou.

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

Vrátí nový vektor, jehož hodnoty jsou součinem každé dvojice prvků ve dvou zadaných vektorech.

OnesComplement(Vector<T>)

Vrátí nový vektor, jehož prvky jsou získány pomocí doplňku určitého vektoru.

RightShift(Vector<T>, Int32)

Posune (podepsáno) každý prvek vektoru doprava o zadanou částku.

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

Odečte druhý vektor od prvního.

UnaryNegation(Vector<T>)

Neguje daný vektor.

UnaryPlus(Vector<T>)

Vrátí daný vektor beze změny.

UnsignedRightShift(Vector<T>, Int32)

Posune (bez znaménka) každý prvek vektoru doprava o zadanou velikost.

Metody rozšíření

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

Reinterpretuje Vector<T> jako nový Vector<T>.

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

Získá prvek v zadaném indexu.

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

Uloží vektor v daném cíli.

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

Uloží vektor v daném zarovnaném cíli.

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

Uloží vektor v daném zarovnaném cíli.

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

Uloží vektor v daném cíli.

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

Uloží vektor v daném cíli.

ToScalar<T>(Vector<T>)

Převede daný vektor na skalár obsahující hodnotu prvního prvku.

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

Vytvoří nový Vector<T> s prvkem v zadaném indexu nastaveným na zadanou hodnotu a zbývající prvky nastavené na stejnou hodnotu jako v daném vektoru.

AsVector128<T>(Vector<T>)

Reinterpretuje Vector<T> jako nový Vector128<T>.

AsVector256<T>(Vector<T>)

Reinterpretuje Vector<T> jako nový Vector256<T>.

AsVector512<T>(Vector<T>)

Reinterpretuje Vector<T> jako nový Vector512<T>.

Platí pro