Vector<T> Struktura
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
- 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 |
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 |
BitwiseOr(Vector<T>, Vector<T>) |
Vrátí nový vektor provedením bitové operace |
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 |
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>) | |
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>. |