Vector<T> 構造体

定義

並列アルゴリズムの下位レベルでの最適化に適する、指定した数値型の 1 つのベクトルを表します。Represents a single vector of a specified numeric type that is suitable for low-level optimization of parallel algorithms.

generic <typename T>
 where T : value classpublic value class Vector : IEquatable<System::Numerics::Vector<T>>, IFormattable
public struct Vector<T> : IEquatable<System.Numerics.Vector<T>>, IFormattable where T : struct
type Vector<'T (requires 'T : struct)> = struct
    interface IFormattable
Public Structure Vector(Of T)
Implements IEquatable(Of Vector(Of T)), IFormattable

型パラメーター

T

ベクトルの型。The vector type. T には、任意のプリミティブ数値型を指定できます。T can be any primitive numeric type.

継承
Vector<T>
実装

注釈

Vector<T> は、指定された数値型の単一のベクターを表す不変の構造体です。Vector<T> is an immutable structure that represents a single vector of a specified numeric type. インスタンスの数は Vector<T> 固定されていますが、上限は CPU レジスタに依存しています。The count of Vector<T> instances is fixed, but its upper limit is CPU-register dependent. これは、大規模なアルゴリズムを vectorizing するためのビルディングブロックとして使用することを意図しています。したがって、任意の長さのベクターとして直接使用することも、そのまま使用することもできません。It's intended to be used as a building block for vectorizing large algorithms, and therefore cannot be used directly as an arbitrary length vector or tensor.

この Vector<T> 構造体は、ハードウェアアクセラレータのサポートを提供します。The Vector<T> structure provides support for hardware acceleration.

この記事では、 プリミティブ数値データ型 という用語は、CPU によって直接サポートされ、これらのデータ型を操作できる命令を持つ数値データ型を示しています。The term primitive numeric data type in this article refers to numeric data types that are directly supported by the CPU and have instructions that can manipulate those data types. 次の表に、プリミティブな数値データ型と操作の組み合わせを使用して実行時間を短縮する方法を示します。The following table shows which primitive numeric data type and operation combination uses intrinsic instructions for faster execution:

プリミティブ型Primitive type + - * /
sbyte はいYes はいYes いいえNo いいえNo
byte はいYes はいYes いいえNo いいえNo
short はいYes はいYes はいYes ×No
ushort はいYes はいYes いいえNo いいえNo
int はいYes はいYes はいYes ×No
uint はいYes はいYes いいえNo いいえNo
long はいYes はいYes いいえNo いいえNo
ulong はいYes はいYes いいえNo いいえNo
float はいYes はいYes はいYes はいYes
double はいYes はいYes はいYes はいYes

コンストラクター

Vector<T>(ReadOnlySpan<Byte>)

指定したバイトの読み取り専用の範囲からベクトルを構築します。Constructs a vector from the given read-only span of bytes.

Vector<T>(ReadOnlySpan<T>)

指定した ReadOnlySpan<T> からベクトルを構築します。Constructs a vector from the given ReadOnlySpan<T>.

Vector<T>(Span<T>)

指定した Span<T> からベクトルを構築します。Constructs a vector from the given Span<T>.

Vector<T>(T)

指定した型を成分とするベクトルを作成します。Creates a vector whose components are of a specified type.

Vector<T>(T[])

指定した配列からベクトルを作成します。Creates a vector from a specified array.

Vector<T>(T[], Int32)

指定した配列の、指定したインデックス位置を開始位置として、ベクトルを作成します。Creates a vector from a specified array starting at a specified index position.

プロパティ

Count

ベクトルに格納されている要素の数を返します。Returns the number of elements stored in the vector.

Item[Int32]

指定したインデックス位置にある要素を取得します。Gets the element at a specified index.

One

すべての要素が 1 のベクトルを返します。Returns a vector containing all ones.

Zero

すべての要素がゼロのベクトルを返します。Returns a vector containing all zeroes.

メソッド

CopyTo(Span<Byte>)

ベクトルを指定した Span<T> にコピーします。Copies the vector to the given Span<T>.

CopyTo(Span<T>)

ベクトルを指定した範囲にコピーします。Copies the vector to the given span. ..

CopyTo(T[])

指定した宛先の配列に、ベクトルのインスタンスをコピーします。Copies the vector instance to a specified destination array.

CopyTo(T[], Int32)

指定した宛先の配列に、指定したインデックス位置を開始位置として、ベクトルのインスタンスをコピーします。Copies the vector instance to a specified destination array starting at a specified index position.

Equals(Object)

このインスタンスが、指定されたオブジェクトと等価であるかどうかを示す値を返します。Returns a value that indicates whether this instance is equal to a specified object.

Equals(Vector<T>)

このインスタンスが、指定したベクトルと等しいかどうかを示す値を返します。Returns a value that indicates whether this instance is equal to a specified vector.

