クラスVectorOperators
java.lang.Object
jdk.incubator.vector.VectorOperators
public abstract class VectorOperators extends Object
このクラスは、レーンワイズ・ベクトル演算を記述するstatic定数と、それらを分類する入れ子のインタフェースだけで構成されます。 静的定数は、
w = v0. lanewise(ADD, v1)のトークンADDなど、ベクトル式で特にリクエストされたレーン演算を表すトークンとして機能します。
個々の演算子トークンのドキュメントは非常に簡潔で、トークンがリクエストする演算のシンボリックJava式を提供します。 これらのシンボリック式では、次の従来型の要素が使用されます:
a,b,c- レーン値の名前+、?:などのJava演算子。 - 式演算子max、sinなどのJavaメソッド名。 -Math、Doubleなどの標準クラスのメソッド。修飾されていないメソッド名は、静的インポートの場合と同様に、オーバーロードの解決とともに読み取る必要があります。bits(x)- 値xのベースとなるビットを生成する関数呼出し。xが浮動小数点値の場合、これはdoubleToLongBits(x)またはfloatToIntBits(x)のいずれかです。 それ以外の場合、値はxのみです。ESIZE- オペランド型のバイト単位のサイズEMASK- オペランド・タイプのビット・マスク(EMASK=(1<<(ESIZE*8))-1)intVal,byteVal, etc. - 指定された型を持つ変換のオペランド
浮動小数点ベクトルに対する演算
- 浮動小数点ベクトルに適用されるレーンワイズのベクトル操作は、特に指定しないかぎり、ドキュメントに記載されている同等のJava操作またはメソッドの精度および単調性の指定に従います。 ベクトル要素の型が
floatで、Java演算またはメソッドがdouble値のみを受け入れて戻す場合、各レーンのスカラー演算は、オペランドと結果をキャストするように調整されます。具体的には、floatオペランドがdoubleオペランドに拡張され、doubleの結果がfloatに絞り込まれます。 - 浮動小数点ベクトルに適用される特定の連想演算子は、浮動小数点レーン値に対して実際には連想的ではありません。 具体的には、
ADDおよびMULは、FloatVector.reduceLanes(Associative)などのクロス・レーン削減演算で使用されます。 このような演算の結果は、入力値(ベクトルとマスク)とレーン値を結合するために適用されるスカラー演算の順序の両方の関数になります。 このような場合、順序は意図的に定義されません。 これにより、JVMは実行時に基礎となるプラットフォームに最適なマシン・コードを生成できます。 プラットフォームでベクトル内のすべての値を加算または乗算するベクトル命令がサポートされている場合、または他の効率的なマシン・コード・シーケンスがある場合、JVMにはこのマシン・コードを生成するオプションがあります。 それ以外の場合は、デフォルトの実装が適用され、ベクトル要素が最初から最後まで順番に追加されます。 このため、このような演算の結果は同じ入力値に対して異なる場合があります。
特定のオペレータ・トークンが複数の異なるレーン・タイプに適用される場合があることに注意してください。 したがって、これらのトークンは、型固有のメソッド・ハンドルやラムダとは異なり、オーバーロードされた演算子またはメソッドのように動作します。 また、メソッド・ハンドルやラムダとは異なり、これらの演算子には演算セマンティクスはなく、applyまたはinvokeメソッドはありません。 これらは、ベクトル・オブジェクトからレーン演算をリクエストするためにのみ使用され、個々のレーン値に対して(単独で)で演算を実行することはできません。
-
ネストされたクラスのサマリー
ネストされたクラス修飾子と型クラス説明static interfaceすべての再関連付けレーンワイズ二項演算子のタイプで、e = v0.reduceLanes(ADD)などの式で使用できます。static interfacestatic interfacestatic interfacestatic interface引数、引数および戻り型、シンボリック名、演算子名などの共通プロパティの問合せを提供する、すべての演算子トークンのルート・タイプ。static interfacestatic interfacestatic interface -
フィールドのサマリー
フィールド修飾子と型フィールド説明static final VectorOperators.Unaryabs(a)の生成。static final VectorOperators.Unaryacos(a)の生成。static final VectorOperators.Associativea+bの生成。static final VectorOperators.Associativea&bの生成。static final VectorOperators.Binarya&~bの生成。static final VectorOperators.Binarya>>(n&(ESIZE*8-1))の生成。static final VectorOperators.Unaryasin(a)の生成。static final VectorOperators.Unaryatan(a)の生成。static final VectorOperators.Binaryatan2(a,b)の生成。static final VectorOperators.Conversion<Byte, Double> byteValを(double)byteValに変換します。static final VectorOperators.Conversion<Byte, Float> byteValを(float)byteValに変換します。static final VectorOperators.Conversion<Byte, Integer> byteValを(int)byteValに変換します。static final VectorOperators.Conversion<Byte, Long> byteValを(long)byteValに変換します。static final VectorOperators.Conversion<Byte, Short> byteValを(short)byteValに変換します。static final VectorOperators.UnarybitCount(a)を生成static final VectorOperators.Ternarya^((a^b)&c)の生成。static final VectorOperators.Unarycbrt(a)の生成。static final VectorOperators.Binarycompress(a,n)の生成。static final VectorOperators.Unarycos(a)の生成。static final VectorOperators.Unarycosh(a)の生成。static final VectorOperators.Conversion<Double, Byte> doubleValを(byte)doubleValに変換します。static final VectorOperators.Conversion<Double, Float> doubleValを(float)doubleValに変換します。static final VectorOperators.Conversion<Double, Integer> doubleValを(int)doubleValに変換します。static final VectorOperators.Conversion<Double, Long> doubleValを(long)doubleValに変換します。static final VectorOperators.Conversion<Double, Short> doubleValを(short)doubleValに変換します。static final VectorOperators.Binarya/bの生成。static final VectorOperators.Comparisona==bと比較します。static final VectorOperators.Unaryexp(a)の生成。static final VectorOperators.Binaryexpand(a,n)の生成。static final VectorOperators.Unaryexpm1(a)の生成。static final VectorOperators.Conversion<Float, Byte> floatValを(byte)floatValに変換します。static final VectorOperators.Conversion<Float, Double> floatValを(double)floatValに変換します。static final VectorOperators.Conversion<Float, Integer> floatValを(int)floatValに変換します。static final VectorOperators.Conversion<Float, Long> floatValを(long)floatValに変換します。static final VectorOperators.Conversion<Float, Short> floatValを(short)floatValに変換します。static final VectorOperators.Associativebits(a)!=0?a:bの生成。static final VectorOperators.Ternaryfma(a,b,c)の生成。static final VectorOperators.Comparisona>=bと比較します。static final VectorOperators.Comparisona>bと比較します。static final VectorOperators.Binaryhypot(a,b)の生成。static final VectorOperators.Conversion<Integer, Byte> intValを(byte)intValに変換します。static final VectorOperators.Conversion<Integer, Double> intValを(double)intValに変換します。static final VectorOperators.Conversion<Integer, Float> intValを(float)intValに変換します。static final VectorOperators.Conversion<Integer, Long> intValを(long)intValに変換します。static final VectorOperators.Conversion<Integer, Short> intValを(short)intValに変換します。static final VectorOperators.Testbits(a)==0のテスト。static final VectorOperators.TestisFinite(a)のテスト。static final VectorOperators.TestisInfinite(a)のテスト。static final VectorOperators.TestisNaN(a)のテスト。static final VectorOperators.Testbits(a)<0のテスト。static final VectorOperators.Conversion<Long, Byte> longValを(byte)longValに変換します。static final VectorOperators.Conversion<Long, Double> longValを(double)longValに変換します。static final VectorOperators.Conversion<Long, Float> longValを(float)longValに変換します。static final VectorOperators.Conversion<Long, Integer> longValを(int)longValに変換します。static final VectorOperators.Conversion<Long, Short> longValを(short)longValに変換します。static final VectorOperators.Comparisona<=bと比較します。static final VectorOperators.UnarynumberOfLeadingZeros(a)を生成static final VectorOperators.Unarylog(a)の生成。static final VectorOperators.Unarylog10(a)の生成。static final VectorOperators.Unarylog1p(a)の生成。static final VectorOperators.Binarya<<(n&(ESIZE*8-1))の生成。static final VectorOperators.Binary(a&EMASK)>>>(n&(ESIZE*8-1))の生成。static final VectorOperators.Comparisona<bと比較します。static final VectorOperators.Associativemax(a,b)の生成。static final VectorOperators.Associativemin(a,b)の生成。static final VectorOperators.Associativea*bの生成。static final VectorOperators.Comparisona!=bと比較します。static final VectorOperators.Unary-aの生成。static final VectorOperators.Unary~aの生成。static final VectorOperators.Associativea|bの生成。static final VectorOperators.Binarypow(a,b)の生成。static final VectorOperators.Conversion<Double, Long> doubleValのビットをlongとして再解釈します。static final VectorOperators.Conversion<Float, Integer> floatValのビットをintとして再解釈します。static final VectorOperators.Conversion<Integer, Float> intValのビットをfloatとして再解釈します。static final VectorOperators.Conversion<Long, Double> longValのビットをdoubleとして再解釈します。static final VectorOperators.Unaryreverse(a)を生成static final VectorOperators.UnaryreverseBytes(a)を生成static final VectorOperators.BinaryrotateLeft(a,n)の生成。static final VectorOperators.BinaryrotateRight(a,n)の生成。static final VectorOperators.Conversion<Short, Byte> shortValを(byte)shortValに変換します。static final VectorOperators.Conversion<Short, Double> shortValを(double)shortValに変換します。static final VectorOperators.Conversion<Short, Float> shortValを(float)shortValに変換します。static final VectorOperators.Conversion<Short, Integer> shortValを(int)shortValに変換します。static final VectorOperators.Conversion<Short, Long> shortValを(long)shortValに変換します。static final VectorOperators.Unarysin(a)の生成。static final VectorOperators.Unarysinh(a)の生成。static final VectorOperators.Unarysqrt(a)の生成。static final VectorOperators.Binarya-bの生成。static final VectorOperators.Unarytan(a)の生成。static final VectorOperators.Unarytanh(a)の生成。static final VectorOperators.UnarynumberOfTrailingZeros(a)を生成static final VectorOperators.Comparison符号なしの比較a>=b。static final VectorOperators.Comparison符号なしの比較a>b。static final VectorOperators.Comparison符号なしの比較a<=b。static final VectorOperators.Comparison符号なしの比較a<b。static final VectorOperators.Associativea^bの生成。static final VectorOperators.Conversion<Byte, Integer> byteValをintにゼロ拡張します。static final VectorOperators.Conversion<Byte, Long> byteValをlongにゼロ拡張します。static final VectorOperators.Conversion<Byte, Short> byteValをshortにゼロ拡張します。static final VectorOperators.Conversion<Integer, Long> intValをlongにゼロ拡張します。static final VectorOperators.Conversion<Short, Integer> shortValをintにゼロ拡張します。static final VectorOperators.Conversion<Short, Long> shortValをlongにゼロ拡張します。static final VectorOperators.Unarya==0?0:-1(ゼロまたはマイナス1)の生成。 -
メソッドのサマリー
-
フィールド詳細
-
NOT
public static final VectorOperators.Unary NOT~aの生成。 整数のみ。 -
ZOMO
public static final VectorOperators.Unary ZOMOa==0?0:-1(ゼロまたはマイナス1)の生成。 整数のみ。 -
ABS
public static final VectorOperators.Unary ABSabs(a)の生成。 -
NEG
public static final VectorOperators.Unary NEG-aの生成。 -
BIT_COUNT
-
TRAILING_ZEROS_COUNT
public static final VectorOperators.Unary TRAILING_ZEROS_COUNTnumberOfTrailingZeros(a)を生成- 導入されたバージョン:
- 19
-
LEADING_ZEROS_COUNT
public static final VectorOperators.Unary LEADING_ZEROS_COUNTnumberOfLeadingZeros(a)を生成- 導入されたバージョン:
- 19
-
REVERSE
-
REVERSE_BYTES
-
SIN
public static final VectorOperators.Unary SINsin(a)の生成。 フローティングのみ。 半単調であることは保証されない。 前述の"浮動小数点ベクトルに対する演算"の項を参照してください -
COS
public static final VectorOperators.Unary COScos(a)の生成。 フローティングのみ。 半単調であることは保証されない。 前述の"浮動小数点ベクトルに対する演算"の項を参照してください -
TAN
public static final VectorOperators.Unary TANtan(a)の生成。 フローティングのみ。 半単調であることは保証されない。 前述の"浮動小数点ベクトルに対する演算"の項を参照してください -
ASIN
public static final VectorOperators.Unary ASINasin(a)の生成。 フローティングのみ。 半単調であることは保証されない。 前述の"浮動小数点ベクトルに対する演算"の項を参照してください -
ACOS
public static final VectorOperators.Unary ACOSacos(a)の生成。 フローティングのみ。 半単調であることは保証されない。 前述の"浮動小数点ベクトルに対する演算"の項を参照してください -
ATAN
public static final VectorOperators.Unary ATANatan(a)の生成。 フローティングのみ。 半単調であることは保証されない。 前述の"浮動小数点ベクトルに対する演算"の項を参照してください -
EXP
public static final VectorOperators.Unary EXPexp(a)の生成。 フローティングのみ。 半単調であることは保証されない。 前述の"浮動小数点ベクトルに対する演算"の項を参照してください -
LOG
public static final VectorOperators.Unary LOGlog(a)の生成。 フローティングのみ。 半単調であることは保証されない。 前述の"浮動小数点ベクトルに対する演算"の項を参照してください -
LOG10
public static final VectorOperators.Unary LOG10log10(a)の生成。 フローティングのみ。 半単調であることは保証されない。 前述の"浮動小数点ベクトルに対する演算"の項を参照してください -
SQRT
public static final VectorOperators.Unary SQRTsqrt(a)の生成。 フローティングのみ。 前述の"浮動小数点ベクトルに対する演算"の項を参照してください -
CBRT
public static final VectorOperators.Unary CBRTcbrt(a)の生成。 フローティングのみ。 半単調であることは保証されない。 前述の"浮動小数点ベクトルに対する演算"の項を参照してください -
SINH
public static final VectorOperators.Unary SINHsinh(a)の生成。 フローティングのみ。 半単調であることは保証されない。 前述の"浮動小数点ベクトルに対する演算"の項を参照してください -
COSH
public static final VectorOperators.Unary COSHcosh(a)の生成。 フローティングのみ。 半単調であることは保証されない。 前述の"浮動小数点ベクトルに対する演算"の項を参照してください -
TANH
public static final VectorOperators.Unary TANHtanh(a)の生成。 フローティングのみ。 半単調であることは保証されない。 前述の"浮動小数点ベクトルに対する演算"の項を参照してください -
EXPM1
public static final VectorOperators.Unary EXPM1expm1(a)の生成。 フローティングのみ。 半単調であることは保証されない。 前述の"浮動小数点ベクトルに対する演算"の項を参照してください -
LOG1P
public static final VectorOperators.Unary LOG1Plog1p(a)の生成。 フローティングのみ。 半単調であることは保証されない。 前述の"浮動小数点ベクトルに対する演算"の項を参照してください -
ADD
public static final VectorOperators.Associative ADDa+bの生成。 -
SUB
public static final VectorOperators.Binary SUBa-bの生成。 -
MUL
public static final VectorOperators.Associative MULa*bの生成。 -
DIV
public static final VectorOperators.Binary DIVa/bの生成。 フローティングのみ。 -
MIN
public static final VectorOperators.Associative MINmin(a,b)の生成。 -
MAX
public static final VectorOperators.Associative MAXmax(a,b)の生成。 -
FIRST_NONZERO
public static final VectorOperators.Associative FIRST_NONZERObits(a)!=0?a:bの生成。 -
AND
public static final VectorOperators.Associative ANDa&bの生成。 整数のみ。 -
AND_NOT
public static final VectorOperators.Binary AND_NOTa&~bの生成。 整数のみ。 -
OR
public static final VectorOperators.Associative ORa|bの生成。 整数のみ。 -
XOR
public static final VectorOperators.Associative XORa^bの生成。 整数のみ。 -
LSHL
public static final VectorOperators.Binary LSHLa<<(n&(ESIZE*8-1))の生成。 整数のみ。 -
ASHR
public static final VectorOperators.Binary ASHRa>>(n&(ESIZE*8-1))の生成。 整数のみ。 -
LSHR
public static final VectorOperators.Binary LSHR(a&EMASK)>>>(n&(ESIZE*8-1))の生成。 整数のみ。 -
ROL
public static final VectorOperators.Binary ROLrotateLeft(a,n)の生成。 整数のみ。 -
ROR
public static final VectorOperators.Binary RORrotateRight(a,n)の生成。 整数のみ。 -
COMPRESS_BITS
public static final VectorOperators.Binary COMPRESS_BITScompress(a,n)の生成。 整数、intおよびlongのみ。- 導入されたバージョン:
- 19
-
EXPAND_BITS
public static final VectorOperators.Binary EXPAND_BITSexpand(a,n)の生成。 整数、intおよびlongのみ。- 導入されたバージョン:
- 19
-
ATAN2
public static final VectorOperators.Binary ATAN2atan2(a,b)の生成。 フローティングのみを参照してください。 半単調であることは保証されない。 前述の"浮動小数点ベクトルに対する演算"の項を参照してください -
POW
public static final VectorOperators.Binary POWpow(a,b)の生成。 フローティングのみ。 半単調であることは保証されない。 前述の"浮動小数点ベクトルに対する演算"の項を参照してください -
HYPOT
public static final VectorOperators.Binary HYPOThypot(a,b)の生成。 フローティングのみ。 半単調であることは保証されない。 前述の"浮動小数点ベクトルに対する演算"の項を参照してください -
BITWISE_BLEND
public static final VectorOperators.Ternary BITWISE_BLENDa^((a^b)&c)の生成。 (ビット単位の(c(i)?b(i):a(i))。) 整数のみ。 -
FMA
public static final VectorOperators.Ternary FMAfma(a,b,c)の生成。 フローティングのみ。 -
IS_DEFAULT
public static final VectorOperators.Test IS_DEFAULTbits(a)==0のテスト。 (-0.0には該当しません。) -
IS_NEGATIVE
public static final VectorOperators.Test IS_NEGATIVEbits(a)<0のテスト。 (-0.0の場合はtrue。) -
IS_FINITE
public static final VectorOperators.Test IS_FINITEisFinite(a)のテスト。 フローティングのみ。 -
IS_NAN
public static final VectorOperators.Test IS_NANisNaN(a)のテスト。 フローティングのみ。 -
IS_INFINITE
public static final VectorOperators.Test IS_INFINITEisInfinite(a)のテスト。 フローティングのみ。 -
EQ
public static final VectorOperators.Comparison EQa==bと比較します。 -
NE
public static final VectorOperators.Comparison NEa!=bと比較します。 -
LT
public static final VectorOperators.Comparison LTa<bと比較します。 -
LE
public static final VectorOperators.Comparison LEa<=bと比較します。 -
GT
public static final VectorOperators.Comparison GTa>bと比較します。 -
GE
public static final VectorOperators.Comparison GEa>=bと比較します。 -
UNSIGNED_LT
-
UNSIGNED_LE
-
UNSIGNED_GT
-
UNSIGNED_GE
-
B2D
public static final VectorOperators.Conversion<Byte,Double> B2DbyteValを(double)byteValに変換します。 -
B2F
public static final VectorOperators.Conversion<Byte,Float> B2FbyteValを(float)byteValに変換します。 -
B2I
public static final VectorOperators.Conversion<Byte,Integer> B2IbyteValを(int)byteValに変換します。 -
B2L
public static final VectorOperators.Conversion<Byte,Long> B2LbyteValを(long)byteValに変換します。 -
B2S
public static final VectorOperators.Conversion<Byte,Short> B2SbyteValを(short)byteValに変換します。 -
D2B
public static final VectorOperators.Conversion<Double,Byte> D2BdoubleValを(byte)doubleValに変換します。 -
D2F
public static final VectorOperators.Conversion<Double,Float> D2FdoubleValを(float)doubleValに変換します。 -
D2I
public static final VectorOperators.Conversion<Double,Integer> D2IdoubleValを(int)doubleValに変換します。 -
D2L
public static final VectorOperators.Conversion<Double,Long> D2LdoubleValを(long)doubleValに変換します。 -
D2S
public static final VectorOperators.Conversion<Double,Short> D2SdoubleValを(short)doubleValに変換します。 -
F2B
public static final VectorOperators.Conversion<Float,Byte> F2BfloatValを(byte)floatValに変換します。 -
F2D
public static final VectorOperators.Conversion<Float,Double> F2DfloatValを(double)floatValに変換します。 -
F2I
public static final VectorOperators.Conversion<Float,Integer> F2IfloatValを(int)floatValに変換します。 -
F2L
public static final VectorOperators.Conversion<Float,Long> F2LfloatValを(long)floatValに変換します。 -
F2S
public static final VectorOperators.Conversion<Float,Short> F2SfloatValを(short)floatValに変換します。 -
I2B
public static final VectorOperators.Conversion<Integer,Byte> I2BintValを(byte)intValに変換します。 -
I2D
public static final VectorOperators.Conversion<Integer,Double> I2DintValを(double)intValに変換します。 -
I2F
public static final VectorOperators.Conversion<Integer,Float> I2FintValを(float)intValに変換します。 -
I2L
public static final VectorOperators.Conversion<Integer,Long> I2LintValを(long)intValに変換します。 -
I2S
public static final VectorOperators.Conversion<Integer,Short> I2SintValを(short)intValに変換します。 -
L2B
public static final VectorOperators.Conversion<Long,Byte> L2BlongValを(byte)longValに変換します。 -
L2D
public static final VectorOperators.Conversion<Long,Double> L2DlongValを(double)longValに変換します。 -
L2F
public static final VectorOperators.Conversion<Long,Float> L2FlongValを(float)longValに変換します。 -
L2I
public static final VectorOperators.Conversion<Long,Integer> L2IlongValを(int)longValに変換します。 -
L2S
public static final VectorOperators.Conversion<Long,Short> L2SlongValを(short)longValに変換します。 -
S2B
public static final VectorOperators.Conversion<Short,Byte> S2BshortValを(byte)shortValに変換します。 -
S2D
public static final VectorOperators.Conversion<Short,Double> S2DshortValを(double)shortValに変換します。 -
S2F
public static final VectorOperators.Conversion<Short,Float> S2FshortValを(float)shortValに変換します。 -
S2I
public static final VectorOperators.Conversion<Short,Integer> S2IshortValを(int)shortValに変換します。 -
S2L
public static final VectorOperators.Conversion<Short,Long> S2LshortValを(long)shortValに変換します。 -
REINTERPRET_D2L
public static final VectorOperators.Conversion<Double,Long> REINTERPRET_D2LdoubleValのビットをlongとして再解釈します。Double.doubleToRawLongBits(double)による場合と同様 -
REINTERPRET_F2I
public static final VectorOperators.Conversion<Float,Integer> REINTERPRET_F2IfloatValのビットをintとして再解釈します。Float.floatToRawIntBits(float)による場合と同様 -
REINTERPRET_I2F
public static final VectorOperators.Conversion<Integer,Float> REINTERPRET_I2FintValのビットをfloatとして再解釈します。Float.intBitsToFloat(int)による場合と同様 -
REINTERPRET_L2D
public static final VectorOperators.Conversion<Long,Double> REINTERPRET_L2DlongValのビットをdoubleとして再解釈します。Double.longBitsToDouble(long)による場合と同様 -
ZERO_EXTEND_B2I
public static final VectorOperators.Conversion<Byte,Integer> ZERO_EXTEND_B2IbyteValをintにゼロ拡張します。 -
ZERO_EXTEND_B2L
public static final VectorOperators.Conversion<Byte,Long> ZERO_EXTEND_B2LbyteValをlongにゼロ拡張します。 -
ZERO_EXTEND_B2S
public static final VectorOperators.Conversion<Byte,Short> ZERO_EXTEND_B2SbyteValをshortにゼロ拡張します。 -
ZERO_EXTEND_I2L
public static final VectorOperators.Conversion<Integer,Long> ZERO_EXTEND_I2LintValをlongにゼロ拡張します。 -
ZERO_EXTEND_S2I
public static final VectorOperators.Conversion<Short,Integer> ZERO_EXTEND_S2IshortValをintにゼロ拡張します。 -
ZERO_EXTEND_S2L
public static final VectorOperators.Conversion<Short,Long> ZERO_EXTEND_S2LshortValをlongにゼロ拡張します。
-