Vector<T> Struktura

Definice

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

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

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 obsahují pokyny, které mohou s těmito datovými typy manipulovat.

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é matice začínající na zadané pozici indexu.

Vlastnosti

AllBitsSet

Získá nový Vector<T> se všemi bity nastavenými na hodnotu 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 optimalizaci paralelních algoritmů na nízké úrovni.

IsSupported

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

Item[Int32]

Získá element 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 počínaje zadanou pozicí 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 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 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 jednotlivých prvků.

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

Vydělí první vektor sekundou.

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

Vrátí hodnotu, která urč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>)

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

Přeloží bity zdrojového vektoru na vektor celých čísel 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>)

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řijetím doplňku elementů zadaného vektoru.

RightShift(Vector<T>, Int32)

Posune (podepsat) 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>)

Reinterprets a Vector<T> as a new 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ární obsahující hodnotu prvního prvku.

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

Vytvoří nový Vector<T> prvek s elementem v 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>)

Reinterprets a Vector<T> as a new Vector128<T>.

AsVector256<T>(Vector<T>)

Reinterprets a Vector<T> as a new Vector256<T>.

AsVector512<T>(Vector<T>)

Reinterprets a Vector<T> as a new Vector512<T>.

Platí pro