GetHashCode()

このインスタンスのハッシュ コードを返します。Returns the hash code for this instance.

ToString()

既定の書式設定を使用してこのベクトルの文字列表現を返します。Returns the string representation of this vector using default formatting.

ToString(String)

指定した書式設定文字列を使用して個々の要素を書式設定することにより、このベクトルの文字列表現を返します。Returns the string representation of this vector using the specified format string to format individual elements.

ToString(String, IFormatProvider)

指定した書式設定文字列を使用して個々の要素を書式設定し、さらに、指定した書式設定プロバイダーを使用してカルチャ固有書式設定を定義することによって、このベクトルの文字列表現を返します。Returns the string representation of this vector using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.

TryCopyTo(Span<Byte>)

指定したバイト範囲にベクトルをコピーしようとします。Attempts to copy the vector to the given byte span.

TryCopyTo(Span<T>)

指定した Span<T> にベクトルをコピーしようとします。Attempts to copy the vector to the given Span<T>.

演算子

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

2 つのベクトルを加算します。Adds two vectors together.

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

2 つのベクトルの各要素に対してビット単位の And 演算を実行して、新しいベクトルを返します。Returns a new vector by performing a bitwise And operation on each of the elements in two vectors.

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

2 つのベクトルの各要素に対してビット単位の Or 演算を実行して、新しいベクトルを返します。Returns a new vector by performing a bitwise Or operation on each of the elements in two vectors.

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

最初のベクトルを 2 番目のベクトルで除算します。Divides the first vector by the second.

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

指定した 2 つのベクトルの要素の各ペアが等しいかどうかを示す値を返します。Returns a value that indicates whether each pair of elements in two specified vectors are equal.

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

2 つのベクトルの各要素に対してビット単位の XOr 演算を実行して、新しいベクトルを返します。Returns a new vector by performing a bitwise XOr operation on each of the elements in two vectors.

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

指定したベクトルのビットを、Byte 型のベクトルとして再解釈します。Reinterprets the bits of the specified vector into a vector of type Byte.

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

指定したベクトルのビットを、Double 型のベクトルとして再解釈します。Reinterprets the bits of the specified vector into a vector of type Double.

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

指定したベクトルのビットを、Int16 型のベクトルとして再解釈します。Reinterprets the bits of the specified vector into a vector of type Int16.

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

指定したベクトルのビットを、Int32 型のベクトルとして再解釈します。Reinterprets the bits of the specified vector into a vector of type Int32.

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

指定したベクトルのビットを、Int64 型のベクトルとして再解釈します。Reinterprets the bits of the specified vector into a vector of type Int64.

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

指定したベクトルのビットを、SByte 型のベクトルとして再解釈します。Reinterprets the bits of the specified vector into a vector of type SByte.

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

指定したベクトルのビットを、Single 型のベクトルとして再解釈します。Reinterprets the bits of the specified vector into a vector of type Single.

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

指定したベクトルのビットを、UInt16 型のベクトルとして再解釈します。Reinterprets the bits of the specified vector into a vector of type UInt16.

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

指定したベクトルのビットを、UInt32 型のベクトルとして再解釈します。Reinterprets the bits of the specified vector into a vector of type UInt32.

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

指定したベクトルのビットを、UInt64 型のベクトルとして再解釈します。Reinterprets the bits of the specified vector into a vector of type UInt64.

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

指定したベクトルの要素のいずれか 1 つのペアが等しいかどうかを示す値を返します。Returns a value that indicates whether any single pair of elements in the specified vectors is equal.

Multiply(T, Vector<T>)

ベクトルを、指定したスカラー値で乗算します。Multiplies a vector by a specified scalar value.

Multiply(Vector<T>, T)

ベクトルを、指定したスカラー値で乗算します。Multiplies a vector by a specified scalar value.

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

指定した 2 つのベクトルの要素の各ペアを乗算した値を値とする新しいベクトルを返します。Returns a new vector whose values are the product of each pair of elements in two specified vectors.

OnesComplement(Vector<T>)

指定したベクトルの要素の 1 の補数をとった値を要素とする新しいベクトルを返します。Returns a new vector whose elements are obtained by taking the one's complement of a specified vector's elements.

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

最初のベクトルから 2 番目のベクトルを減算します。Subtracts the second vector from the first.

UnaryNegation(Vector<T>)

指定したベクトルを符号反転します。Negates a given vector.

拡張メソッド

AsVector128<T>(Vector<T>)

新しい Vector128<T> として Vector<T> を再解釈します。Reinterprets a Vector<T> as a new Vector128<T>.

AsVector256<T>(Vector<T>)

新しい Vector256<T> として Vector<T> を再解釈します。Reinterprets a Vector<T> as a new Vector256<T>.

適用対象