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
- オペランド型のバイト単位のサイズ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 interface
static interface
static interface
static interface
引数、引数および戻り型、シンボリック名、演算子名などの共通プロパティの問合せを提供する、すべての演算子トークンのルート・タイプ。static interface
static interface
static interface
-
フィールドのサマリー
フィールド修飾子と型フィールド説明static final VectorOperators.Unary
abs(a)
の生成。static final VectorOperators.Unary
acos(a)
の生成。static final VectorOperators.Associative
a+b
の生成。static final VectorOperators.Associative
a&b
の生成。static final VectorOperators.Binary
a&~b
の生成。static final VectorOperators.Binary
a>>(n&(ESIZE*8-1))
の生成。static final VectorOperators.Unary
asin(a)
の生成。static final VectorOperators.Unary
atan(a)
の生成。static final VectorOperators.Binary
atan2(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.Ternary
a^((a^b)&c)
の生成。static final VectorOperators.Unary
cbrt(a)
の生成。static final VectorOperators.Unary
cos(a)
の生成。static final VectorOperators.Unary
cosh(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.Binary
a/b
の生成。static final VectorOperators.Comparison
a==b
と比較してください。static final VectorOperators.Unary
exp(a)
の生成。static final VectorOperators.Unary
expm1(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.Associative
bits(a)!=0?a:b
の生成。static final VectorOperators.Ternary
fma(a,b,c)
の生成。static final VectorOperators.Comparison
a>=b
と比較してください。static final VectorOperators.Comparison
a>b
と比較してください。static final VectorOperators.Binary
hypot(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.Test
bits(a)==0
のテスト。static final VectorOperators.Test
isFinite(a)
のテスト。static final VectorOperators.Test
isInfinite(a)
のテスト。static final VectorOperators.Test
isNaN(a)
のテスト。static final VectorOperators.Test
bits(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.Comparison
a<=b
と比較してください。static final VectorOperators.Unary
log(a)
の生成。static final VectorOperators.Unary
log10(a)
の生成。static final VectorOperators.Unary
log1p(a)
の生成。static final VectorOperators.Binary
a<<(n&(ESIZE*8-1))
の生成。static final VectorOperators.Binary
a>>>(n&(ESIZE*8-1))
の生成。static final VectorOperators.Comparison
a<b
と比較してください。static final VectorOperators.Associative
max(a,b)
の生成。static final VectorOperators.Associative
min(a,b)
の生成。static final VectorOperators.Associative
a*b
の生成。static final VectorOperators.Comparison
a!=b
と比較してください。static final VectorOperators.Unary
-a
の生成。static final VectorOperators.Unary
~a
の生成。static final VectorOperators.Associative
a|b
の生成。static final VectorOperators.Binary
pow(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.Binary
rotateLeft(a,n)
の生成。static final VectorOperators.Binary
rotateRight(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.Unary
sin(a)
の生成。static final VectorOperators.Unary
sinh(a)
の生成。static final VectorOperators.Unary
sqrt(a)
の生成。static final VectorOperators.Binary
a-b
の生成。static final VectorOperators.Unary
tan(a)
の生成。static final VectorOperators.Unary
tanh(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.Associative
a^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.Unary
a==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
の生成。 -
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 LSHRa>>>(n&(ESIZE*8-1))
の生成。 整数のみ。 -
ROL
public static final VectorOperators.Binary ROLrotateLeft(a,n)
の生成。 整数のみ。 -
ROR
public static final VectorOperators.Binary RORrotateRight(a,n)
の生成。 整数のみ。 -
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
public static final VectorOperators.Comparison UNSIGNED_LT符号なしの比較a<b
。 整数のみ。 -
UNSIGNED_LE
public static final VectorOperators.Comparison UNSIGNED_LE符号なしの比較a<=b
。 整数のみ。 -
UNSIGNED_GT
public static final VectorOperators.Comparison UNSIGNED_GT符号なしの比較a>b
。 整数のみ。 -
UNSIGNED_GE
public static final VectorOperators.Comparison UNSIGNED_GE符号なしの比較a>=b
。 整数のみ。 -
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
にゼロ拡張します。
-