Vector<T> Struktura

Definice

Představuje jeden vektor zadaného číselného typu, který je vhodný pro nízkoúrovňovou optimalizaci paralelních algoritmů.

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ů ve 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ě daný, ale jeho horní limit závisí na registru procesoru. Je určena k použití jako stavební blok pro vektorizaci velkých algoritmů, a proto se nedá použít přímo jako vektor libovolné délky nebo tenzor.

Struktura Vector<T> poskytuje podporu hardwarové akcelerace.

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

Konstruktory

Vector<T>(ReadOnlySpan<Byte>)

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

Vector<T>(ReadOnlySpan<T>)

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

Vector<T>(Span<T>)

Vytvoří vektor z daného 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 začínající na zadané pozici 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

Představuje jeden vektor zadaného číselného typu, který je vhodný pro nízkoúrovňovou optimalizaci paralelních algoritmů.

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 na danou 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, které začíná na zadané pozici indexu.

Equals(Object)

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

Equals(Vector<T>)

Vrátí hodnotu, která označuje, zda se tato instance rovná zadanému vektoru.

GetHashCode()

Vrátí hodnotu 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 pro formátování jednotlivých prvků.

ToString(String, IFormatProvider)

Vrátí řetězcovou reprezentaci tohoto vektoru pomocí zadaného řetězce formátu pro formátování jednotlivých prvků a zadaného zprostředkovatele formátu k 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 do daného 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é And operace s každým z prvků ve dvou vektorech.

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

Vrátí nový vektor provedením bitové Or operace s každým z prvků ve dvou vektorech.

Division(Vector<T>, T)

Vydělí vektor skalárem pro výpočet podílu na elementu.

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

Vydělí první vektor druhým.

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

Vrátí hodnotu, která označuje, zda jsou si všechny dvojice prvků ve dvou zadaných vektorech rovny.

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

Vrátí nový vektor provedením bitové XOr operace s každým z prvků ve dvou vektorech.

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

Přeloží bity zadaného vektoru na vektor typu Byte.

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

Přeloží bity zadaného vektoru na vektor typu Double.

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

Přeloží bity zadaného vektoru na vektor typu Int16.

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

Přeloží bity zadaného vektoru na vektor typu Int32.

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

Přeloží bity zadaného vektoru na vektor typu Int64.

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

Přeloží bity zdrojového vektoru na vektor celých čísel nativní velikosti.

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

Přeloží bity zadaného vektoru na vektor typu SByte.

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

Přeloží bity zadaného vektoru na vektor typu Single.

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

Přeloží bity zadaného vektoru na vektor typu UInt16.

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

Přeloží bity zadaného vektoru na vektor typu UInt32.

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

Přeloží bity zadaného vektoru na vektor typu UInt64.

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

Přeloží bity zdrojového vektoru na vektor nativních celých čísel bez znaménka.

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

Vrátí hodnotu, která označuje, zda je jakýkoli jeden pár prvků v zadaných vektorech roven.

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 převzetím určitého doplňku prvků zadaného vektoru.

RightShift(Vector<T>, Int32)

Posune (podepíše) každý prvek vektoru doprava o zadanou hodnotu.

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 hodnotu.

Metody rozšíření

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

Znovu interpretuje Vector<T> jako nový Vector<T>.

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

Získá prvek na pozici zadaného indexu.

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

Ukládá vektor v daném cíli.

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

Ukládá vektor v daném zarovnaném cíli.

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

Ukládá vektor v daném zarovnaném cíli.

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

Ukládá vektor v daném cíli.

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

Ukládá 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 elementem na zadaném indexu nastaveným na zadanou hodnotu a zbývajícími elementy nastavenými na stejnou hodnotu jako v daném vektoru.

AsVector128<T>(Vector<T>)

Znovu interpretuje Vector<T> jako nový Vector128<T>.

AsVector256<T>(Vector<T>)

Znovu interpretuje Vector<T> jako nový Vector256<T>.

AsVector512<T>(Vector<T>)

Znovu interpretuje Vector<T> jako nový Vector512<T>.

Platí pro