LongVectorは、Javaプラットフォームのプレビュー機能に依存します:
LongVectorは、1つ以上のプレビューAPIを参照:MemorySegment。
long値のシーケンスを表す特殊なVector。-
フィールドのサマリー
フィールド修飾子と型フィールド説明static final VectorSpecies<Long> static final VectorSpecies<Long> static final VectorSpecies<Long> static final VectorSpecies<Long> static final VectorSpecies<Long> static final VectorSpecies<Long> LongVectorの優先種。 -
メソッドのサマリー
修飾子と型メソッド説明final LongVectorabs()このベクトルの絶対値を返します。final LongVectoradd(long e) このベクトルを入力スカラーのブロードキャストに追加します。final LongVectoradd(long e, VectorMask<Long> m) このベクトルを入力スカラーのブロードキャストに追加し、マスクによって制御されるレーン要素を選択します。final LongVectorこのベクトルを2番目の入力ベクトルに追加します。final LongVectoradd(Vector<Long> v, VectorMask<Long> m) マスクの制御下にあるレーンを選択して、このベクトルを2番目の入力ベクトルに追加します。abstract LongVectoraddIndex(int scale) 指定された定数でスケーリングされた、このベクトルのレーンを対応するレーン番号に追加します。final LongVectorand(long e) このベクトルとスカラーのビット単位の論理積(&)を計算します。final LongVectorこのベクトルと次の入力ベクトルのビット単位の論理積(&)を計算します。final LongVectorbitwiseBlend(long bits, long mask) マスク・ビットを提供する別のスカラーの制御下にあるベクトルとスカラーのビットをブレンドします。final LongVectorbitwiseBlend(long bits, Vector<Long> mask) マスク・ビットを提供する別のベクトルの制御下にあるベクトルとスカラーのビットをブレンドします。final LongVectorbitwiseBlend(Vector<Long> bits, long mask) マスク・ビットを提供するスカラーの制御下にある2つのベクトルのビットをブレンドします。final LongVectorbitwiseBlend(Vector<Long> bits, Vector<Long> mask) マスク・ビットを提供する3番目のベクトルの制御下にある2つのベクトルのビットをブレンドします。final LongVectorblend(long e, VectorMask<Long> m) このベクトルの選択されたレーンを、マスクの制御下にあるスカラー値で置き換えます。abstract LongVectorblend(Vector<Long> v, VectorMask<Long> m) このベクトルの選択されたレーンを、マスクの制御下にある2番目の入力ベクトルの対応するレーンに置き換えます。abstract LongVectorbroadcast(long e) すべてのレーン要素がプリミティブ値eに設定されている、この種と同じ種のベクトルを返します。static LongVectorbroadcast(VectorSpecies<Long> species, long e) すべてのレーン要素がプリミティブ値eに設定されている、指定された種のベクトルを返します。final <F> Vector<F> castShape(VectorSpecies<F> toSpecies, int part) ベクトルをあるレーン・タイプから別のレーン・タイプに変換する便利なメソッドで、レーン・サイズが変更されたときに必要に応じてシェイプを変更します。final <F> Vector<F> このベクトルが指定された要素型を持つことを確認し、このベクトルを変更せずに返します。final <F> Vector<F> check(VectorSpecies<F> species) このベクトルが指定された種を持っているかどうかを判定し、このベクトルをそのまま返します。abstract VectorMask<Long> compare(VectorOperators.Comparison op, long e) 指定された比較演算に従って入力スカラーと比較することによって、このベクトルをテストします。final VectorMask<Long> compare(VectorOperators.Comparison op, long e, VectorMask<Long> m) 指定された比較演算に従って、マスクによって選択されたレーン単位で入力スカラーと比較することによって、このベクトルをテストします。abstract VectorMask<Long> compare(VectorOperators.Comparison op, Vector<Long> v) 指定された比較演算に従って別の入力ベクトルと比較することによって、このベクトルをテストします。abstract LongVectorcompress(VectorMask<Long> m) 特定のマスクのコントロールの下にあるレーンを選択する、このベクトルのレーン要素を圧縮します。final <F> Vector<F> convert(VectorOperators.Conversion<Long, F> conv, int part) 指定された「変換」に従って、このベクトルを同じシェイプのベクトルおよび新しい要素タイプに変換し、レーン値を現在のETYPEから新しいレーン型の(ここではFTYPEと呼びます)に変換します。abstract <F> Vector<F> convertShape(VectorOperators.Conversion<Long, F> conv, VectorSpecies<F> rsp, int part) 指定された「変換」に従って、このベクトルを指定された種、シェイプ、および要素型のベクトルに変換し、レーン値を現在のETYPEから新しいレーン型(ここではFTYPEと呼びます)に変換します。final LongVectordiv(long e) このベクトルを入力スカラーのブロードキャストで除算します。final LongVectordiv(long e, VectorMask<Long> m) このベクトルを入力スカラーのブロードキャストで除算し、マスクによって制御されるレーン要素を選択します。final LongVectorこのベクトルを2番目の入力ベクトルで除算します。final LongVectordiv(Vector<Long> v, VectorMask<Long> m) このベクトルをマスクの制御下にある2番目の入力ベクトルで除算します。final VectorMask<Long> eq(long e) このベクトルが入力スカラーと等しいかどうかを判定します。final VectorMask<Long> このベクトルが別の入力ベクトルと等しいかどうかを判定します。final booleanこのベクトルが他のオブジェクトと同一かどうかを示します。abstract LongVectorexpand(VectorMask<Long> m) このベクトルのレーン要素を特定のマスクの制御下で展開します。static LongVectorfromArray(VectorSpecies<Long> species, long[] a, int offset) オフセットから始まるlong[]型の配列からベクトルをロードします。static LongVectorfromArray(VectorSpecies<Long> species, long[] a, int offset, int[] indexMap, int mapOffset) 「索引マップ」から一連のセカンダリ・オフセットに固定offsetを追加して取得した索引を使用して、long[]タイプの配列から要素で構成される新しいベクトルを収集します。static LongVectorfromArray(VectorSpecies<Long> species, long[] a, int offset, int[] indexMap, int mapOffset, VectorMask<Long> m) マスクの制御下にあるlong[]型の配列から要素で構成される新しいベクトルを収集し、「索引マップ」から一連のセカンダリ・オフセットに固定offsetを追加して取得した索引を使用します。static LongVectorfromArray(VectorSpecies<Long> species, long[] a, int offset, VectorMask<Long> m) オフセットからマスクを使用して、long[]型の配列からベクトルをロードします。static LongVectorfromMemorySegment(VectorSpecies<Long> species, MemorySegmentPREVIEW ms, long offset, ByteOrder bo) オフセットから始まる「メモリー・セグメント」PREVIEWからメモリー・セグメントにベクトルをロードします。static LongVectorfromMemorySegment(VectorSpecies<Long> species, MemorySegmentPREVIEW ms, long offset, ByteOrder bo, VectorMask<Long> m) オフセットから始まる「メモリー・セグメント」PREVIEWからメモリー・セグメントにベクトルをロードし、マスクを使用します。protected final Objectfinal inthashCode()ベクトルのハッシュ・コード値を返します。final voidintoArray(long[] a, int offset) このベクトルをオフセットから始まるlong[]型の配列に格納します。final voidintoArray(long[] a, int offset, int[] indexMap, int mapOffset) 「索引マップ」から一連のセカンダリ・オフセットに固定offsetを追加して取得した索引を使用して、このベクトルをlong[]型の配列に分散します。final voidintoArray(long[] a, int offset, int[] indexMap, int mapOffset, VectorMask<Long> m) このベクトルを、マスクの制御下にあるlong[]型の配列に分散し、「索引マップ」から一連のセカンダリ・オフセットに固定offsetを追加して取得した索引を使用します。final voidintoArray(long[] a, int offset, VectorMask<Long> m) このベクトルを、オフセットから始めてマスクを使用するlong[]型の配列に格納します。final voidintoMemorySegment(MemorySegmentPREVIEW ms, long offset, ByteOrder bo) このベクトルを、明示的なバイト順序を使用してオフセットから始まる「メモリー・セグメント」PREVIEWに格納します。final voidintoMemorySegment(MemorySegmentPREVIEW ms, long offset, ByteOrder bo, VectorMask<Long> m) 明示的なバイト順序とマスクを使用してオフセットから始まる「メモリー・セグメント」PREVIEWにこのベクトルを格納します。abstract longlane(int i) レーン索引iのレーン要素を取得final LongVectorlanewise(VectorOperators.Binary op, long e) このベクトルのレーン値をブロードキャスト・スカラーの値と結合します。final LongVectorlanewise(VectorOperators.Binary op, long e, VectorMask<Long> m) このベクトルのレーン値とブロードキャスト・スカラーの値を、マスクによって制御されるレーン要素の選択と結合します。abstract LongVectorlanewise(VectorOperators.Binary op, Vector<Long> v) このベクトルの対応するレーン値を2番目の入力ベクトルのレーン値と結合します。abstract LongVectorlanewise(VectorOperators.Binary op, Vector<Long> v, VectorMask<Long> m) このベクトルの対応するレーン値と2番目の入力ベクトルのレーン値を、マスクによって制御されるレーン要素の選択と組み合わせます。final LongVectorlanewise(VectorOperators.Ternary op, long e1, long e2) このベクトルのレーンの値を2つのブロードキャスト・スカラーの値と結合します。final LongVectorlanewise(VectorOperators.Ternary op, long e1, long e2, VectorMask<Long> m) このベクトルのレーンの値と2つのブロードキャスト・スカラーの値を組み合わせ、マスクによって制御されるレーン要素を選択します。final LongVectorlanewise(VectorOperators.Ternary op, long e1, Vector<Long> v2) このベクトルのレーンの値を、別のベクトルおよびブロードキャスト・スカラーの値と結合します。final LongVectorlanewise(VectorOperators.Ternary op, long e1, Vector<Long> v2, VectorMask<Long> m) このベクトルのレーン値を別のベクトルおよびブロードキャスト・スカラーの値と結合し、マスクによって制御されるレーン要素を選択します。final LongVectorlanewise(VectorOperators.Ternary op, Vector<Long> v1, long e2) このベクトルのレーンの値を、別のベクトルおよびブロードキャスト・スカラーの値と結合します。final LongVectorlanewise(VectorOperators.Ternary op, Vector<Long> v1, long e2, VectorMask<Long> m) このベクトルのレーン値を別のベクトルおよびブロードキャスト・スカラーの値と結合し、マスクによって制御されるレーン要素を選択します。abstract LongVectorこのベクトルの対応するレーン値を、2番目と3番目の入力ベクトルのレーンと結合します。abstract LongVectorlanewise(VectorOperators.Ternary op, Vector<Long> v1, Vector<Long> v2, VectorMask<Long> m) このベクトルの対応するレーン値を2番目と3番目の入力ベクトルのレーンと組み合わせ、マスクによって制御されるレーン要素を選択します。abstract LongVectorこのベクトルのレーン値を操作します。abstract LongVectorlanewise(VectorOperators.Unary op, VectorMask<Long> m) マスクによって制御されるレーン要素の選択を使用して、このベクトルのレーン値を操作します。final VectorMask<Long> lt(long e) このベクトルが入力スカラーより小さいかどうかを判定します。final VectorMask<Long> このベクトルが別の入力ベクトルより小さいかどうかを判定します。final VectorMask<Long> maskAll(boolean bit) このベクトルと同じ種のマスクを返します。各レーンは、すべてのレーンにブロードキャストされる指定された単一のbooleanに従って設定または設定解除されます。final LongVectormax(long e) このベクトルの大きい方と入力スカラーのブロードキャストを計算します。final LongVectorこのベクトルと2番目の入力ベクトルの大きい方を計算します。final LongVectormin(long e) このベクトルの小さい方と入力スカラーのブロードキャストを計算します。final LongVectorこのベクトルと2番目の入力ベクトルの小さい方を計算します。final LongVectormul(long e) このベクトルに入力スカラーのブロードキャストを掛けます。final LongVectormul(long e, VectorMask<Long> m) このベクトルに入力スカラーのブロードキャストを掛け、マスクによって制御されるレーン要素を選択します。final LongVectorこのベクトルに2番目の入力ベクトルを掛けます。final LongVectormul(Vector<Long> v, VectorMask<Long> m) マスクの制御下にある2番目の入力ベクトルでこのベクトルを乗算します。final LongVectorneg()このベクトルを否定します。final LongVectornot()このベクトルのビット単位の論理補数(~)を計算します。final LongVectoror(long e) このベクトルとスカラーのビット単位の論理和(|)を計算します。final LongVectorこのベクトルと別の入力ベクトルのビット単位の論理和(|)を計算します。abstract LongVector特定のシャッフルの制御下にあるレーンを選択して、このベクトルのレーン要素を再配置します。abstract LongVectorrearrange(VectorShuffle<Long> s, Vector<Long> v) 特定のシャッフルの制御下にあるレーンを選択し、シャッフル内の通常のインデックスと例外的なインデックスの両方を使用して、2つのベクトルのレーン要素の位置を変更します。abstract LongVectorrearrange(VectorShuffle<Long> s, VectorMask<Long> m) 特定のシャッフルとマスクの制御下にあるレーンを選択して、このベクトルのレーン要素を再配置します。abstract longこのベクトルのすべてのレーンから累積された値を返します。abstract longマスクによって制御される、このベクトルの選択されたレーンから累積された値を返します。final ByteVectorこのベクトルを同じシェイプと内容のベクトルとして表示しますが、レーン型のbyteでは、バイトはリトル・エンディアンの順序に従ってレーンから抽出されます。このベクトルを、同じシェイプおよび内容でレーン型のdoubleのベクトルとして再解釈します。レーンはリトル・エンディアンの順序に従って連続したバイトから組み立てられます。このベクトルを、同じシェイプおよび内容でレーン型のfloatのベクトルとして再解釈します。レーンはリトル・エンディアンの順序に従って連続したバイトから組み立てられます。このベクトルを、同じシェイプおよび内容でレーン型のintのベクトルとして再解釈します。レーンはリトル・エンディアンの順序に従って連続したバイトから組み立てられます。このベクトルを、同じシェイプおよび内容でレーン型のlongのベクトルとして再解釈します。レーンはリトル・エンディアンの順序に従って連続したバイトから組み立てられます。このベクトルを、同じシェイプおよび内容でレーン型のshortのベクトルとして再解釈します。レーンはリトル・エンディアンの順序に従って連続したバイトから組み立てられます。abstract LongVectorselectFrom(Vector<Long> v) このベクトルのレーンに格納されている索引値を使用して、2番目のベクトルvに格納されている値をアセンブルします。abstract LongVectorselectFrom(Vector<Long> s, VectorMask<Long> m) このベクトルのレーンに格納されているインデックス値を使用して、マスクの制御下で2番目のベクトルに格納されている値を組み立てます。abstract LongVectorslice(int origin) 現在のベクトル内の指定されたoriginレーンから始まる隣接レーンのセグメントをスライスします。abstract LongVector現在のベクトル内の指定されたoriginレーンから始まり、すぐ後のベクトルに(必要に応じて)を継続して、隣接するレーンのセグメントをスライスします。final LongVectorslice(int origin, Vector<Long> w, VectorMask<Long> m) マスクの制御下にある隣接レーンのセグメントをスライスします。現在のベクトル内の指定されたoriginレーンから開始し、(必要に応じて)を直後のベクトルに継続します。final VectorSpecies<Long> species()このベクトルの種を返します。final LongVectorsub(long e) このベクトルから入力スカラーを減算します。final LongVectorsub(long e, VectorMask<Long> m) マスクの制御下にあるこのベクトルから入力スカラーを減算します。final LongVectorこのベクトルから2番目の入力ベクトルを減算します。final LongVectorsub(Vector<Long> v, VectorMask<Long> m) マスクの制御下で、このベクトルから2つ目の入力ベクトルを減算します。abstract VectorMask<Long> 指定された演算に従って、このベクトルのレーンをテストします。abstract VectorMask<Long> test(VectorOperators.Test op, VectorMask<Long> m) 指定された演算に従って、このベクトルの選択されたレーンをテストします。final long[]toArray()すべてのレーン値を含むlong[]型の配列を返します。final double[]double型に変換された、すべてのレーン値を含むdouble[]配列を返します。final int[]int型に変換された、すべてのレーン値を含むint[]配列を返します。final long[]long型に変換された、すべてのレーン値を含むlong[]配列を返します。final StringtoString()このベクトルのレーン値をレーン順に報告する、"[0,1,2...]"形式のこのベクトルの文字列表現を返します。abstract LongVectorunslice(int origin) slice()を逆にして、ゼロ・レーン値の"background"入力内に現在のベクトルをスライスとして挿入します。abstract LongVectorslice()を逆にして、現在のベクトルを別の"background"入力ベクトル内のスライスとして挿入します。これは、後続の仮想slice()演算に対する一方または他方の入力とみなされます。abstract LongVectorunslice(int origin, Vector<Long> w, int part, VectorMask<Long> m) slice()を逆にして、現在のベクトルを別の"background"入力ベクトル内のスライスとして(マスクの制御下)に挿入します。これは、後続の仮想slice()演算に対する一方または他方の入力とみなされます。final DoubleVectorこのベクトルを同じシェイプ、長さ、内容のベクトルとして表示しますが、レーン型は浮動小数点型です。final LongVectorこのベクトルを同じシェイプ、長さ、内容のベクトルとして表示しますが、レーン型は浮動小数点型ではありません。abstract LongVectorwithLane(int i, long e) レーン索引iにあるこのベクトルのレーン要素を値eに置き換えます。static LongVectorzero(VectorSpecies<Long> species) すべてのレーン要素がデフォルトのプリミティブ値であるゼロに設定されている、指定された種のベクトルを返します。クラスjdk.incubator.vector.Vectorで宣言されたメソッド
bitSize, byteSize, compare, elementSize, elementType, length, reduceLanesToLong, reduceLanesToLong, reinterpretShape, shape, toShuffle
-
フィールド詳細
-
SPECIES_64
public static final VectorSpecies<Long> SPECIES_64 -
SPECIES_128
public static final VectorSpecies<Long> SPECIES_128 -
SPECIES_256
public static final VectorSpecies<Long> SPECIES_256 -
SPECIES_512
public static final VectorSpecies<Long> SPECIES_512 -
SPECIES_MAX
public static final VectorSpecies<Long> SPECIES_MAX -
SPECIES_PREFERRED
public static final VectorSpecies<Long> SPECIES_PREFERREDLongVectorの優先種。 優先種はプラットフォームの最大ビット・サイズの一種です。
-
-
メソッドの詳細
-
zero
public static LongVector zero(VectorSpecies<Long> species) すべてのレーン要素がデフォルトのプリミティブ値であるゼロに設定されている、指定された種のベクトルを返します。- パラメータ:
species- 目的のゼロ・ベクトルの種- 戻り値:
- ゼロ・ベクトル
-
broadcast
public abstract LongVector broadcast(long e) すべてのレーン要素がプリミティブ値eに設定されている、この種と同じ種のベクトルを返します。 現在のベクトルの内容は破棄されます。この演算に関連するのは種だけです。このメソッドは、この式の値を戻します:
LongVector.broadcast(this.species(), e)。 -
broadcast
public static LongVector broadcast(VectorSpecies<Long> species, long e) すべてのレーン要素がプリミティブ値eに設定されている、指定された種のベクトルを返します。- パラメータ:
species- 希望するベクトルの種e- ブロードキャストする値- 戻り値:
- すべてのレーン要素がプリミティブ値
eに設定されているベクトル - 関連項目:
-
lanewise
public abstract LongVector lanewise(VectorOperators.Unary op) このベクトルのレーン値を操作します。 これは、選択した演算を各レーンに適用するレーンワイズ単項演算です。 -
lanewise
public abstract LongVector lanewise(VectorOperators.Unary op, VectorMask<Long> m) マスクによって制御されるレーン要素の選択を使用して、このベクトルのレーン値を操作します。 これは、選択した演算を各レーンに適用するレーンワイズ単項演算です。 -
lanewise
public abstract LongVector lanewise(VectorOperators.Binary op, Vector<Long> v) このベクトルの対応するレーン値を2番目の入力ベクトルのレーン値と結合します。 これは、選択した演算を各レーンに適用するレーンワイズ二項演算です。 -
lanewise
public abstract LongVector lanewise(VectorOperators.Binary op, Vector<Long> v, VectorMask<Long> m) このベクトルの対応するレーン値と2番目の入力ベクトルのレーン値を、マスクによって制御されるレーン要素の選択と組み合わせます。 これは、選択した演算を各レーンに適用するレーンワイズ二項演算です。 -
lanewise
public final LongVector lanewise(VectorOperators.Binary op, long e) このベクトルのレーン値をブロードキャスト・スカラーの値と結合します。 これは、選択した演算を各レーンに適用するレーンワイズ二項演算です。 戻り値はこの式と等しくなります:this.lanewise(op, this.broadcast(e))。- 定義:
- クラス
Vector<Long>のlanewise - パラメータ:
op- レーン値の処理に使用される演算e- 入力スカラー- 戻り値:
- 2つの入力ベクトルにレーンワイズ演算を適用した結果
- スロー:
UnsupportedOperationException- このベクトルがリクエストされた演算をサポートしていない場合- 関連項目:
-
lanewise
public final LongVector lanewise(VectorOperators.Binary op, long e, VectorMask<Long> m) このベクトルのレーン値とブロードキャスト・スカラーの値を、マスクによって制御されるレーン要素の選択と結合します。 これは、選択した演算を各レーンに適用する、マスクされたレーンワイズ二項演算です。 戻り値はこの式と等しくなります:this.lanewise(op, this.broadcast(e), m)。- 定義:
- クラス
Vector<Long>のlanewise - パラメータ:
op- レーン値の処理に使用される演算e- 入力スカラーm- マスク制御レーンの選択- 戻り値:
- 入力ベクトルとスカラーにレーンワイズ演算を適用した結果
- スロー:
UnsupportedOperationException- このベクトルがリクエストされた演算をサポートしていない場合- 関連項目:
-
lanewise
public abstract LongVector lanewise(VectorOperators.Ternary op, Vector<Long> v1, Vector<Long> v2) このベクトルの対応するレーン値を、2番目と3番目の入力ベクトルのレーンと結合します。 これは、選択した演算を各レーンに適用するレーンワイズの三項演算です。 -
lanewise
public abstract LongVector lanewise(VectorOperators.Ternary op, Vector<Long> v1, Vector<Long> v2, VectorMask<Long> m) このベクトルの対応するレーン値を2番目と3番目の入力ベクトルのレーンと組み合わせ、マスクによって制御されるレーン要素を選択します。 これは、選択した演算を各レーンに適用するレーンワイズ三項演算です。 -
lanewise
public final LongVector lanewise(VectorOperators.Ternary op, long e1, long e2) このベクトルのレーンの値を2つのブロードキャスト・スカラーの値と結合します。 これは、選択した演算を各レーンに適用するレーンワイズ三項演算です。 戻り値はこの式と等しくなります:this.lanewise(op, this.broadcast(e1), this.broadcast(e2))。- パラメータ:
op- レーン値を結合するために使用される演算e1- 最初の入力スカラーe2- 2番目の入力スカラー- 戻り値:
- 入力ベクトルおよびスカラーにレーンワイズ演算を適用した結果
- スロー:
UnsupportedOperationException- このベクトルがリクエストされた演算をサポートしていない場合- 関連項目:
-
lanewise
public final LongVector lanewise(VectorOperators.Ternary op, long e1, long e2, VectorMask<Long> m) このベクトルのレーンの値と2つのブロードキャスト・スカラーの値を組み合わせ、マスクによって制御されるレーン要素を選択します。 これは、選択した演算を各レーンに適用する、マスクされたレーンワイズ三項演算です。 戻り値はこの式と等しくなります:this.lanewise(op, this.broadcast(e1), this.broadcast(e2), m)。- パラメータ:
op- レーン値を結合するために使用される演算e1- 最初の入力スカラーe2- 2番目の入力スカラーm- マスク制御レーンの選択- 戻り値:
- 入力ベクトルおよびスカラーにレーンワイズ演算を適用した結果
- スロー:
UnsupportedOperationException- このベクトルがリクエストされた演算をサポートしていない場合- 関連項目:
-
lanewise
public final LongVector lanewise(VectorOperators.Ternary op, Vector<Long> v1, long e2) このベクトルのレーンの値を、別のベクトルおよびブロードキャスト・スカラーの値と結合します。 これは、選択した演算を各レーンに適用するレーンワイズ三項演算です。 戻り値はこの式と等しくなります:this.lanewise(op, v1, this.broadcast(e2))。- パラメータ:
op- レーン値を結合するために使用される演算v1- その他の入力ベクトルe2- 入力スカラー- 戻り値:
- 入力ベクトルおよびスカラーにレーンワイズ演算を適用した結果
- スロー:
UnsupportedOperationException- このベクトルがリクエストされた演算をサポートしていない場合- 関連項目:
-
lanewise
public final LongVector lanewise(VectorOperators.Ternary op, Vector<Long> v1, long e2, VectorMask<Long> m) このベクトルのレーン値を別のベクトルおよびブロードキャスト・スカラーの値と結合し、マスクによって制御されるレーン要素を選択します。 これは、選択した演算を各レーンに適用する、マスクされたレーンワイズ三項演算です。 戻り値はこの式と等しくなります:this.lanewise(op, v1, this.broadcast(e2), m)。- パラメータ:
op- レーン値を結合するために使用される演算v1- その他の入力ベクトルe2- 入力スカラーm- マスク制御レーンの選択- 戻り値:
- 入力ベクトルおよびスカラーにレーンワイズ演算を適用した結果
- スロー:
UnsupportedOperationException- このベクトルがリクエストされた演算をサポートしていない場合- 関連項目:
-
lanewise
public final LongVector lanewise(VectorOperators.Ternary op, long e1, Vector<Long> v2) このベクトルのレーンの値を、別のベクトルおよびブロードキャスト・スカラーの値と結合します。 これは、選択した演算を各レーンに適用するレーンワイズ三項演算です。 戻り値はこの式と等しくなります:this.lanewise(op, this.broadcast(e1), v2)。- パラメータ:
op- レーン値を結合するために使用される演算e1- 入力スカラーv2- その他の入力ベクトル- 戻り値:
- 入力ベクトルおよびスカラーにレーンワイズ演算を適用した結果
- スロー:
UnsupportedOperationException- このベクトルがリクエストされた演算をサポートしていない場合- 関連項目:
-
lanewise
public final LongVector lanewise(VectorOperators.Ternary op, long e1, Vector<Long> v2, VectorMask<Long> m) このベクトルのレーン値を別のベクトルおよびブロードキャスト・スカラーの値と結合し、マスクによって制御されるレーン要素を選択します。 これは、選択した演算を各レーンに適用する、マスクされたレーンワイズ三項演算です。 戻り値はこの式と等しくなります:this.lanewise(op, this.broadcast(e1), v2, m)。- パラメータ:
op- レーン値を結合するために使用される演算e1- 入力スカラーv2- その他の入力ベクトルm- マスク制御レーンの選択- 戻り値:
- 入力ベクトルおよびスカラーにレーンワイズ演算を適用した結果
- スロー:
UnsupportedOperationException- このベクトルがリクエストされた演算をサポートしていない場合- 関連項目:
-
add
public final LongVector add(Vector<Long> v) -
add
public final LongVector add(long e) このベクトルを入力スカラーのブロードキャストに追加します。 これは、プリミティブ加算演算(+)を各レーンに適用するレーンワイズ二項演算です。 このメソッドは、式lanewise(ADD, e)とも同じです。- パラメータ:
e- 入力スカラー- 戻り値:
- このベクトルの各レーンをスカラーに加算した結果
- 関連項目:
-
add
public final LongVector add(Vector<Long> v, VectorMask<Long> m) マスクの制御下にあるレーンを選択して、このベクトルを2番目の入力ベクトルに追加します。 これは、対応するレーン値の各ペアにプリミティブ加算演算(+)を適用する、マスクされたレーンワイズ二項演算です。 マスクに設定されていないレーンについては、プリミティブ演算は抑制され、このベクトルはそのレーンに格納されている元の値を保持します。 このメソッドは、式lanewise(ADD, v, m)とも同じです。フル・サービスの名前付き演算として、このメソッドはマスキングされたオーバーロードおよびマスキングされていないオーバーロードで使用され、(サブクラス)もスカラー・ブロードキャストのオーバーロード(マスク済とマスク解除済の両方)で使用されます。
-
add
public final LongVector add(long e, VectorMask<Long> m) このベクトルを入力スカラーのブロードキャストに追加し、マスクによって制御されるレーン要素を選択します。 これは、各レーンにプリミティブ加算演算(+)を適用する、マスクされたレーンワイズ二項演算です。 このメソッドは、式lanewise(ADD, s, m)とも同じです。- パラメータ:
e- 入力スカラーm- マスク制御レーンの選択- 戻り値:
- このベクトルの各レーンをスカラーに加算した結果
- 関連項目:
-
sub
public final LongVector sub(Vector<Long> v) -
sub
public final LongVector sub(long e) このベクトルから入力スカラーを減算します。 これは、プリミティブ減算演算(-)を各レーンに適用する、マスクされたレーンワイズ二項演算です。 このメソッドは、式lanewise(SUB, e)とも同じです。- パラメータ:
e- 入力スカラー- 戻り値:
- このベクトルの各レーンからスカラーを減算した結果
- 関連項目:
-
sub
public final LongVector sub(Vector<Long> v, VectorMask<Long> m) マスクの制御下で、このベクトルから2つ目の入力ベクトルを減算します。 これは、対応するレーン値の各ペアにプリミティブ減算演算(-)を適用する、マスクされたレーンワイズ二項演算です。 マスクに設定されていないレーンについては、プリミティブ演算は抑制され、このベクトルはそのレーンに格納されている元の値を保持します。 このメソッドは、式lanewise(SUB, v, m)とも同じです。フル・サービスの名前付き演算として、このメソッドはマスキングされたオーバーロードおよびマスキングされていないオーバーロードで使用され、(サブクラス)もスカラー・ブロードキャストのオーバーロード(マスク済とマスク解除済の両方)で使用されます。
-
sub
public final LongVector sub(long e, VectorMask<Long> m) マスクの制御下にあるこのベクトルから入力スカラーを減算します。 これは、プリミティブ減算演算(-)を各レーンに適用する、マスクされたレーンワイズ二項演算です。 このメソッドは、式lanewise(SUB, s, m)とも同じです。- パラメータ:
e- 入力スカラーm- マスク制御レーンの選択- 戻り値:
- このベクトルの各レーンからスカラーを減算した結果
- 関連項目:
-
mul
public final LongVector mul(Vector<Long> v) -
mul
public final LongVector mul(long e) このベクトルに入力スカラーのブロードキャストを掛けます。 これは、プリミティブ乗算演算(*)を各レーンに適用するレーンワイズ二項演算です。 このメソッドは、式lanewise(MUL, e)とも同じです。- パラメータ:
e- 入力スカラー- 戻り値:
- このベクトルに指定されたスカラーを掛けた結果
- 関連項目:
-
mul
public final LongVector mul(Vector<Long> v, VectorMask<Long> m) マスクの制御下にある2番目の入力ベクトルでこのベクトルを乗算します。 これは、プリミティブ乗算演算(*)を対応するレーン値の各ペアに適用するレーンワイズ二項演算です。 マスクに設定されていないレーンについては、プリミティブ演算は抑制され、このベクトルはそのレーンに格納されている元の値を保持します。 このメソッドは、式lanewise(MUL, v, m)とも同じです。フル・サービスの名前付き演算として、このメソッドはマスキングされたオーバーロードおよびマスキングされていないオーバーロードで使用され、(サブクラス)もスカラー・ブロードキャストのオーバーロード(マスク済とマスク解除済の両方)で使用されます。
-
mul
public final LongVector mul(long e, VectorMask<Long> m) このベクトルに入力スカラーのブロードキャストを掛け、マスクによって制御されるレーン要素を選択します。 これは、プリミティブ乗算演算(*)を各レーンに適用する、マスクされたレーンワイズ二項演算です。 このメソッドは、式lanewise(MUL, s, m)とも同じです。- パラメータ:
e- 入力スカラーm- マスク制御レーンの選択- 戻り値:
- このベクトルの各レーンをスカラーに殺した結果
- 関連項目:
-
div
public final LongVector div(Vector<Long> v) -
div
public final LongVector div(long e) このベクトルを入力スカラーのブロードキャストで除算します。 これは、プリミティブ分割演算(/)を各レーンに適用するレーンワイズ二項演算です。 このメソッドは、式lanewise(DIV, e)とも同じです。- APIのノート:
- 除数がゼロの場合、
ArithmeticExceptionがスローされます。 - パラメータ:
e- 入力スカラー- 戻り値:
- このベクトルの各レーンをスカラーで割った結果
- 関連項目:
-
div
public final LongVector div(Vector<Long> v, VectorMask<Long> m) このベクトルをマスクの制御下にある2番目の入力ベクトルで除算します。 これは、プリミティブ除算演算(/)を対応するレーン値の各ペアに適用するレーンワイズ二項演算です。 マスクに設定されていないレーンについては、プリミティブ演算は抑制され、このベクトルはそのレーンに格納されている元の値を保持します。 このメソッドは、式lanewise(DIV, v, m)とも同じです。フル・サービスの名前付き演算として、このメソッドはマスキングされたオーバーロードおよびマスキングされていないオーバーロードで使用され、(サブクラス)もスカラー・ブロードキャストのオーバーロード(マスク済とマスク解除済の両方)で使用されます。
-
div
public final LongVector div(long e, VectorMask<Long> m) このベクトルを入力スカラーのブロードキャストで除算し、マスクによって制御されるレーン要素を選択します。 これは、プリミティブ分割演算(/)を各レーンに適用する、マスクされたレーンワイズ二項演算です。 このメソッドは、式lanewise(DIV, s, m)とも同じです。- APIのノート:
- 除数がゼロの場合、
ArithmeticExceptionがスローされます。 - パラメータ:
e- 入力スカラーm- マスク制御レーンの選択- 戻り値:
- このベクトルの各レーンをスカラーで割った結果
- 関連項目:
-
min
public final LongVector min(Vector<Long> v) -
min
public final LongVector min(long e) このベクトルの小さい方と入力スカラーのブロードキャストを計算します。 これは、演算Math.min()を対応するレーン値の各ペアに適用するレーンワイズ二項演算です。 このメソッドは、式lanewise(MIN, e)とも同じです。- パラメータ:
e- 入力スカラー- 戻り値:
- このベクトルに指定されたスカラーを掛けた結果
- 関連項目:
-
max
public final LongVector max(Vector<Long> v) -
max
public final LongVector max(long e) このベクトルの大きい方と入力スカラーのブロードキャストを計算します。 これは、演算Math.max()を対応するレーン値の各ペアに適用するレーンワイズ二項演算です。 このメソッドは、式lanewise(MAX, e)とも同じです。- パラメータ:
e- 入力スカラー- 戻り値:
- このベクトルに指定されたスカラーを掛けた結果
- 関連項目:
-
and
public final LongVector and(Vector<Long> v) このベクトルと次の入力ベクトルのビット単位の論理積(&)を計算します。 これは、プリミティブなビット単位の演算(&)を対応するレーン値の各ペアに適用するレーンワイズ二項演算です。 このメソッドは、式lanewise(AND, v)とも同じです。これは、
addのようなフル・サービス名前付き演算ではありません。 この演算のマスクされたバージョンは直接使用できませんが、マスクされたバージョンのlanewiseを介して取得できます。- パラメータ:
v- 2番目の入力ベクトル- 戻り値:
- このベクトルと次の入力ベクトルのビット単位の
& - 関連項目:
-
and
public final LongVector and(long e) このベクトルとスカラーのビット単位の論理積(&)を計算します。 これは、プリミティブなビット単位の演算(&)を対応するレーン値の各ペアに適用するレーンワイズ二項演算です。 このメソッドは、式lanewise(AND, e)とも同じです。- パラメータ:
e- 入力スカラー- 戻り値:
- このベクトルとスカラーのビット単位の
& - 関連項目:
-
or
public final LongVector or(Vector<Long> v) このベクトルと別の入力ベクトルのビット単位の論理和(|)を計算します。 これは、プリミティブなビット単位または演算(|)を対応するレーン値の各ペアに適用するレーンワイズ二項演算です。 このメソッドは、式lanewise(AND, v)とも同じです。これは、
addのようなフル・サービス名前付き演算ではありません。 この演算のマスクされたバージョンは直接使用できませんが、マスクされたバージョンのlanewiseを介して取得できます。- パラメータ:
v- 2番目の入力ベクトル- 戻り値:
- このベクトルと次の入力ベクトルのビット単位の
| - 関連項目:
-
or
public final LongVector or(long e) このベクトルとスカラーのビット単位の論理和(|)を計算します。 これは、プリミティブなビット単位または演算(|)を対応するレーン値の各ペアに適用するレーンワイズ二項演算です。 このメソッドは、式lanewise(OR, e)とも同じです。- パラメータ:
e- 入力スカラー- 戻り値:
- このベクトルとスカラーのビット単位の
| - 関連項目:
-
neg
public final LongVector neg() -
abs
public final LongVector abs() -
not
public final LongVector not()このベクトルのビット単位の論理補数(~)を計算します。 これは、プリミティブなビット単位の非演算(~)を各レーン値に適用するレーンワイズ二項演算です。 このメソッドは、式lanewise(NOT)とも同じです。これは、
addのようなフル・サービス名前付き演算ではありません。 この演算のマスクされたバージョンは直接使用できませんが、マスクされたバージョンのlanewiseを介して取得できます。- 戻り値:
- このベクトルのビット単位の補数
~ - 関連項目:
-
eq
public final VectorMask<Long> eq(Vector<Long> v) このベクトルが別の入力ベクトルと等しいかどうかを判定します。 これは、プリミティブ等価演算(==)を対応するレーン値の各ペアに適用するレーンワイズ二項テスト演算です。 結果はcompare(VectorOperators.EQ, v)と同じです。 -
eq
public final VectorMask<Long> eq(long e) このベクトルが入力スカラーと等しいかどうかを判定します。 これは、プリミティブ等価演算(==)を各レーンに適用するレーンワイズ二項テスト演算です。 結果はcompare(VectorOperators.Comparison.EQ, e)と同じです。- パラメータ:
e- 入力スカラー- 戻り値:
- このベクトルが
eと等しいかどうかを判定する結果マスク - 関連項目:
-
lt
public final VectorMask<Long> lt(Vector<Long> v) このベクトルが別の入力ベクトルより小さいかどうかを判定します。 これは、プリミティブなより小さい演算の(<)を各レーンに適用するレーンワイズ二項テスト演算です。 結果はcompare(VectorOperators.LT, v)と同じです。 -
lt
public final VectorMask<Long> lt(long e) このベクトルが入力スカラーより小さいかどうかを判定します。 これはレーンワイズ二項テスト演算で、(<)より小さいプリミティブを各レーンに適用します。 結果はcompare(VectorOperators.LT, e)と同じです。- パラメータ:
e- 入力スカラー- 戻り値:
- このベクトルが入力スカラーより小さいかどうかを判定したマスク結果
- 関連項目:
-
test
public abstract VectorMask<Long> test(VectorOperators.Test op) 指定された演算に従って、このベクトルのレーンをテストします。 これは、指定されたテスト演算を各レーン値に適用するレーンワイズ単項テスト演算です。 -
test
public abstract VectorMask<Long> test(VectorOperators.Test op, VectorMask<Long> m) 指定された演算に従って、このベクトルの選択されたレーンをテストします。 これは、指定されたテスト演算を各レーン値に適用する、マスクされたレーンワイズ単項テスト演算です。 返される結果は、式test(op).and(m)と同じです。 -
compare
public abstract VectorMask<Long> compare(VectorOperators.Comparison op, Vector<Long> v) 指定された比較演算に従って別の入力ベクトルと比較することによって、このベクトルをテストします。 これは、指定された比較演算を対応するレーン値の各ペアに適用するレーンワイズ二項テスト演算です。 -
compare
public abstract VectorMask<Long> compare(VectorOperators.Comparison op, long e) 指定された比較演算に従って入力スカラーと比較することによって、このベクトルをテストします。 これは、比較演算を各レーンに適用するレーンワイズ二項テスト演算です。結果は
compare(op, broadcast(species(), e))と同じです。 つまり、スカラーは、同じ種のベクトルにブロードキャストされたとみなされ、選択された比較演算を使用して元のベクトルと比較されます。 -
compare
public final VectorMask<Long> compare(VectorOperators.Comparison op, long e, VectorMask<Long> m) 指定された比較演算に従って、マスクによって選択されたレーン単位で入力スカラーと比較することによって、このベクトルをテストします。 これは、対応するレーン値の各ペアに適用される、マスクされたレーンワイズ二項テスト演算です。 返される結果は、式compare(op,s).and(m)と同じです。 -
blend
public abstract LongVector blend(Vector<Long> v, VectorMask<Long> m) このベクトルの選択されたレーンを、マスクの制御下にある2番目の入力ベクトルの対応するレーンに置き換えます。 これは、一方の入力から各レーン値を選択する、マスクされたレーンワイズ二項演算です。- マスク内のレーンsetでは、新しいレーン値が2番目の入力ベクトルから取得され、このベクトルのそのレーンにあった値が置き換えられます。
- マスク内のレーンunsetの場合、置換は抑制され、このベクトルはそのレーンに格納されている元の値を保持します。
Vector<E> a = ...; VectorSpecies<E> species = a.species(); Vector<E> b = ...; b.check(species); VectorMask<E> m = ...; ETYPE[] ar = a.toArray(); for (int i = 0; i < ar.length; i++) { if (m.laneIsSet(i)) { ar[i] = b.lane(i); } } return EVector.fromArray(s, ar, 0); -
addIndex
public abstract LongVector addIndex(int scale) 指定された定数でスケーリングされた、このベクトルのレーンを対応するレーン番号に追加します。 これはレーンワイズ単項演算で、レーンNごとにスケーリングされた索引値N*scaleを計算し、現在のベクトルのレーンNにすでに存在する値に追加します。ベクトル・レーン・タイプ
ETYPEを使用して結果が表される場合は、N*scaleまたはVLENGTH*scaleのいずれかを計算するときにオーバーフローが発生するように、スケールはそれほど大きくしないでください。また、要素サイズはそれほど小さくしないでください。次の疑似コードは、この動作を示しています:
Vector<E> a = ...; VectorSpecies<E> species = a.species(); ETYPE[] ar = a.toArray(); for (int i = 0; i < ar.length; i++) { long d = (long)i * scale; if (d != (ETYPE) d) throw ...; ar[i] += (ETYPE) d; } long d = (long)ar.length * scale; if (d != (ETYPE) d) throw ...; return EVector.fromArray(s, ar, 0); -
blend
public final LongVector blend(long e, VectorMask<Long> m) このベクトルの選択されたレーンを、マスクの制御下にあるスカラー値で置き換えます。 これは、一方の入力から各レーン値を選択する、マスクされたレーンワイズ二項演算です。 返される結果は、式blend(broadcast(e),m)と同じです。 -
slice
public abstract LongVector slice(int origin, Vector<Long> v1) 現在のベクトル内の指定されたoriginレーンから始まり、すぐ後のベクトルに(必要に応じて)を継続して、隣接するレーンのセグメントをスライスします。VLENGTHレーンのブロックが独自のベクトルに抽出され、返されます。これは、レーン要素を現在のベクトルと2番目のベクトルの間で正面に移動するクロス・レーン演算です。 どちらのベクトルも、スライスの抽出元となる長さ
2*VLENGTHの結合"background"として表示できます。 出力ベクトル内のレーン番号付きNは、入力ベクトルのレーンorigin+N(そのレーンが存在する場合)または第2ベクトル(存在することが保証されています)のレーンorigin+N-VLENGTHからコピーされます。origin値は、包括的な範囲の0..VLENGTHにする必要があります。 制限事項として、v.slice(0,w)およびv.slice(VLENGTH,w)は、それぞれvおよびwを返します。- パラメータ:
origin- スライスに転送する最初の入力レーンv1- スライスが(省略すると、デフォルトでゼロに設定されます)とみなされる前に、最初のベクトルと論理的に連結されたもう一方のベクトル- 戻り値:
- 指定された原点から開始し、(必要に応じて)を2番目のベクトルに継続する、このベクトルから取得された
VLENGTHレーンの連続するスライス - 関連項目:
-
slice
public final LongVector slice(int origin, Vector<Long> w, VectorMask<Long> m) マスクの制御下にある隣接レーンのセグメントをスライスします。現在のベクトル内の指定されたoriginレーンから開始し、(必要に応じて)を直後のベクトルに継続します。VLENGTHレーンのブロックが独自のベクトルに抽出され、返されます。 結果のベクトルは、指定されたマスクで設定されていないすべてのレーンでゼロになります。 マスクに設定されたレーンには、thisまたはv1の選択したレーンからコピーされたデータが含まれます。これは、レーン要素を現在のベクトルと2番目のベクトルの間で正面に移動するクロス・レーン演算です。 どちらのベクトルも、スライスの抽出元となる長さ
2*VLENGTHの結合"background"として表示できます。 返される結果は、式broadcast(0).blend(slice(origin,v1),m)と同じです。 -
slice
public abstract LongVector slice(int origin) 現在のベクトル内の指定されたoriginレーンから始まる隣接レーンのセグメントをスライスします。VLENGTHレーンのブロック(おそらくゼロのレーンが埋め込まれている)は、独自のベクトルに抽出されて返されます。 これは、ゼロ・レーンの拡張バックグラウンドに対して単一ベクトルからスライスする便利なメソッドです。 これは、slice(origin,broadcast(0))と同等です。 また、単に、ベクトルの終点にゼロが必要なレーンを埋めて、後のレーンから前のレーンへの横断シフトとして表示されることもあります。 このビューでは、シフト数はoriginです。- パラメータ:
origin- スライスに転送する最初の入力レーン- 戻り値:
- 最後の
VLENGTH-origin入力レーン。出力の最初のレーンから始まり、ゼロで最後にパディングされます - 関連項目:
-
unslice
public abstract LongVector unslice(int origin, Vector<Long> w, int part) slice()を逆にして、現在のベクトルを別の"background"入力ベクトル内のスライスとして挿入します。これは、後続の仮想slice()演算に対する一方または他方の入力とみなされます。これは、現在のベクトルのレーン要素を後方に向けるクロス・レーン演算で、バックグラウンド・ベクトルの論理ペアに挿入します。 ただし、いずれかのペアのみが返されます。 バックグラウンドは、2番目の入力ベクトルを複製することによって形成されます。 (ただし、出力に同じ入力レーンからの2つの重複が含まれることはありません。) 入力ベクトル内のレーン番号付き
Nは、最初のバックグラウンド・ベクトルが存在する場合はそのレーンorigin+Nにコピーされ、それ以外の場合は2番目のバックグラウンド・ベクトル(存在することが保証されています)のレーンorigin+N-VLENGTHにコピーされます。 挿入されたスライスで更新された最初または2番目のバックグラウンド・ベクトルが返されます。partの数値がゼロまたは1の場合は、最初または2番目に更新されたバックグラウンド・ベクトルが選択されます。origin値は、包括的な範囲の0..VLENGTHにする必要があります。 制限事項として、v.unslice(0,w,0)とv.unslice(VLENGTH,w,1)はどちらもvを返しますが、v.unslice(0,w,1)とv.unslice(VLENGTH,w,0)は両方ともwを返します。 -
unslice
public abstract LongVector unslice(int origin, Vector<Long> w, int part, VectorMask<Long> m) slice()を逆にして、現在のベクトルを別の"background"入力ベクトル内のスライスとして(マスクの制御下)に挿入します。これは、後続の仮想slice()演算に対する一方または他方の入力とみなされます。これは、現在のベクトルのレーン要素を前方に通し、そのレーン(マスクによって選択された場合)をバックグラウンド・ベクトルの論理ペアに挿入するクロス・レーン演算です。 このメソッドの「マスクされていないバージョン」と同様に、
part番号で選択されたペアのいずれか一方のみが返されます。 マスクによって選択されたレーンNごとに、レーン値が最初のバックグラウンド・ベクトルのレーンorigin+Nにコピーされます(そのレーンが存在する場合)。それ以外の場合は、2番目のバックグラウンド・ベクトル(存在することが保証されています)のレーンorigin+N-VLENGTHにコピーされます。 対応する入力レーンNがマスクで設定解除されている場合、バックグラウンド・レーンは元の値を保持します。 挿入されたスライスのセット・レーンで更新された最初または2番目のバックグラウンド・ベクトルが返されます。partの数値がゼロまたは1の場合は、最初または2番目に更新されたバックグラウンド・ベクトルが選択されます。 -
unslice
public abstract LongVector unslice(int origin) -
rearrange
public abstract LongVector rearrange(VectorShuffle<Long> m) 特定のシャッフルの制御下にあるレーンを選択して、このベクトルのレーン要素を再配置します。 これは、このベクトルのレーン要素を再配置するクロス・レーン演算です。 シャッフルのレーンNごと、およびシャッフル内のレーンのソース索引I=s.laneSource(N)ごとに、出力レーンNはレーンIの入力ベクトルから値を取得します。 -
rearrange
public abstract LongVector rearrange(VectorShuffle<Long> s, VectorMask<Long> m) 特定のシャッフルとマスクの制御下にあるレーンを選択して、このベクトルのレーン要素を再配置します。 これは、このベクトルのレーン要素を再配置するクロス・レーン演算です。 シャッフルのレーンNごと、およびシャッフル内のレーンのソース索引I=s.laneSource(N)ごとに、出力レーンNは、マスクが設定されている場合はレーンIの入力ベクトルから値を取得します。 それ以外の場合、出力レーンNはゼロに設定されます。このメソッドは、この擬似コードの値を返します:
Vector<E> r = this.rearrange(s.wrapIndexes()); VectorMask<E> valid = s.laneIsValid(); if (m.andNot(valid).anyTrue()) throw ...; return broadcast(0).blend(r, m); -
rearrange
public abstract LongVector rearrange(VectorShuffle<Long> s, Vector<Long> v) 特定のシャッフルの制御下にあるレーンを選択し、シャッフル内の通常のインデックスと例外的なインデックスの両方を使用して、2つのベクトルのレーン要素の位置を変更します。 これは、入力ベクトル(現在のベクトルともう一方のベクトルv)のレーン要素を再配置するクロス・レーン演算です。 シャッフルのレーンNごと、およびシャッフル内のレーンのソース索引I=s.laneSource(N)ごとに、出力レーンNは、I>=0の場合はレーンIの最初のベクトルから値を取得します。 それ以外の場合、例外的な索引Iは、VLENGTHを追加することでラップされ、索引I+VLENGTHでsecondベクトルの索引付けに使用されます。このメソッドは、この擬似コードの値を返します:
Vector<E> r1 = this.rearrange(s.wrapIndexes()); // or else: r1 = this.rearrange(s, s.laneIsValid()); Vector<E> r2 = v.rearrange(s.wrapIndexes()); return r2.blend(r1,s.laneIsValid()); -
compress
public abstract LongVector compress(VectorMask<Long> m) 特定のマスクのコントロールの下にあるレーンを選択する、このベクトルのレーン要素を圧縮します。 これは、指定されたマスクによって選択されたこのベクトルのレーン要素を圧縮するクロス・レーン演算です。 マスクの各レーンNについて、レーンNのマスクが設定されている場合、入力ベクトルのレーンNの要素が選択され、レーン0から開始して連続して出力ベクトルに格納されます。 出力ベクトルの残りのレーンがある場合は、すべてゼロに設定されます。 -
expand
public abstract LongVector expand(VectorMask<Long> m) このベクトルのレーン要素を特定のマスクの制御下で展開します。 これは、このベクトルの連続するレーン要素を、指定されたマスクによって選択された出力ベクトルのレーンに拡張するクロス・レーン演算です。 マスクの各レーンNについて、レーンNのマスクが設定されている場合、レーン0から始まる入力ベクトルの次の連続した要素が選択され、レーンNの出力ベクトルに格納されます。 出力ベクトルの残りのレーン(ある場合)はすべてゼロに設定されます。 -
selectFrom
public abstract LongVector selectFrom(Vector<Long> v) このベクトルのレーンに格納されている索引値を使用して、2番目のベクトルvに格納されている値をアセンブルします。 したがって、2番目のベクトルは表として機能し、その要素は現在のベクトルのインデックスによって選択されます。 これは、このベクトルの制御下で引数ベクトルのレーン要素を再配置するクロス・レーン演算です。 このベクトルのレーンNごと、およびこのベクトルのレーン値I=this.lane(N)ごとに、出力レーンNはレーンIの引数ベクトルから値を取得します。 このようにすると、結果には引数ベクトルvに格納されている値のみが含まれますが、thisの索引値に依存する順序で表示されます。 結果は、式v.rearrange(this.toShuffle())と同じです。- 定義:
- クラス
Vector<Long>のselectFrom - パラメータ:
v- 結果値を提供するベクトル- 戻り値:
vのレーン要素の再配置- 関連項目:
-
selectFrom
public abstract LongVector selectFrom(Vector<Long> s, VectorMask<Long> m) このベクトルのレーンに格納されているインデックス値を使用して、マスクの制御下で2番目のベクトルに格納されている値を組み立てます。 このベクトルのレーンに格納されている索引値を使用して、2番目のベクトルvに格納されている値をアセンブルします。 したがって、2番目のベクトルは表として機能し、その要素は現在のベクトルのインデックスによって選択されます。 マスクで設定されていないレーンは、表からの値ではなくゼロを受け取ります。 これは、このベクトルとマスクの制御下で、引数ベクトルのレーン要素を再配置するクロス・レーン演算です。 結果は、式v.rearrange(this.toShuffle(), m)と同じです。- 定義:
- クラス
Vector<Long>のselectFrom - パラメータ:
s- 結果値を提供するベクトルm-vからの選択を制御するマスク- 戻り値:
vのレーン要素の再配置- 関連項目:
-
bitwiseBlend
public final LongVector bitwiseBlend(Vector<Long> bits, Vector<Long> mask) マスク・ビットを提供する3番目のベクトルの制御下にある2つのベクトルのビットをブレンドします。 これは、各レーンに対してビット単位のブレンド演算(a&~c)|(b&c)を実行するレーンワイズ三項演算です。 このメソッドは、式lanewise(BITWISE_BLEND, bits, mask)とも同じです。- パラメータ:
bits- 現在のベクトルにブレンドする入力ビットmask- 入力ビットのブレンドを可能にするビット単位のマスク- 戻り値:
- ビット単位マスクの制御下にある、指定されたビットの現在のベクトルへのビット単位のブレンド
- 関連項目:
-
bitwiseBlend
public final LongVector bitwiseBlend(long bits, long mask) マスク・ビットを提供する別のスカラーの制御下にあるベクトルとスカラーのビットをブレンドします。 これは、各レーンに対してビット単位のブレンド演算(a&~c)|(b&c)を実行するレーンワイズ三項演算です。 このメソッドは、式lanewise(BITWISE_BLEND, bits, mask)とも同じです。- パラメータ:
bits- 現在のベクトルにブレンドする入力ビットmask- 入力ビットのブレンドを可能にするビット単位のマスク- 戻り値:
- ビット単位マスクの制御下にある、指定されたビットの現在のベクトルへのビット単位のブレンド
- 関連項目:
-
bitwiseBlend
public final LongVector bitwiseBlend(long bits, Vector<Long> mask) マスク・ビットを提供する別のベクトルの制御下にあるベクトルとスカラーのビットをブレンドします。 これは、各レーンに対してビット単位のブレンド演算(a&~c)|(b&c)を実行するレーンワイズ三項演算です。 このメソッドは、式lanewise(BITWISE_BLEND, bits, mask)とも同じです。- パラメータ:
bits- 現在のベクトルにブレンドする入力ビットmask- 入力ビットのブレンドを可能にするビット単位のマスク- 戻り値:
- ビット単位マスクの制御下にある、指定されたビットの現在のベクトルへのビット単位のブレンド
- 関連項目:
-
bitwiseBlend
public final LongVector bitwiseBlend(Vector<Long> bits, long mask) マスク・ビットを提供するスカラーの制御下にある2つのベクトルのビットをブレンドします。 これは、各レーンに対してビット単位のブレンド演算(a&~c)|(b&c)を実行するレーンワイズ三項演算です。 このメソッドは、式lanewise(BITWISE_BLEND, bits, mask)とも同じです。- パラメータ:
bits- 現在のベクトルにブレンドする入力ビットmask- 入力ビットのブレンドを可能にするビット単位のマスク- 戻り値:
- ビット単位マスクの制御下にある、指定されたビットの現在のベクトルへのビット単位のブレンド
- 関連項目:
-
reduceLanes
public abstract long reduceLanes(VectorOperators.Associative op) このベクトルのすべてのレーンから累積された値を返します。 これは、指定された演算をすべてのレーン要素に適用する、関連するクロス・レーン削減演算です。いくつかのリダクション演算はオペランドの任意の並替えをサポートしていませんが、有用性のためにここに含まれています。
-
FIRST_NONZEROの場合、リダクションは最小番号のゼロ以外のレーンから値を返します。 - その他のリダクション演算はすべて、完全に可換的であり、連想的です。 実装では任意の処理順序を選択できますが、常に同じ結果が生成されます。
- パラメータ:
op- レーン値を結合するために使用される演算- 戻り値:
- 累積結果
- スロー:
UnsupportedOperationException- このベクトルがリクエストされた演算をサポートしていない場合- 関連項目:
-
-
reduceLanes
public abstract long reduceLanes(VectorOperators.Associative op, VectorMask<Long> m) マスクによって制御される、このベクトルの選択されたレーンから累積された値を返します。 これは、指定した工程を選択したレーン要素に適用する、関連するクロス・レーン短縮演算です。要素が選択されていない場合は、演算固有のアイデンティティ値が返されます。
-
演算が
ADD,XOR,ORまたはFIRST_NONZEROの場合、アイデンティティ値はゼロ(デフォルトのlong値)です。 -
演算が
MULの場合、アイデンティティ値はいずれかです。 -
演算が
ANDの場合、アイデンティティ値は単一の(すべてのビット・セット)を引いた値になります。 -
演算が
MAXの場合、アイデンティティ値はLong.MIN_VALUEです。 -
演算が
MINの場合、アイデンティティ値はLong.MAX_VALUEです。
いくつかのリダクション演算はオペランドの任意の並替えをサポートしていませんが、有用性のためにここに含まれています。
-
FIRST_NONZEROの場合、リダクションは最小番号のゼロ以外のレーンから値を返します。 - その他のリダクション演算はすべて、完全に可換的であり、連想的です。 実装では任意の処理順序を選択できますが、常に同じ結果が生成されます。
- パラメータ:
op- レーン値を結合するために使用される演算m- マスク制御レーンの選択- 戻り値:
- 選択されたレーン値から累積された還元結果
- スロー:
UnsupportedOperationException- このベクトルがリクエストされた演算をサポートしていない場合- 関連項目:
-
演算が
-
lane
public abstract long lane(int i) レーン索引iのレーン要素を取得- パラメータ:
i- レーンのインデックス- 戻り値:
- レーン索引
iのレーン要素 - スロー:
IllegalArgumentException- 索引が範囲外の(< 0 || >= length())の場合
-
withLane
public abstract LongVector withLane(int i, long e) レーン索引iにあるこのベクトルのレーン要素を値eに置き換えます。 これはクロス・レーン演算であり、このベクトルを、eをブロードキャストした結果である入力ベクトルおよびレーン索引iでレーンが1つのみ設定されているマスクとブレンドした結果を返すかのように動作します。- パラメータ:
i- 置換されるレーン要素のレーン索引e- 配置される値- 戻り値:
- レーン索引
iにあるこのベクトルのレーン要素を値eで置き換えた結果。 - スロー:
IllegalArgumentException- 索引が範囲外の(< 0 || >= length())の場合
-
toArray
public final long[] toArray()すべてのレーン値を含むlong[]型の配列を返します。 配列の長さはベクトルの長さと同じです。 配列要素はレーン順に格納されます。このメソッドは、このベクトルを割り当てられた配列(
intoArrayを使用して)に格納する場合と同様に動作し、次のように配列を返します:long[] a = new long[this.length()]; this.intoArray(a, 0); return a; -
toIntArray
public final int[] toIntArray()int型に変換された、すべてのレーン値を含むint[]配列を返します。 配列の長さはベクトルの長さと同じです。 配列要素は、キャストによって変換され、レーン順に格納されます。 レーンに小数値または範囲外の値が含まれる場合、ベクトル要素タイプがfloatまたはdoubleの場合、この演算は失敗する可能性があります。 ベクトル・レーン値がintとして表現できない場合は、例外がスローされます。- 定義:
- クラス
Vector<Long>のtoIntArray - 戻り値:
- このベクトルのレーン値を含む
int[]配列 - 関連項目:
-
toLongArray
public final long[] toLongArray()long型に変換された、すべてのレーン値を含むlong[]配列を返します。 配列の長さはベクトルの長さと同じです。 配列要素は、キャストによって変換され、レーン順に格納されます。 レーンに小数値または範囲外の値が含まれる場合、ベクトル要素タイプがfloatまたはdoubleの場合、この演算は失敗する可能性があります。 ベクトル・レーン値がlongとして表現できない場合は、例外がスローされます。 これはtoArray()の別名です。このメソッドをLongVector型のベクトルで使用すると、範囲や精度は失われません。- 定義:
- クラス
Vector<Long>のtoLongArray - 戻り値:
- このベクトルのレーン値を含む
long[]配列 - 関連項目:
-
toDoubleArray
public final double[] toDoubleArray()double型に変換された、すべてのレーン値を含むdouble[]配列を返します。 配列の長さはベクトルの長さと同じです。 配列要素は、キャストによって変換され、レーン順に格納されます。 ベクトル要素タイプがlongの場合、この演算によって精度が失われる可能性があります。- 定義:
- クラス
Vector<Long>のtoDoubleArray - 実装上のノート:
- このメソッドを
LongVectorタイプのベクトルで使用すると、最大9ビットの精度が大きいレーン値に対して失われる可能性があります。 - 戻り値:
- このベクトルのレーン値を含む
double[]配列。表現可能なdouble値に丸められる可能性がある - 関連項目:
-
fromArray
public static LongVector fromArray(VectorSpecies<Long> species, long[] a, int offset) オフセットから始まるlong[]型の配列からベクトルをロードします。Nがベクトル・レーン索引であるベクトル・レーンごとに、索引offset + Nの配列要素がレーン索引Nの結果のベクトルに配置されます。- パラメータ:
species- 希望するベクトルの種a- 配列offset- 配列へのオフセット- 戻り値:
- 配列からロードされたベクトル
- スロー:
IndexOutOfBoundsException- ベクトル内のレーンNのoffset+N < 0またはoffset+N >= a.lengthの場合
-
fromArray
public static LongVector fromArray(VectorSpecies<Long> species, long[] a, int offset, VectorMask<Long> m) オフセットからマスクを使用して、long[]型の配列からベクトルをロードします。 マスクが設定されていないレーンには、デフォルト値のlong(zero)が設定されます。Nがベクトル・レーン索引であるベクトル・レーンごとに、索引Nのマスク・レーンが設定されている場合、索引offset + Nの配列要素はレーン索引Nの結果のベクトルに配置されます。それ以外の場合、デフォルトの要素値はレーン索引Nの結果のベクトルに配置されます。- パラメータ:
species- 希望するベクトルの種a- 配列offset- 配列へのオフセットm- マスク制御レーンの選択- 戻り値:
- 配列からロードされたベクトル
- スロー:
IndexOutOfBoundsException- マスクが設定されているベクトル内のレーンNのoffset+N < 0またはoffset+N >= a.lengthの場合
-
fromArray
public static LongVector fromArray(VectorSpecies<Long> species, long[] a, int offset, int[] indexMap, int mapOffset) 「索引マップ」から一連のセカンダリ・オフセットに固定offsetを追加して取得した索引を使用して、long[]タイプの配列から要素で構成される新しいベクトルを収集します。 索引マップは、指定されたmapOffsetから始まる、intの別の配列におけるVLENGTH要素の連続したシーケンスです。Nがベクトル・レーン索引であるベクトル・レーンごとに、配列要素a[f(N)]からレーンがロードされます。ここで、f(N)は索引マッピング式offset + indexMap[mapOffset + N]]です。- パラメータ:
species- 希望するベクトルの種a- 配列offset- 配列へのオフセット。インデックス・マップ内の相対インデックスが配列境界内の値を生成するよう補正する場合は負の値になることがあるindexMap- インデックス・マップmapOffset- インデックス・マップへのオフセット- 戻り値:
- 配列のインデックス付き要素からロードされたベクトル
- スロー:
IndexOutOfBoundsException-mapOffset+N < 0の場合、またはmapOffset+N >= indexMap.lengthの場合、またはf(N)=offset+indexMap[mapOffset+N]がaへの無効な索引である場合は、ベクトル内のレーンN- 関連項目:
-
fromArray
public static LongVector fromArray(VectorSpecies<Long> species, long[] a, int offset, int[] indexMap, int mapOffset, VectorMask<Long> m) マスクの制御下にあるlong[]型の配列から要素で構成される新しいベクトルを収集し、「索引マップ」から一連のセカンダリ・オフセットに固定offsetを追加して取得した索引を使用します。 索引マップは、指定されたmapOffsetから始まる、intの別の配列におけるVLENGTH要素の連続したシーケンスです。Nがベクトル・レーン索引であるベクトル・レーンごとに、レーンがマスクに設定されている場合、そのレーンは配列要素a[f(N)]からロードされます。ここで、f(N)は索引マッピング式offset + indexMap[mapOffset + N]]です。 結果のベクトルのレーンの設定を解除すると、ゼロに設定されます。- パラメータ:
species- 希望するベクトルの種a- 配列offset- 配列へのオフセット。インデックス・マップ内の相対インデックスが配列境界内の値を生成するよう補正する場合は負の値になることがあるindexMap- インデックス・マップmapOffset- インデックス・マップへのオフセットm- マスク制御レーンの選択- 戻り値:
- 配列のインデックス付き要素からロードされたベクトル
- スロー:
IndexOutOfBoundsException-mapOffset+N < 0の場合、またはmapOffset+N >= indexMap.lengthの場合、あるいはf(N)=offset+indexMap[mapOffset+N]がaへの無効な索引である場合は、マスクが設定されているベクトル内のレーンN- 関連項目:
-
fromMemorySegment
public static LongVector fromMemorySegment(VectorSpecies<Long> species, MemorySegmentPREVIEW ms, long offset, ByteOrder bo) オフセットから始まる「メモリー・セグメント」PREVIEWからメモリー・セグメントにベクトルをロードします。 バイトは、指定されたバイト順序に従ってプリミティブなレーン要素に構成されます。 ベクトルは、「メモリーの順序」に従ってレーンに配置されます。このメソッドは、次のように
fromMemorySegment()PREVIEWをコールした結果を返すかのように動作します:var m = species.maskAll(true); return fromMemorySegment(species, ms, offset, bo, m);- パラメータ:
species- 希望するベクトルの種ms- メモリー・セグメントoffset- メモリー・セグメントへのオフセットbo- 目的のバイト・オーダー- 戻り値:
- メモリー・セグメントから読み込まれたベクトル
- スロー:
IndexOutOfBoundsException- ベクトル内のレーンNのoffset+N*8 < 0またはoffset+N*8 >= ms.byteSize()の場合IllegalArgumentException- メモリー・セグメントがbyte[]配列によって支えられていないヒープ・セグメントである場合。IllegalStateException- メモリー・セグメント・セッションが有効でない場合、またはセッションを所有しているスレッド以外のスレッドからアクセスが発生した場合。- 導入されたバージョン:
- 19
-
fromMemorySegment
public static LongVector fromMemorySegment(VectorSpecies<Long> species, MemorySegmentPREVIEW ms, long offset, ByteOrder bo, VectorMask<Long> m) オフセットから始まる「メモリー・セグメント」PREVIEWからメモリー・セグメントにベクトルをロードし、マスクを使用します。 マスクが設定されていないレーンには、デフォルト値のlong(zero)が設定されます。 バイトは、指定されたバイト順序に従ってプリミティブなレーン要素に構成されます。 ベクトルは、「メモリーの順序」に従ってレーンに配置されます。次の疑似コードは、この動作を示しています:
var slice = ms.asSlice(offset); long[] ar = new long[species.length()]; for (int n = 0; n < ar.length; n++) { if (m.laneIsSet(n)) { ar[n] = slice.getAtIndex(ValuaLayout.JAVA_LONG.withByteAlignment(1), n); } } LongVector r = LongVector.fromArray(species, ar, 0);- 実装上のノート:
- このメソッドはレーン値のバイトを並べ替える必要がないため、指定されたバイト順序が「プラットフォームのネイティブ順序」と同じ場合は、この演算がより効率的になる可能性があります。
- パラメータ:
species- 希望するベクトルの種ms- メモリー・セグメントoffset- メモリー・セグメントへのオフセットbo- 目的のバイト・オーダーm- マスク制御レーンの選択- 戻り値:
- メモリー・セグメントから読み込まれたベクトル
- スロー:
IndexOutOfBoundsException- マスクが設定されているベクトル内のレーンNのoffset+N*8 < 0またはoffset+N*8 >= ms.byteSize()の場合IllegalArgumentException- メモリー・セグメントがbyte[]配列によって支えられていないヒープ・セグメントである場合。IllegalStateException- メモリー・セグメント・セッションが有効でない場合、またはセッションを所有しているスレッド以外のスレッドからアクセスが発生した場合。- 導入されたバージョン:
- 19
-
intoArray
public final void intoArray(long[] a, int offset) このベクトルをオフセットから始まるlong[]型の配列に格納します。Nがベクトル・レーン索引であるベクトル・レーンごとに、索引Nのレーン要素が配列要素a[offset+N]に格納されます。- パラメータ:
a-long[]型の配列offset- 配列へのオフセット- スロー:
IndexOutOfBoundsException- ベクトル内のレーンNのoffset+N < 0またはoffset+N >= a.lengthの場合
-
intoArray
public final void intoArray(long[] a, int offset, VectorMask<Long> m) このベクトルを、オフセットから始めてマスクを使用するlong[]型の配列に格納します。Nがベクトル・レーン索引であるベクトル・レーンごとに、索引Nのレーン要素が配列要素a[offset+N]に格納されます。Nのマスク・レーンが設定されていない場合、対応する配列要素a[offset+N]は変更されません。配列範囲チェックは、マスクが設定されているレーンに対して実行されます。 マスクが設定されていないレーンは格納されず、
aの正当な要素に対応する必要はありません。 つまり、未設定レーンは、ゼロ未満または配列の終わりを超える配列インデックスに対応している可能性があります。- パラメータ:
a-long[]型の配列offset- 配列へのオフセットm- マスク制御レーンのストレージ- スロー:
IndexOutOfBoundsException- マスクが設定されているベクトル内のレーンNのoffset+N < 0またはoffset+N >= a.lengthの場合
-
intoArray
public final void intoArray(long[] a, int offset, int[] indexMap, int mapOffset) 「索引マップ」から一連のセカンダリ・オフセットに固定offsetを追加して取得した索引を使用して、このベクトルをlong[]型の配列に分散します。 索引マップは、指定されたmapOffsetから始まる、intの別の配列におけるVLENGTH要素の連続したシーケンスです。Nがベクトル・レーン索引であるベクトル・レーンごとに、索引Nのレーン要素が配列要素a[f(N)]に格納されます。ここで、f(N)は索引マッピング式offset + indexMap[mapOffset + N]]です。- パラメータ:
a- 配列offset- インデックス・マップ・オフセットと組み合わせるオフセットindexMap- インデックス・マップmapOffset- インデックス・マップへのオフセット- スロー:
IndexOutOfBoundsException-mapOffset+N < 0の場合、またはmapOffset+N >= indexMap.lengthの場合、またはf(N)=offset+indexMap[mapOffset+N]がaへの無効な索引である場合は、ベクトル内のレーンN- 関連項目:
-
intoArray
public final void intoArray(long[] a, int offset, int[] indexMap, int mapOffset, VectorMask<Long> m) このベクトルを、マスクの制御下にあるlong[]型の配列に分散し、「索引マップ」から一連のセカンダリ・オフセットに固定offsetを追加して取得した索引を使用します。 索引マップは、指定されたmapOffsetから始まる、intの別の配列におけるVLENGTH要素の連続したシーケンスです。Nがベクトル・レーン索引であるベクトル・レーンごとに、索引Nのマスク・レーンが設定されている場合、索引Nのレーン要素が配列要素a[f(N)]に格納されます。ここで、f(N)は索引マッピング式offset + indexMap[mapOffset + N]]です。- パラメータ:
a- 配列offset- インデックス・マップ・オフセットと組み合わせるオフセットindexMap- インデックス・マップmapOffset- インデックス・マップへのオフセットm- マスク- スロー:
IndexOutOfBoundsException-mapOffset+N < 0の場合、またはmapOffset+N >= indexMap.lengthの場合、あるいはf(N)=offset+indexMap[mapOffset+N]がaへの無効な索引である場合は、マスクが設定されているベクトル内のレーンN- 関連項目:
-
intoMemorySegment
public final void intoMemorySegment(MemorySegmentPREVIEW ms, long offset, ByteOrder bo) このベクトルを、明示的なバイト順序を使用してオフセットから始まる「メモリー・セグメント」PREVIEWに格納します。バイトは、指定されたバイト順序に従ってプリミティブ・レーン要素から抽出されます。 レーンは、その「メモリーの順序」に従って格納されます。
このメソッドは、次のように
intoMemorySegment()PREVIEWをコールする場合と同様に動作します:var m = maskAll(true); intoMemorySegment(ms, offset, bo, m);- 定義:
- クラス
Vector<Long>のintoMemorySegment - パラメータ:
ms- メモリー・セグメントoffset- メモリー・セグメントへのオフセットbo- 目的のバイト・オーダー- 導入されたバージョン:
- 19
-
intoMemorySegment
public final void intoMemorySegment(MemorySegmentPREVIEW ms, long offset, ByteOrder bo, VectorMask<Long> m) 明示的なバイト順序とマスクを使用してオフセットから始まる「メモリー・セグメント」PREVIEWにこのベクトルを格納します。バイトは、指定されたバイト順序に従ってプリミティブ・レーン要素から抽出されます。 レーンは、その「メモリーの順序」に従って格納されます。
次の疑似コードは動作を示しています。ここで、
JAVA_Eはプリミティブ要素タイプのレイアウト、ETYPEはプリミティブ要素タイプ、EVectorはこのベクトルのプリミティブ・ベクトル・タイプです:ETYPE[] a = this.toArray(); var slice = ms.asSlice(offset) for (int n = 0; n < a.length; n++) { if (m.laneIsSet(n)) { slice.setAtIndex(ValueLayout.JAVA_E.withBitAlignment(8), n); } }- 定義:
- クラス
Vector<Long>のintoMemorySegment - パラメータ:
ms- メモリー・セグメントoffset- メモリー・セグメントへのオフセットbo- 目的のバイト・オーダーm- マスク制御レーンの選択- 導入されたバージョン:
- 19
-
reinterpretAsBytes
public final ByteVector reinterpretAsBytes()このベクトルを同じシェイプと内容のベクトルとして表示しますが、レーン型のbyteでは、バイトはリトル・エンディアンの順序に従ってレーンから抽出されます。 これは、式reinterpretShape(species().withLanes(byte.class))の簡易メソッドです。 これは、Vector.reinterpretAsInts()など、同じベクトル内の大きいレーンにバイトを統合する様々なメソッドとは逆であると考えられます。- 定義:
- クラス
Vector<Long>のreinterpretAsBytes - 戻り値:
- 同じシェイプおよび情報コンテンツを持つ
ByteVector - 関連項目:
-
viewAsIntegralLanes
public final LongVector viewAsIntegralLanes()このベクトルを同じシェイプ、長さ、内容のベクトルとして表示しますが、レーン型は浮動小数点型ではありません。 これは、レーン値にキャストされたレーンワイズの再解釈です。 したがって、このメソッドはVSHAPEまたはVLENGTHを変更せず、ベクトルのビット単位の内容は変更されません。 ベクトルETYPEがすでに整数型である場合、同じベクトルが変更されずに返されます。 このメソッドは、この式の値を戻します:convert(conv,0)。ここで、convはVectorOperators.Conversion.ofReinterpret(E.class,F.class)で、FはEと同じサイズの非浮動小数点型です。- 定義:
- クラス
Vector<Long>のviewAsIntegralLanes - 戻り値:
- 非浮動小数点として再解釈された、元のベクトル
- 関連項目:
-
viewAsFloatingLanes
public final DoubleVector viewAsFloatingLanes()このベクトルを同じシェイプ、長さ、内容のベクトルとして表示しますが、レーン型は浮動小数点型です。 これは、レーン値にキャストされたレーンワイズの再解釈です。 したがって、このメソッドはVSHAPEまたはVLENGTHを変更せず、ベクトルのビット単位の内容は変更されません。 ベクトルETYPEがすでに浮動小数点型である場合、同じベクトルが変更されずに返されます。 ベクトル要素のサイズが浮動小数点型のサイズと一致しない場合は、IllegalArgumentExceptionがスローされます。 このメソッドは、この式の値を戻します:convert(conv,0)。convはVectorOperators.Conversion.ofReinterpret(E.class,F.class)で、FはEと同じサイズの浮動小数点型です(存在する場合)。- 定義:
- クラス
Vector<Long>のviewAsFloatingLanes - 戻り値:
- 浮動小数点として再解釈された、元のベクトル
- 関連項目:
-
toString
public final String toString()このベクトルのレーン値をレーン順に報告する、"[0,1,2...]"形式のこのベクトルの文字列表現を返します。 この文字列は、this.toArray()から返されるlong配列に応じて、Arrays.toString()へのコールによって生成されるかのように生成されます。 -
equals
public final boolean equals(Object obj) このベクトルが他のオブジェクトと同一かどうかを示します。 2つのベクトルは、同じ種と同じレーン値を同じ順序で持つ場合にのみ同一です。レーン値の比較は、両方のベクトルの
toArray()によって返される配列に応じて、Arrays.equals()をコールした場合と同様に生成されます。 -
hashCode
public final int hashCode()レーン値とベクトル種に基づいて、ベクトルのハッシュ・コード値を返します。 -
species
public final VectorSpecies<Long> species()クラス:Vectorからコピーされた説明このベクトルの種を返します。 -
check
public final <F> Vector<F> check(VectorSpecies<F> species) クラス:Vectorからコピーされた説明このベクトルが指定された種を持っているかどうかを判定し、このベクトルをそのまま返します。 効果は次の疑似コードのようになります :species == species() ? this : throw new ClassCastException()。 -
check
このベクトルが指定された要素型を持つことを確認し、このベクトルを変更せずに返します。 効果は次の疑似コードのようになります :elementType == species().elementType() ? this : throw new ClassCastException()。 -
maskAll
public final VectorMask<Long> maskAll(boolean bit) このベクトルと同じ種のマスクを返します。各レーンは、すべてのレーンにブロードキャストされる指定された単一のbooleanに従って設定または設定解除されます。このメソッドは、この式の値を戻します:
species().maskAll(bit)。 -
reinterpretAsShorts
public ShortVector reinterpretAsShorts()このベクトルを、同じシェイプおよび内容でレーン型のshortのベクトルとして再解釈します。レーンはリトル・エンディアンの順序に従って連続したバイトから組み立てられます。 これは、式reinterpretShape(species().withLanes(short.class))の簡易メソッドです。Vector.reinterpretAsBytes()とは逆の場合があります。- 定義:
- クラス
Vector<E>のreinterpretAsShorts - 戻り値:
- 同じシェイプおよび情報コンテンツを持つ
ShortVector
-
reinterpretAsInts
public IntVector reinterpretAsInts()このベクトルを、同じシェイプおよび内容でレーン型のintのベクトルとして再解釈します。レーンはリトル・エンディアンの順序に従って連続したバイトから組み立てられます。 これは、式reinterpretShape(species().withLanes(int.class))の簡易メソッドです。Vector.reinterpretAsBytes()とは逆の場合があります。- 定義:
- クラス
Vector<E>のreinterpretAsInts - 戻り値:
- 同じシェイプおよび情報コンテンツを持つ
IntVector
-
reinterpretAsLongs
public LongVector reinterpretAsLongs()このベクトルを、同じシェイプおよび内容でレーン型のlongのベクトルとして再解釈します。レーンはリトル・エンディアンの順序に従って連続したバイトから組み立てられます。 これは、式reinterpretShape(species().withLanes(long.class))の簡易メソッドです。Vector.reinterpretAsBytes()とは逆の場合があります。- 定義:
- クラス
Vector<E>のreinterpretAsLongs - 戻り値:
- 同じシェイプおよび情報コンテンツを持つ
LongVector
-
reinterpretAsFloats
public FloatVector reinterpretAsFloats()このベクトルを、同じシェイプおよび内容でレーン型のfloatのベクトルとして再解釈します。レーンはリトル・エンディアンの順序に従って連続したバイトから組み立てられます。 これは、式reinterpretShape(species().withLanes(float.class))の簡易メソッドです。Vector.reinterpretAsBytes()とは逆の場合があります。- 定義:
- クラス
Vector<E>のreinterpretAsFloats - 戻り値:
- 同じシェイプおよび情報コンテンツを持つ
FloatVector
-
reinterpretAsDoubles
public DoubleVector reinterpretAsDoubles()このベクトルを、同じシェイプおよび内容でレーン型のdoubleのベクトルとして再解釈します。レーンはリトル・エンディアンの順序に従って連続したバイトから組み立てられます。 これは、式reinterpretShape(species().withLanes(double.class))の簡易メソッドです。Vector.reinterpretAsBytes()とは逆の場合があります。- 定義:
- クラス
Vector<E>のreinterpretAsDoubles - 戻り値:
- 同じシェイプおよび情報コンテンツを持つ
DoubleVector
-
convert
public final <F> Vector<F> convert(VectorOperators.Conversion<Long, F> conv, int part) 指定された「変換」に従って、このベクトルを同じシェイプのベクトルおよび新しい要素タイプに変換し、レーン値を現在のETYPEから新しいレーン型の(ここではFTYPEと呼びます)に変換します。 これは、入力ベクトルから結果内の対応するFTYPE値にETYPE値をコピーするレーンワイズ・シェイプ不変演算です。 選択した変換に応じて、この演算によって「拡大または縮小」の論理結果が生成される場合があります。その場合、ゼロ以外のpart番号によって、論理結果の選択および物理出力ベクトルへのリングをさらに制御できます。個々の変換は、
VectorOperatorsクラスの変換定数によって記述されます。 各変換演算子には、指定された「ドメイン・タイプ」および「範囲タイプ」があります。 ドメイン・タイプは入力ベクトルのレーン・タイプと完全に一致する必要があり、範囲タイプは出力ベクトルのレーン・タイプを決定します。変換演算子は、そのドメイン型のビット・サイズが(respectively)の範囲型のビット・サイズと等しいか、小さいか、大きいかによって、(respectively)のインプレース、拡張または縮小として分類されます。
変換演算は、変換によって表現ビットが変更されていないかどうかに応じて再入力または値変換として分類することも、入力値の論理値を(一部またはすべて)に保持するために表現ビットを変更することもできます。
再解釈変換縮小の場合は、入力の上位ビットが切り捨てられます。 対応する入力ビットがない場合は、拡張すると出力の上位ビットにゼロ・ビットが埋め込まれます。
S2I(short値をintに)などの拡張変換では、スカラー値が使用され、より大きい形式の(情報の冗長性を常に確保)で表されます。D2F(double値をfloatに)などの縮小変換では、スカラー値が使用され、より小さい形式の(情報が失われた場合は常に)で表されます。 一部のインプレース変換には、L2D(long値をdoubleに)やF2I(float値をintに)などの情報損失が含まれる場合もあります。 インプレース変換の再解釈は、ビット単位の値が出力タイプである程度正当でない場合を除き、失われることはありません。NaNのビット・パターンを変換すると、NaNの意味からビットが破棄されることがあります。この分類は、特に記載のないかぎり、「レーン・サイズ」の変更方法に関係なく変換演算「ベクトル・シェイプを変更しない」で重要です。 したがって、「拡張」変換では、そのすべての結果を出力ベクトルに格納できません。これは、入力と同じ全体的なビット・サイズにするために、出力ベクトルのレーンのサイズが小さくなるためです。 同様に、縮小変換では、比較的小さい結果を出力ベクトルのレーンのサブセットに格納し、未使用レーンをゼロにデフォルト設定する必要があります。
たとえば、
byteからlong(M=8)への変換では、残りの12.5%を出力ベクトルのroomylongレーンに変換するために、入力値の87.5%が破棄されます。 逆変換では、大きな結果がすべて変換されますが、出力ベクトル内のレーンの87.5 %が無駄になります。 In-place変換(M=1)は、レーンを無駄にせずに、すべての結果を単一の出力ベクトルで配信します。これらの「拡張と縮小」の詳細を管理するには、ゼロ以外の
partパラメータを使用して、拡張から部分的な結果を選択するか、次のように対応するロケーションに縮小の結果をステアします:-
Mによる拡張:partは[0..M-1]の範囲内にある必要があり、part*VLENGTH/Mの原点レーンから始まるVLENGTH/M入力レーンのブロックを選択します。VLENGTH/M出力レーンは、変換の論理結果全体の一部を表し、物理出力ベクトル全体を埋めます。 -
Mで縮小:partは[-M+1..0]の範囲内にある必要があり、原点レーン-part*VLENGTHにある出力にすべてのVLENGTH入力レーンをステアします。 合計VLENGTH*M出力レーンがあり、変換された入力値を保持していない出力レーンにはゼロが入力されます。このような出力ベクトルのグループは、論理結果部分が無関係なブロックに盗まれた状態で、「ビット単位または」または(浮動小数点)の
FIRST_NONZERO演算子を使用して再アセンブルできます。 - in-place (
M=1):partはゼロである必要があります。 どちらのベクトルも同じVLENGTHを持ちます。 結果は常にゼロの「原点レーン」に配置されます。
このメソッドは、より一般的ですが、使用頻度の低いshape-changingメソッド
convertShape()の制限付きバージョンです。 このメソッドの結果は、出力種がrsp=this.species().withLanes(FTYPE.class)である式this.convertShape(conv, rsp, this.broadcast(part))と同じです。 -
-
castShape
public final <F> Vector<F> castShape(VectorSpecies<F> toSpecies, int part) ベクトルをあるレーン・タイプから別のレーン・タイプに変換する便利なメソッドで、レーン・サイズが変更されたときに必要に応じてシェイプを変更します。 このメソッドは、この式の値を戻します:convertShape(conv,rsp,part)。convはVectorOperators.Conversion.ofCast(E.class,F.class)です。新旧の種のシェイプが異なる場合、これはshape-changing演算であり、特別な実装コストがかかる可能性があります。
-
convertShape
public abstract <F> Vector<F> convertShape(VectorOperators.Conversion<Long, F> conv, VectorSpecies<F> rsp, int part) 指定された「変換」に従って、このベクトルを指定された種、シェイプ、および要素型のベクトルに変換し、レーン値を現在のETYPEから新しいレーン型(ここではFTYPEと呼びます)に変換します。 これは、入力ベクトルから結果内の対応するFTYPE値にETYPE値をコピーするレーンワイズ演算です。新旧の種のシェイプが同じ場合、その動作は単純なシェイプ不変メソッド
convert()とまったく同じです。 このような場合は、コードの理由を簡単にするために、より単純なメソッドconvert()を使用する必要があります。 それ以外の場合、これはshape-changing演算であり、特別な実装コストがかかる可能性があります。シェイプの変更とレーンのサイズの変更を組み合せた効果として、入出力種のレーン数が異なる場合があり、その場合は「拡大または縮小」が発生します。 この場合、ゼロ以外の
partパラメータは、拡張された論理結果から部分的な結果を選択するか、縮小された論理結果の結果を必要な出力種の物理出力ベクトルにステアします。次の擬似コードは、インプレース、拡張および縮小変換に対するこのメソッドの動作を示しています。 (この擬似コードはシェイプ不変メソッドにも適用されますが、出力種にはシェイプ制限があります。) 変換演算子とシェイプの特定の組合せに関連するのは、3つのコード・パスのうちの1つのみです。
FTYPE scalar_conversion_op(ETYPE s); EVector a = ...; VectorSpecies<F> rsp = ...; int part = ...; VectorSpecies<E> dsp = a.species(); int domlen = dsp.length(); int ranlen = rsp.length(); FTYPE[] logical = new FTYPE[domlen]; for (int i = 0; i < domlen; i++) { logical[i] = scalar_conversion_op(a.lane(i)); } FTYPE[] physical; if (domlen == ranlen) { // in-place assert part == 0; //else AIOOBE physical = logical; } else if (domlen > ranlen) { // expanding int M = domlen / ranlen; assert 0 <= part && part < M; //else AIOOBE int origin = part * ranlen; physical = Arrays.copyOfRange(logical, origin, origin + ranlen); } else { // (domlen < ranlen) // contracting int M = ranlen / domlen; assert 0 >= part && part > -M; //else AIOOBE int origin = -part * domlen; System.arraycopy(logical, 0, physical, origin, domlen); } return FVector.fromArray(ran, physical, 0);- 定義:
- クラス
Vector<E>のconvertShape - 型パラメータ:
F- 出力種のboxed要素型- パラメータ:
conv- レーンワイズ適用に必要なスカラー変換rsp- 目的の出力種part- 結果の「パーツ番号」。拡張も縮小もしない場合はゼロ- 戻り値:
- このベクトルから要素型によって変換されたベクトル
- 関連項目:
-
getPayload
protected final Object getPayload()
-
LongVectorを使用できます。