Math
クラスは、指数関数、対数関数、平方根、および三角関数といった基本的な数値処理を実行するためのメソッドを含んでいます。
クラスStrictMath
の数値メソッドの一部とは異なり、クラスMath
の同等の機能のすべての実装がビット・フォー・ビット同じ結果を返すように定義されていません。 このゆるやかさによって、厳密な再現性が要求されない実装においてパフォーマンスの向上が可能になります。
デフォルトでは、Math
の多くのメソッドは単に、StrictMath
内の対応するメソッドを実装として呼び出します。 コード・ジェネレータは、プラットフォーム固有のネイティブ・ライブラリまたはマイクロプロセッサの命令がある場合は積極的に使用し、高性能なMath
メソッドの実装を提供します。 そのような高性能な実装でもMath
の仕様に準拠する必要があります。
実装仕様の品質は、2つのプロパティ、返される結果の正確さ、およびメソッドの単調性と関係があります。 浮動小数点のMath
メソッドの精度は、「ulps」、「最後の場所の単位」で測定されます。 浮動小数点形式が指定された場合、特定の実数値のulpはその数値を囲んでいる2つの浮動小数点値の距離になります。 メソッドの正確性を、特定の引数に対してではなく全体として論じる場合に示されるulp数は、すべての引数における最大誤差になります。 メソッドが返すエラーが常に0.5 ulp未満の場合、そのメソッドは実際の結果にもっとも近い浮動小数点数を常に返します。この種のメソッドは正しく丸められています。 「正しく丸められる」メソッドは、通常、浮動小数点近似が可能な最適なメソッドですが、多くの浮動小数点メソッドを正しく丸めることは現実的ではありません。 その代わりにMath
クラスの場合、1または2 ulpより大きいエラーが特定のメソッドで許可されます。 非公式には1 ulpのエラーでは、正確な結果が表現可能な数値の場合に正確な結果が返されます。そうでない場合、正確な結果を囲む2つの浮動小数点値のいずれかが返される可能性があります。 正確な結果の絶対値が大きい場合、カッコの一方の端点が無限である可能性があります。 個別の引数の正確さに加え、メソッドの異なる引数間の適切な関係も重要です。 したがって、0.5を超えるulpエラーがあるほとんどのメソッドは、semi-monotonicである必要があります: 数学関数が非減少の場合、浮動小数点近似も同様に、数学関数が非増加の場合、浮動小数点近似も同様です。 1 ulpの正確性を保持する近似値すべてが、自動的に単調要件を満たすわけではありません。
このプラットフォームでは、int
およびlong
プリミティブ型を持つ符号付き2の補数整数演算が使用されます。 開発者は、算術演算が一貫して正しい結果を生成するようにプリミティブ型を選択する必要があります。これは、場合によっては、それらの演算が計算の値の範囲をオーバーフローしないことを意味しています。 ベスト・プラクティスは、プリミティブ型と、オーバーフローを回避するアルゴリズムを選択することです。 サイズがint
またはlong
で、オーバーフロー・エラーを検出する必要がある場合、結果がオーバーフローすると、名前がExact
で終わるメソッドは ArithmeticException
をスローします。
IEEE 754推奨される操作
IEEE 754浮動小数点標準の2019リビジョンには、推奨される操作のセクションと、プログラミング環境に含まれる場合はその操作のセマンティクスが含まれています。 このクラスに存在する推奨操作には、sin
、cos
、tan
、asin
、acos
、atan
、exp
、expm1
、log
、log10
、log1p
、sinh
、cosh
、tanh
、hypot
およびpow
が含まれます。 (sqrt
操作は、標準の異なるセクションからのIEEE 754の必須部分です。) 推奨される操作の特殊なケースの動作は通常、IEEE 754規格のガイダンスに従います。 ただし、pow
メソッドは、「仕様」に記載されているように、一部の引数に対して異なる動作を定義します。 IEEE 754標準は、正しく丸められる操作を定義します。これは、このクラスにも含まれている問題のあるほとんどのメソッドに必要なよりも厳格な実装条件です。 - 導入されたバージョン:
- 1.0
- 関連項目:
-
フィールドのサマリー
フィールド -
メソッドのサマリー
修飾子と型メソッド説明static double
abs
(double a) double
値の絶対値を返します。static float
abs
(float a) float
値の絶対値を返します。static int
abs
(int a) int
値の絶対値を返します。static long
abs
(long a) long
値の絶対値を返します。static int
absExact
(int a) int
値がint
として正確に表現可能な場合は、その数学的絶対値を返します。結果が正のint
範囲をオーバーフローした場合は、ArithmeticException
をスローします。static long
absExact
(long a) long
値がlong
として正確に表現可能な場合は、その数学的絶対値を返します。結果が正のlong
範囲をオーバーフローした場合は、ArithmeticException
をスローします。static double
acos
(double a) 指定された値の逆余弦(アーク・コサイン)を返します。返される角度の範囲は、0.0からpiです。static int
addExact
(int x, int y) 引数の合計を返します。結果がint
をオーバーフローする場合は例外をスローします。static long
addExact
(long x, long y) 引数の合計を返します。その結果がlong
をオーバーフローする場合は例外をスローします。static double
asin
(double a) 指定された値の逆正弦(アーク・サイン)を返します。返される角度の範囲は、-pi/2からpi/2です。static double
atan
(double a) 指定された値の逆正接(アーク・タンジェント)を返します。返される角度の範囲は、-pi/2からpi/2です。static double
atan2
(double y, double x) 直交座標(x
,y
)から極座標(r, theta)への変換から得られる角度thetaを返します。static double
cbrt
(double a) double
値の立方根を返します。static double
ceil
(double a) 引数の値以上で、計算上の整数と等しい、最小の(負の無限大にもっとも近い)double
値を返します。static int
ceilDiv
(int x, int y) 代数商以上の最小の(負の無限大に近い)int
値を返します。static long
ceilDiv
(long x, int y) 代数商の最小の(負の無限大に近い)long
値を返します。static long
ceilDiv
(long x, long y) 代数商の最小の(負の無限大に近い)long
値を返します。static int
ceilDivExact
(int x, int y) 代数商以上の最小の(負の無限大に近い)int
値を返します。static long
ceilDivExact
(long x, long y) 代数商の最小の(負の無限大に近い)long
値を返します。static int
ceilMod
(int x, int y) int
引数のceiling modulusを返します。static int
ceilMod
(long x, int y) long
およびint
引数のceiling modulusを返します。static long
ceilMod
(long x, long y) long
引数のceiling modulusを返します。static double
clamp
(double value, double min, double max) 最小と最大に収まるように値をクランプします。static float
clamp
(float value, float min, float max) 最小と最大に収まるように値をクランプします。static int
clamp
(long value, int min, int max) 最小と最大に収まるように値をクランプします。static long
clamp
(long value, long min, long max) 最小と最大に収まるように値をクランプします。static double
copySign
(double magnitude, double sign) 2番目の浮動小数点引数の符号を付けた、最初の浮動小数点引数を返します。static float
copySign
(float magnitude, float sign) 2番目の浮動小数点引数の符号を付けた、最初の浮動小数点引数を返します。static double
cos
(double a) 指定された角度の余弦(コサイン)を返します。static double
cosh
(double x) double
値の双曲線余弦を返します。static int
decrementExact
(int a) 引数を1だけ減分したものを返します。結果がint
をオーバーフローする場合は例外をスローします。static long
decrementExact
(long a) 引数を1だけ減分したものを返します。結果がlong
をオーバーフローする場合は例外をスローします。static int
divideExact
(int x, int y) 結果がint
をオーバーフローした場合に例外をスローして、引数の商を返します。static long
divideExact
(long x, long y) 結果がlong
をオーバーフローした場合に例外をスローして、引数の商を返します。static double
exp
(double a) オイラー数eをdouble
値で累乗した値を返します。static double
expm1
(double x) ex -1を返します。static double
floor
(double a) 引数の値以下で、計算上の整数と等しい、最大の(正の無限大にもっとも近い)double
値を返します。static int
floorDiv
(int x, int y) 商代数以下の最大(正の無限大にもっとも近い)int
値を返します。static long
floorDiv
(long x, int y) 商代数以下の最大(正の無限大にもっとも近い)long
値を返します。static long
floorDiv
(long x, long y) 商代数以下の最大(正の無限大にもっとも近い)long
値を返します。static int
floorDivExact
(int x, int y) 商代数以下の最大(正の無限大にもっとも近い)int
値を返します。static long
floorDivExact
(long x, long y) 商代数以下の最大(正の無限大にもっとも近い)long
値を返します。static int
floorMod
(int x, int y) int
引数のフロア・モジュラスを返します。static int
floorMod
(long x, int y) long
およびint
引数のフロア・モジュラスを返します。static long
floorMod
(long x, long y) long
引数のフロア・モジュラスを返します。static double
fma
(double a, double b, double c) 3つの引数の融合積加算を返します。つまり、3番目の引数で合計された最初の2つの引数の正確な積を返し、1回を最も近いdouble
に丸めます。static float
fma
(float a, float b, float c) 3つの引数の融合積加算を返します。つまり、3番目の引数で合計された最初の2つの引数の正確な積を返し、1回を最も近いfloat
に丸めます。static int
getExponent
(double d) double
の表現で使用されている、バイアスなしの指数を返します。static int
getExponent
(float f) float
の表現で使用されている、バイアスなしの指数を返します。static double
hypot
(double x, double y) sqrt(x2 +y2)を返します(途中でオーバーフローやアンダーフローは発生しない)。static double
IEEEremainder
(double f1, double f2) IEEE 754標準に従って、2個の引数について剰余を計算します。static int
incrementExact
(int a) 引数を1だけ増分して返します。結果がint
をオーバーフローした場合は例外をスローします。static long
incrementExact
(long a) 引数を1だけ増分して返します。結果がlong
をオーバーフローした場合は例外をスローします。static double
log
(double a) 指定されたdouble
値の自然対数(底はe)を返します。static double
log10
(double a) double
値の10を底とする対数を返します。static double
log1p
(double x) 引数と1の合計の自然対数を返します。static double
max
(double a, double b) 2つのdouble
値のうち大きいほうを返します。static float
max
(float a, float b) 2つのfloat
値のうち大きいほうを返します。static int
max
(int a, int b) 2つのint
値のうち大きいほうを返します。static long
max
(long a, long b) 2つのlong
値のうち大きいほうを返します。static double
min
(double a, double b) 2つのdouble
値のうち小さいほうを返します。static float
min
(float a, float b) 2つのfloat
値のうち小さいほうを返します。static int
min
(int a, int b) 2つのint
値のうち小さいほうを返します。static long
min
(long a, long b) 2つのlong
値のうち小さいほうを返します。static int
multiplyExact
(int x, int y) 引数の積を返します。結果がint
をオーバーフローした場合は例外をスローします。static long
multiplyExact
(long x, int y) 引数の積を返します。結果がlong
をオーバーフローした場合は例外をスローします。static long
multiplyExact
(long x, long y) 引数の積を返します。結果がlong
をオーバーフローした場合は例外をスローします。static long
multiplyFull
(int x, int y) 引数の正確な数学的積を返します。static long
multiplyHigh
(long x, long y) 2つの64ビット・ファクタの128ビット製品の最上位64ビットをlong
として返します。static int
negateExact
(int a) 引数の否定を返します。結果がint
をオーバーフローした場合は例外をスローします。static long
negateExact
(long a) 引数の否定を返します。結果がlong
をオーバーフローした場合は例外をスローします。static double
nextAfter
(double start, double direction) 2番目の引数の方向で、最初の引数に隣接する浮動小数点値を返します。static float
nextAfter
(float start, double direction) 2番目の引数の方向で、最初の引数に隣接する浮動小数点値を返します。static double
nextDown
(double d) 負の無限大方向でd
に隣接する浮動小数点値を返します。static float
nextDown
(float f) 負の無限大方向でf
に隣接する浮動小数点値を返します。static double
nextUp
(double d) 正の無限大方向でd
に隣接する浮動小数点値を返します。static float
nextUp
(float f) 正の無限大方向でf
に隣接する浮動小数点値を返します。static double
pow
(double a, double b) 1番目の引数を、2番目の引数で累乗した値を返します。static double
random()
0.0
以上で1.0
より小さい、正の符号の付いたdouble
値を返します。static double
rint
(double a) 引数の値にもっとも近く、計算上の整数に等しいdouble
値を返します。static long
round
(double a) 引数にもっとも近いlong
を返します。同数の場合は正の無限大方向に丸めます。static int
round
(float a) 引数にもっとも近いint
を返します。同数の場合は正の無限大方向に丸めます。static double
scalb
(double d, int scaleFactor) 正しく丸められた浮動小数点の倍数によって実行されるかのように、d
× 2scaleFactor
を返します。static float
scalb
(float f, int scaleFactor) 正しく丸められた浮動小数点の倍数によって実行されるかのように、f
× 2scaleFactor
を返します。static double
signum
(double d) 引数の符号要素を返します。引数がゼロの場合はゼロ、引数がゼロより大きい場合は1.0、引数がゼロより小さい場合は -1.0です。static float
signum
(float f) 引数の符号要素を返します。引数がゼロの場合はゼロ、引数がゼロより大きい場合は1、引数がゼロより小さい場合は -1です。static double
sin
(double a) 指定された角度の正弦(サイン)を返します。static double
sinh
(double x) double
値の双曲線正弦を返します。static double
sqrt
(double a) double
値の正しく丸めた正の平方根を返します。static int
subtractExact
(int x, int y) 引数の差分を返します。結果がint
をオーバーフローした場合は例外をスローします。static long
subtractExact
(long x, long y) 引数の差分を返します。結果がlong
をオーバーフローした場合は例外をスローします。static double
tan
(double a) 指定された角度の正接(タンジェント)を返します。static double
tanh
(double x) double
値の双曲線正接を返します。static double
toDegrees
(double angrad) ラジアンで計測した角度を、相当する度に変換します。static int
toIntExact
(long value) long
引数の値を返します。その値がint
をオーバーフローする場合は例外をスローします。static double
toRadians
(double angdeg) 度で計測した角度を、相当するラジアンに変換します。static double
ulp
(double d) 引数のulpのサイズを返します。static float
ulp
(float f) 引数のulpのサイズを返します。static long
unsignedMultiplyHigh
(long x, long y) 符号なし64ビット・ファクタの符号なし128ビット積の最も重要な64ビットをlong
として返します。
-
フィールド詳細
-
E
public static final double E自然対数の底eにもっとも近いdouble
値です。- 関連項目:
-
PI
public static final double PI「パイ」 (π)に近いdouble
値(円の直径に対する円周の比率)。- 関連項目:
-
TAU
public static final double TAU「タウ」 (τ)よりも近いdouble
値(円の周りの半径に対する比率)。- APIのノート:
- piの値はtauの半分です。つまり、tauはpiの2倍です。
- 導入されたバージョン:
- 19
- 関連項目:
-
-
メソッドの詳細
-
sin
public static double sin(double a) 指定された角度の正弦(サイン)を返します。 特例として:- 引数がNaNまたは無限大の場合、結果はNaNになります。
- 引数がゼロの場合、結果はゼロに引数と同じ符号を付けた値になります。
計算結果は、正確な結果の1 ulp以内である必要があります。 結果は半単調なものに限ります。
- パラメータ:
a
- ラジアンで表した角度。- 戻り値:
- 引数の正弦(サイン)。
-
cos
public static double cos(double a) 指定された角度の余弦(コサイン)を返します。 特例として:- 引数がNaNまたは無限大の場合、結果はNaNになります。
- 引数がゼロの場合、結果は
1.0
になります。
計算結果は、正確な結果の1 ulp以内である必要があります。 結果は半単調なものに限ります。
- パラメータ:
a
- ラジアンで表した角度。- 戻り値:
- 引数の余弦(コサイン)。
-
tan
public static double tan(double a) 指定された角度の正接(タンジェント)を返します。 特例として:- 引数がNaNまたは無限大の場合、結果はNaNになります。
- 引数がゼロの場合、結果はゼロに引数と同じ符号を付けた値になります。
計算結果は、正確な結果の1 ulp以内である必要があります。 結果は半単調なものに限ります。
- パラメータ:
a
- ラジアンで表した角度。- 戻り値:
- 引数の正接(タンジェント)。
-
asin
public static double asin(double a) 指定された値の逆正弦(アーク・サイン)を返します。返される角度の範囲は、-pi/2からpi/2です。 特例として:- 引数がNaNまたはその絶対値が1を超える場合、結果はNaNになります。
- 引数がゼロの場合、結果はゼロに引数と同じ符号を付けた値になります。
計算結果は、正確な結果の1 ulp以内である必要があります。 結果は半単調なものに限ります。
- パラメータ:
a
- この値の逆正弦(アーク・サイン)が返される。- 戻り値:
- 引数の逆正弦(アーク・サイン)。
-
acos
public static double acos(double a) 指定された値の逆余弦(アーク・コサイン)を返します。返される角度の範囲は、0.0からpiです。 特例として:- 引数がNaNまたはその絶対値が1を超える場合、結果はNaNになります。
- 引数が
1.0
の場合、結果はゼロになります。
計算結果は、正確な結果の1 ulp以内である必要があります。 結果は半単調なものに限ります。
- パラメータ:
a
- この値の逆余弦(アーク・コサイン)が返される。- 戻り値:
- 引数の逆余弦(アーク・コサイン)。
-
atan
public static double atan(double a) 指定された値の逆正接(アーク・タンジェント)を返します。返される角度の範囲は、-pi/2からpi/2です。 特例として:- 引数がNaNの場合、NaNが返されます。
- 引数がゼロの場合、結果はゼロに引数と同じ符号を付けた値になります。
- 引数が「無限」の場合、結果は入力と同じ符号でpi/2に最も近い値になります。
計算結果は、正確な結果の1 ulp以内である必要があります。 結果は半単調なものに限ります。
- パラメータ:
a
- この値の逆正接(アーク・タンジェント)が返される。- 戻り値:
- 引数の逆正接(アーク・タンジェント)。
-
toRadians
public static double toRadians(double angdeg) 度で計測した角度を、相当するラジアンに変換します。 通常、度からラジアンへの変換は正確ではありません。- パラメータ:
angdeg
- 度で計測した角度- 戻り値:
- ラジアンで表した、角度
angdeg
の計測値。 - 導入されたバージョン:
- 1.2
-
toDegrees
public static double toDegrees(double angrad) ラジアンで計測した角度を、相当する度に変換します。 通常、ラジアンから度への変換は正確ではありません。ユーザーは、cos(toRadians(90.0))
が正確に0.0
に対応することを期待できません。- パラメータ:
angrad
- ラジアンで表した角度- 戻り値:
- 度で表した、角度
angrad
の計測値。 - 導入されたバージョン:
- 1.2
-
exp
public static double exp(double a) オイラー数eをdouble
値で累乗した値を返します。 特例として:- 引数がNaNの場合は、NaNを返します。
- 引数が正の無限大の場合は、正の無限大が返されます。
- 引数が負の無限大の場合は、正のゼロが返されます。
- 引数がゼロの場合、結果は
1.0
になります。
計算結果は、正確な結果の1 ulp以内である必要があります。 結果は半単調なものに限ります。
- パラメータ:
a
- eの累乗で使用する指数。- 戻り値:
- 値e
a
。ここで、eは自然対数の底。
-
log
public static double log(double a) 指定されたdouble
値の自然対数(底はe)を返します。 特例として:- 引数がNaNまたはゼロより小さい場合、NaNが返されます。
- 引数が正の無限大の場合は、正の無限大が返されます。
- 引数が正のゼロまたは負のゼロの場合は、負の無限大が返されます。
- 引数が
1.0
の場合、結果はゼロになります。
計算結果は、正確な結果の1 ulp以内である必要があります。 結果は半単調なものに限ります。
- パラメータ:
a
- 値- 戻り値:
- 値ln
a
(a
の自然対数)。
-
log10
public static double log10(double a) double
値の10を底とする対数を返します。 特例として:- 引数がNaNまたはゼロより小さい場合、NaNが返されます。
- 引数が正の無限大の場合は、正の無限大が返されます。
- 引数が正のゼロまたは負のゼロの場合は、負の無限大が返されます。
- 引数が10n (nは整数)に等しい場合、結果はnになります。 特に、引数が
1.0
(100)の場合、結果はゼロになります。
計算結果は、正確な結果の1 ulp以内である必要があります。 結果は半単調なものに限ります。
- パラメータ:
a
- 値- 戻り値:
a
の10を底とする対数。- 導入されたバージョン:
- 1.5
-
sqrt
public static double sqrt(double a) double
値の正しく丸めた正の平方根を返します。 特例として:- 引数がNaNまたはゼロより小さい場合、NaNが返されます。
- 引数が正の無限大の場合は、正の無限大が返されます。
- 引数が正のゼロまたは負のゼロの場合は、引数と同じ値が返されます。
double
値が返されます。- APIのノート:
- このメソッドは、IEEE 754で定義されているsquareRoot演算に対応します。
- パラメータ:
a
- 値。- 戻り値:
a
の正の平方根。 引数がNaNであるかゼロよりも小さい場合は、結果もNaN。
-
cbrt
public static double cbrt(double a) double
値の立方根を返します。 正の有限値x
の場合、cbrt(-x)== -cbrt(x)
。つまり、負の値の立方根は、値の絶対値の立方根を負にしたものです。 特例として:- 引数がNaNの場合、NaNが返されます。
- 引数が無限大の場合、結果は引数と同じ符号を付けた無限大になります。
- 引数がゼロの場合、結果はゼロに引数と同じ符号を付けた値になります。
計算結果は、正確な結果の1 ulp以内である必要があります。
- パラメータ:
a
- 値。- 戻り値:
a
の立方根。- 導入されたバージョン:
- 1.5
-
IEEEremainder
public static double IEEEremainder(double f1, double f2) IEEE 754標準に従って、2個の引数について剰余を計算します。 剰余の値は、計算上はf1 - f2
× nに等しくなります。ここで、nは商f1/f2
の正確な値にもっとも近い整数です。f1/f2
に同じ程度に近似する整数が2つ存在する場合、nには偶数が選択されます。 剰余が0の場合、その符号は第1引数の符号と同じになります。 特例として:- どちらかの引数がNaN、1番目の引数が無限大、2番目の引数が正のゼロまたは負のゼロの場合は、NaNが返されます。
- 1番目の引数が有限で2番目の引数が無限大の場合は、1番目の引数と同じ値が返されます。
- パラメータ:
f1
- 被除数。f2
- 除数。- 戻り値:
f1
をf2
で除算したときの剰余。
-
ceil
public static double ceil(double a) 引数の値以上で、計算上の整数と等しい、最小の(負の無限大にもっとも近い)double
値を返します。 特例として:- 引数がすでに計算上の整数と等しい場合は、引数と同じ値が返されます。
- 引数がNaN、無限大、正のゼロ、または負のゼロの場合は、引数と同じ値が返されます。
- 引数がゼロより小さく、-1.0より大きい場合は、負のゼロが返されます。
Math.ceil(x)
の値は-Math.floor(-x)
とまったく同じです。- APIのノート:
- このメソッドは、IEEE 754で定義されているroundToIntegralTowardPositive演算に対応します。
- パラメータ:
a
- 値。- 戻り値:
- 引数の値以上で、計算上の整数と等しい、最小の(負の無限大にもっとも近い)浮動小数点値。
-
floor
public static double floor(double a) 引数の値以下で、計算上の整数と等しい、最大の(正の無限大にもっとも近い)double
値を返します。 特例として:- 引数がすでに計算上の整数と等しい場合は、引数と同じ値が返されます。
- 引数がNaN、無限大、正のゼロ、または負のゼロの場合は、引数と同じ値が返されます。
- APIのノート:
- このメソッドは、IEEE 754で定義されているroundToIntegralTowardNegative演算に対応します。
- パラメータ:
a
- 値。- 戻り値:
- 引数の値以上で、計算上の整数と等しい、最大の(正の無限大にもっとも近い)浮動小数点値。
-
rint
public static double rint(double a) 引数の値にもっとも近く、計算上の整数に等しいdouble
値を返します。 数学的整数である2つのdouble
の値がどちらも等しく近い場合、結果は同等の整数値になります。 特例として:- 引数がすでに計算上の整数と等しい場合は、引数と同じ値が返されます。
- 引数がNaN、無限大、正のゼロ、または負のゼロの場合は、引数と同じ値が返されます。
- APIのノート:
- このメソッドは、IEEE 754で定義されているroundToIntegralTiesToEven演算に対応します。
- パラメータ:
a
-double
値。- 戻り値:
a
にもっとも近く、計算上の整数に等しい浮動小数点値。
-
atan2
public static double atan2(double y, double x) 直交座標(x
,y
)から極座標(r, theta)への変換から得られる角度thetaを返します。 このメソッドは、-pi - piの範囲でy/x
の逆正接(アーク・タンジェント)を計算することで、位相theta (シータ)を計算します。 特例として:- どちらかの引数がNaNの場合、結果はNaNになります。
- 1番目の引数が正のゼロで2番目の引数が正、または1番目の引数が正の有限で2番目の引数が正の無限大の場合、結果は正のゼロになります。
- 1番目の引数が負のゼロで2番目の引数が正、または1番目の引数が負の有限で2番目の引数が正の無限大の場合、結果は負のゼロになります。
- 1番目の引数が正のゼロで2番目の引数が負、または1番目の引数が正の有限で2番目の引数が負の無限大の場合、結果はpiにもっとも近似の
double
値になります。 - 1番目の引数が負のゼロで2番目の引数が負、または1番目の引数が負の有限で2番目の引数が負の無限大の場合、結果は -piにもっとも近似の
double
値になります。 - 1番目の引数が正で2番目の引数が正または負のゼロ、または1番目の引数が正の無限大で2番目の引数が有限の場合、結果はpi2にもっとも近似の
double
値になります。 - 1番目の引数が負で2番目の引数が正または負のゼロ、または1番目の引数が負の無限大で2番目の引数が有限の場合、結果は -pi/2にもっとも近似の
double
値になります。 - どちらの引数も正の無限大の場合、結果はpi/4にもっとも近似の
double
値になります。 - 1番目の引数が正の無限大で2番目の引数が負の無限大の場合、結果は3*pi/4にもっとも近似の
double
値になります。 - 1番目の引数が負の無限大で2番目の引数が正の無限大の場合、結果は -pi/4にもっとも近似の
double
値になります。 - どちらの引数も負の無限大の場合、結果は -3*pi/4にもっとも近似の
double
値になります。
計算結果は、正確な結果の2 ulp以内である必要があります。 結果は半単調なものに限ります。
- APIのノート:
- yが正符号で、有限なゼロ以外のxの場合、
atan2
の正確な数値は次のようになります:- x > 0の場合、atan(abs(y/x))
- x < 0、πの場合 - atan(abs(y/x) )
- パラメータ:
y
- 縦座標x
- 横座標- 戻り値:
- 直交座標(デカルト座標)上の点(x, y)に対応する極座標上の点(r, theta)の、theta (シータ)成分。
-
pow
public static double pow(double a, double b) 1番目の引数を、2番目の引数で累乗した値を返します。 特例として:- 2番目の引数が正のゼロまたは負のゼロの場合は、結果は1.0になります。
- 2番目の引数が1.0の場合は、結果は1番目の引数と同じ値になります。
- 2番目の引数がNaNの場合は、結果はNaNになります。
- 1番目の引数がNaNで2番目の引数がゼロでない場合、結果はNaNになります。
- 条件
- 最初の引数の絶対値が1より大きく、2番目の引数が正の無限大の場合、または
- 最初の引数の絶対値が1より小さく、2番目の引数が負の無限大の場合
- 条件
- 最初の引数の絶対値が1より大きく、2番目の引数が負の無限大の場合、または
- 最初の引数の絶対値が1より小さく、2番目の引数が正の無限大の場合
- 1番目の引数の絶対値が1で2番目の引数が無限大の場合は、結果はNaNになります。
- 条件
- 最初の引数が正のゼロ、かつ2番目の引数がゼロより大きい場合、または
- 最初の引数が正の無限大で、かつ2番目の引数がゼロより小さい場合
- 条件
- 最初の引数が正のゼロで、かつ2番目の引数がゼロより小さい場合、または
- 最初の引数が正の無限大で、かつ2番目の引数がゼロより大きい場合
- 条件
- 最初の引数が負のゼロ、かつ2番目の引数がゼロより大きいが有限の奇数の整数ではない場合、または
- 最初の引数が負の無限大であり、かつ2番目の引数がゼロより小さいが有限の奇数の整数ではない場合
- 条件
- 最初の引数が負のゼロであり、かつ2番目の引数が正の有限の奇数の整数の場合、または
- 最初の引数が負の無限大であり、かつ2番目の引数が負の有限の奇数の整数の場合
- 条件
- 最初の引数が負のゼロであり、かつ2番目の引数がゼロより小さいが有限の奇数の整数ではない場合、または
- 最初の引数が負の無限大であり、かつ2番目の引数がゼロより大きいが有限の奇数の整数ではない場合
- 条件
- 最初の引数が負のゼロであり、かつ2番目の引数が負の有限の奇数の整数の場合、または
- 最初の引数が負の無限大であり、かつ2番目の引数が正の有限の奇数の整数の場合
- 最初の引数が有限でゼロより小さい場合
- 2番目の引数が有限の偶数の整数の場合、結果は最初の引数の絶対値を2番目の引数で累乗した値に等しくなります
- 2番目の引数が有限の奇数の整数の場合、結果は最初の引数の絶対値を2番目の引数で累乗した値の負の値に等しくなります
- 2番目の引数が有限であり、かつ整数ではない場合、結果はNaNになります。
- どちらの引数も整数の場合、結果が実際
double
値として正確に表される場合は1番目の引数を2番目の引数で累乗した計算値とまったく同じ結果になります。
(上記の説明においては、
ceil
メソッドによる固定小数点、または同じことですが、floor
メソッドによる固定小数点の場合に限り、浮動小数点値は整数として考えます。 そのメソッドを適用した結果と同じ場合に限り、値は引数が1つのメソッドの固定小数点となります。)計算結果は、正確な結果の1 ulp以内である必要があります。 結果は半単調なものに限ります。
- APIのノート:
- このメソッドの特殊なケース定義は、±
1.0
のIEEE 754推奨されるpow
操作の特殊なケース定義と無限の累乗を発生させる特殊なケース定義とは異なります。 このメソッドでは、このようなケースは不確定として扱われ、NaNが返されます。 IEEE 754仕様では、無限の累乗が大きい整数 (大規模な浮動小数点数は数値整数で、特に整数です)として扱われるため、1.0
が返されます。 - パラメータ:
a
- 底。b
- 指数。- 戻り値:
- 値
a
b
-
round
public static int round(float a) 引数にもっとも近いint
を返します。同数の場合は正の無限大方向に丸めます。特例として:
- 引数がNaNの場合は、結果は0になります。
- 引数が負の無限大である場合、または
Integer.MIN_VALUE
以下の任意の値である場合、結果はInteger.MIN_VALUE
の値に等しくなります。 - 引数が正の無限大である場合、または
Integer.MAX_VALUE
以上の任意の値である場合、結果はInteger.MAX_VALUE
の値に等しくなります。
- パラメータ:
a
- 整数に丸める浮動小数点値。- 戻り値:
- 引数をもっとも近い
int
値に丸めた値。 - 関連項目:
-
round
public static long round(double a) 引数にもっとも近いlong
を返します。同数の場合は正の無限大方向に丸めます。特例として:
- 引数がNaNの場合は、結果は0になります。
- 引数が負の無限大である場合、または
Long.MIN_VALUE
以下の任意の値である場合、結果はLong.MIN_VALUE
の値に等しくなります。 - 引数が正の無限大である場合、または
Long.MAX_VALUE
以上の任意の値である場合、結果はLong.MAX_VALUE
の値に等しくなります。
- パラメータ:
a
-long
に丸める浮動小数点値。- 戻り値:
- 引数をもっとも近い
long
値に丸めた値。 - 関連項目:
-
random
public static double random()0.0
以上で1.0
より小さい、正の符号の付いたdouble
値を返します。 戻り値は、この範囲からの一様分布によって擬似乱数的に選択されます。最初にこのメソッドが呼び出されたときに、メソッドは単一の新しい擬似乱数ジェネレータを作成します。これは、次の式とまったく同じです。
この新しい擬似乱数ジェネレータは、以後このメソッドへのすべての呼出しに使われます。ほかの場所では使われません。new java.util.Random()
このメソッドは、複数のスレッドが正しく使えるよう適切に同期されます。 しかし、多数のスレッドで擬似乱数を高頻度で発生する必要がある場合は、スレッド独自の擬似乱数ジェネレータを用意して各スレッドのコンテンションを減らしてもかまいません。
- APIのノート:
1.0
より小さい最大のdouble
値はdouble
であるため、クローズ範囲[x1,x2]
でx1<=x2
の値x
は文により定期されるかもしれません。double f = Math.random()/Math.nextDown(1.0); double x = x1*(1.0 - f) + x2*f;
- 戻り値:
0.0
以上1.0
未満の擬似乱数double
。- 関連項目:
-
addExact
public static int addExact(int x, int y) 引数の合計を返します。結果がint
をオーバーフローする場合は例外をスローします。- パラメータ:
x
- 最初の値y
- 2番目の値- 戻り値:
- 結果
- 例外:
ArithmeticException
- 結果がintをオーバーフローする場合- 導入されたバージョン:
- 1.8
-
addExact
public static long addExact(long x, long y) 引数の合計を返します。その結果がlong
をオーバーフローする場合は例外をスローします。- パラメータ:
x
- 最初の値y
- 2番目の値- 戻り値:
- 結果
- 例外:
ArithmeticException
- 結果がlongをオーバーフローする場合- 導入されたバージョン:
- 1.8
-
subtractExact
public static int subtractExact(int x, int y) 引数の差分を返します。結果がint
をオーバーフローした場合は例外をスローします。- パラメータ:
x
- 最初の値y
- 最初の値から減算する2番目の値- 戻り値:
- 結果
- 例外:
ArithmeticException
- 結果がintをオーバーフローする場合- 導入されたバージョン:
- 1.8
-
subtractExact
public static long subtractExact(long x, long y) 引数の差分を返します。結果がlong
をオーバーフローした場合は例外をスローします。- パラメータ:
x
- 最初の値y
- 最初の値から減算する2番目の値- 戻り値:
- 結果
- 例外:
ArithmeticException
- 結果がlongをオーバーフローする場合- 導入されたバージョン:
- 1.8
-
multiplyExact
public static int multiplyExact(int x, int y) 引数の積を返します。結果がint
をオーバーフローした場合は例外をスローします。- パラメータ:
x
- 最初の値y
- 2番目の値- 戻り値:
- 結果
- 例外:
ArithmeticException
- 結果がintをオーバーフローする場合- 導入されたバージョン:
- 1.8
-
multiplyExact
public static long multiplyExact(long x, int y) 引数の積を返します。結果がlong
をオーバーフローした場合は例外をスローします。- パラメータ:
x
- 最初の値y
- 2番目の値- 戻り値:
- 結果
- 例外:
ArithmeticException
- 結果がlongをオーバーフローする場合- 導入されたバージョン:
- 9
-
multiplyExact
public static long multiplyExact(long x, long y) 引数の積を返します。結果がlong
をオーバーフローした場合は例外をスローします。- パラメータ:
x
- 最初の値y
- 2番目の値- 戻り値:
- 結果
- 例外:
ArithmeticException
- 結果がlongをオーバーフローする場合- 導入されたバージョン:
- 1.8
-
divideExact
public static int divideExact(int x, int y) 結果がint
をオーバーフローした場合に例外をスローして、引数の商を返します。 このようなオーバーフローは、x
がInteger.MIN_VALUE
で、y
が-1
の場合にこのメソッドで発生します。 一方、Integer.MIN_VALUE / -1
が直接評価された場合、結果はInteger.MIN_VALUE
となり、例外はスローされません。y
がゼロの場合、ArithmeticException
は(JLS 15.17.2)がスローされます。組込みの剰余演算子"
%
"は、このメソッドと組込みの除算演算子"/
"の両方に対応する適切な演算子です。- パラメータ:
x
- 被除数y
- 除数- 戻り値:
- 商
x / y
- 例外:
ArithmeticException
-y
が0の場合、または商がintをオーバーフローする場合- Java言語仕様を参照してください:
-
「15.17.2 部署演算子 /」
- 導入されたバージョン:
- 18
-
divideExact
public static long divideExact(long x, long y) 結果がlong
をオーバーフローした場合に例外をスローして、引数の商を返します。 このようなオーバーフローは、x
がLong.MIN_VALUE
で、y
が-1
の場合にこのメソッドで発生します。 一方、Long.MIN_VALUE / -1
が直接評価された場合、結果はLong.MIN_VALUE
となり、例外はスローされません。y
がゼロの場合、ArithmeticException
は(JLS 15.17.2)がスローされます。組込みの剰余演算子"
%
"は、このメソッドと組込みの除算演算子"/
"の両方に対応する適切な演算子です。- パラメータ:
x
- 被除数y
- 除数- 戻り値:
- 商
x / y
- 例外:
ArithmeticException
-y
がゼロの場合、または商が長すぎる場合- Java言語仕様を参照してください:
-
「15.17.2 部署演算子 /」
- 導入されたバージョン:
- 18
-
floorDivExact
public static int floorDivExact(int x, int y) 商代数以下の最大(正の無限大にもっとも近い)int
値を返します。 このメソッドはfloorDiv(int,int)
と同じです。ただし、除算がInteger.MIN _VALUEで、除算が-1
の場合、整数オーバーフローを無視してInteger.MIN_VALUE
を返すのではなく、ArithmeticException
をスローします。floor modulusメソッド
floorMod(int,int)
は、このメソッドとfloorDiv(int,int)
メソッドの両方に対応する適切なメソッドです。例については、
floorDiv(int, int)
を参照してください。- パラメータ:
x
- 被除数y
- 除数- 戻り値:
- 商代数以下の最大(正の無限大にもっとも近い)
int
値。 - 例外:
ArithmeticException
- 除数y
がゼロの場合、または分割x
がInteger.MIN_VALUE
で、除数y
が-1
の場合。- 導入されたバージョン:
- 18
- 関連項目:
-
floorDivExact
public static long floorDivExact(long x, long y) 商代数以下の最大(正の無限大にもっとも近い)long
値を返します。 このメソッドはfloorDiv(long,long)
と同じです。ただし、除算がLong.MIN _VALUEで、除算が-1
の場合、整数オーバーフローを無視してLong.MIN_VALUE
を返すのではなく、ArithmeticException
をスローします。floor modulusメソッド
floorMod(long,long)
は、このメソッドとfloorDiv(long,long)
メソッドの両方に対応する適切なメソッドです。例については、
floorDiv(int, int)
を参照してください。- パラメータ:
x
- 被除数y
- 除数- 戻り値:
- 商代数以下の最大(正の無限大にもっとも近い)
long
値。 - 例外:
ArithmeticException
- 除数y
がゼロの場合、または分割x
がLong.MIN_VALUE
で、除数y
が-1
の場合。- 導入されたバージョン:
- 18
- 関連項目:
-
ceilDivExact
public static int ceilDivExact(int x, int y) 代数商以上の最小の(負の無限大に近い)int
値を返します。 このメソッドはceilDiv(int,int)
と同じです。ただし、除算がInteger.MIN _VALUEで、除算が-1
の場合、整数オーバーフローを無視してInteger.MIN_VALUE
を返すのではなく、ArithmeticException
をスローします。このメソッドと
ceilDiv(int,int)
メソッドの両方に、ceil modulusメソッドceilMod(int,int)
が適しています。例については、
ceilDiv(int, int)
を参照してください。- パラメータ:
x
- 被除数y
- 除数- 戻り値:
- 代数商以上の最小の(負の無限大に近い)
int
値。 - 例外:
ArithmeticException
- 除数y
がゼロの場合、または分割x
がInteger.MIN_VALUE
で、除数y
が-1
の場合。- 導入されたバージョン:
- 18
- 関連項目:
-
ceilDivExact
public static long ceilDivExact(long x, long y) 代数商の最小の(負の無限大に近い)long
値を返します。 このメソッドはceilDiv(long,long)
と同じです。ただし、除算がLong.MIN _VALUEで、除算が-1
の場合、整数オーバーフローを無視してLong.MIN_VALUE
を返すのではなく、ArithmeticException
をスローします。このメソッドと
ceilDiv(long,long)
メソッドの両方に、ceil modulusメソッドceilMod(long,long)
が適しています。例については、
ceilDiv(int, int)
を参照してください。- パラメータ:
x
- 被除数y
- 除数- 戻り値:
- 代数商以上の最小の(負の無限大に近い)
long
値。 - 例外:
ArithmeticException
- 除数y
がゼロの場合、または分割x
がLong.MIN_VALUE
で、除数y
が-1
の場合。- 導入されたバージョン:
- 18
- 関連項目:
-
incrementExact
public static int incrementExact(int a) 引数を1だけ増分して返します。結果がint
をオーバーフローした場合は例外をスローします。 オーバーフローは「最大値」に対してのみ発生します。- パラメータ:
a
- 増分する値- 戻り値:
- 結果
- 例外:
ArithmeticException
- 結果がintをオーバーフローする場合- 導入されたバージョン:
- 1.8
-
incrementExact
public static long incrementExact(long a) 引数を1だけ増分して返します。結果がlong
をオーバーフローした場合は例外をスローします。 オーバーフローは「最大値」に対してのみ発生します。- パラメータ:
a
- 増分する値- 戻り値:
- 結果
- 例外:
ArithmeticException
- 結果がlongをオーバーフローする場合- 導入されたバージョン:
- 1.8
-
decrementExact
public static int decrementExact(int a) 引数を1だけ減分したものを返します。結果がint
をオーバーフローする場合は例外をスローします。 オーバーフローは「最小値」に対してのみ発生します。- パラメータ:
a
- 減分する値- 戻り値:
- 結果
- 例外:
ArithmeticException
- 結果がintをオーバーフローする場合- 導入されたバージョン:
- 1.8
-
decrementExact
public static long decrementExact(long a) 引数を1だけ減分したものを返します。結果がlong
をオーバーフローする場合は例外をスローします。 オーバーフローは「最小値」に対してのみ発生します。- パラメータ:
a
- 減分する値- 戻り値:
- 結果
- 例外:
ArithmeticException
- 結果がlongをオーバーフローする場合- 導入されたバージョン:
- 1.8
-
negateExact
public static int negateExact(int a) 引数の否定を返します。結果がint
をオーバーフローした場合は例外をスローします。 オーバーフローは「最小値」に対してのみ発生します。- パラメータ:
a
- 否定する値- 戻り値:
- 結果
- 例外:
ArithmeticException
- 結果がintをオーバーフローする場合- 導入されたバージョン:
- 1.8
-
negateExact
public static long negateExact(long a) 引数の否定を返します。結果がlong
をオーバーフローした場合は例外をスローします。 オーバーフローは「最小値」に対してのみ発生します。- パラメータ:
a
- 否定する値- 戻り値:
- 結果
- 例外:
ArithmeticException
- 結果がlongをオーバーフローする場合- 導入されたバージョン:
- 1.8
-
toIntExact
public static int toIntExact(long value) long
引数の値を返します。その値がint
をオーバーフローする場合は例外をスローします。- パラメータ:
value
- long値- 戻り値:
- intとしての引数
- 例外:
ArithmeticException
-argument
がintをオーバーフローする場合- 導入されたバージョン:
- 1.8
-
multiplyFull
public static long multiplyFull(int x, int y) 引数の正確な数学的積を返します。- パラメータ:
x
- 最初の値y
- 2番目の値- 戻り値:
- 結果
- 導入されたバージョン:
- 9
-
multiplyHigh
public static long multiplyHigh(long x, long y) 2つの64ビット・ファクタの128ビット製品の最上位64ビットをlong
として返します。- パラメータ:
x
- 最初の値y
- 2番目の値- 戻り値:
- 結果
- 導入されたバージョン:
- 9
- 関連項目:
-
unsignedMultiplyHigh
public static long unsignedMultiplyHigh(long x, long y) 符号なし64ビット・ファクタの符号なし128ビット積の最も重要な64ビットをlong
として返します。- パラメータ:
x
- 最初の値y
- 2番目の値- 戻り値:
- 結果
- 導入されたバージョン:
- 18
- 関連項目:
-
floorDiv
public static int floorDiv(int x, int y) 商代数以下の最大(正の無限大にもっとも近い)int
値を返します。 特殊なケースが1つあります: 配当がInteger.MIN _VALUEで、除数が-1
の場合、整数のオーバーフローが発生し、結果はInteger.MIN_VALUE
になります。通常の整数除算は、ゼロに丸める丸めモード(切捨て)に従って行われます。 この演算は、代わりに負の無限大に近づくように丸める(floor)丸めモードに従って行われます。 floorの端数処理モードでは、正確な商が整数ではなく負の場合、切り捨ての結果が異なります。
- 引数の符号が同じである場合、
floorDiv
と/
演算子の結果は同じになります。
たとえば、floorDiv(4, 3) == 1
であり、(4 / 3) == 1
になります。 - 引数の符号が異なる場合、
floorDiv
は商以下の最大の整数を返し、/
演算子は商以上の最小の整数を返します。 商が整数でない場合にのみ異なります。
たとえば、floorDiv(-4, 3) == -2
であるのに対し、(-4 / 3) == -1
になります。
- パラメータ:
x
- 被除数y
- 除数- 戻り値:
- 商代数以下の最大(正の無限大にもっとも近い)
int
値。 - 例外:
ArithmeticException
- 除数y
がゼロである場合- 導入されたバージョン:
- 1.8
- 関連項目:
- 引数の符号が同じである場合、
-
floorDiv
public static long floorDiv(long x, int y) 商代数以下の最大(正の無限大にもっとも近い)long
値を返します。 特殊なケースが1つあります: 配当がLong.MIN _VALUEで、除数が-1
の場合、整数のオーバーフローが発生し、結果はLong.MIN_VALUE
になります。通常の整数除算は、ゼロに丸める丸めモード(切捨て)に従って行われます。 この演算は、代わりに負の無限大に近づくように丸める(floor)丸めモードに従って行われます。 floorの端数処理モードでは、正確な結果が整数ではなく負の場合、切り捨ての結果が異なります。
例については、
floorDiv(int, int)
を参照してください。- パラメータ:
x
- 被除数y
- 除数- 戻り値:
- 商代数以下の最大(正の無限大にもっとも近い)
long
値。 - 例外:
ArithmeticException
- 除数y
がゼロである場合- 導入されたバージョン:
- 9
- 関連項目:
-
floorDiv
public static long floorDiv(long x, long y) 商代数以下の最大(正の無限大にもっとも近い)long
値を返します。 特殊なケースが1つあります: 配当がLong.MIN _VALUEで、除数が-1
の場合、整数のオーバーフローが発生し、結果はLong.MIN_VALUE
になります。通常の整数除算は、ゼロに丸める丸めモード(切捨て)に従って行われます。 この演算は、代わりに負の無限大に近づくように丸める(floor)丸めモードに従って行われます。 floorの端数処理モードでは、正確な結果が整数ではなく負の場合、切り捨ての結果が異なります。
例については、
floorDiv(int, int)
を参照してください。- パラメータ:
x
- 被除数y
- 除数- 戻り値:
- 商代数以下の最大(正の無限大にもっとも近い)
long
値。 - 例外:
ArithmeticException
- 除数y
がゼロである場合- 導入されたバージョン:
- 1.8
- 関連項目:
-
floorMod
public static int floorMod(int x, int y) int
引数のフロア・モジュラスを返します。floor modulusは
r = x - (floorDiv(x, y) * y)
で、除数y
と同じ符号を持つか、ゼロで、-abs(y) < r < +abs(y)
の範囲にあります。floorDiv
とfloorMod
の関係は次のようになります。floorDiv(x, y) * y + floorMod(x, y) == x
floorMod
演算子と%
演算子の値の違いは、floorDiv
演算子と/
演算子の違いによるものです(floorDiv(int, int)を参照)。例
- 引数の符号に関係なく、
floorMod
(x, y)は、x % y
がゼロの場合も正確にゼロになります。 floorMod
(x, y)もx % y
も0(ゼロ)でもない場合、引数の符号が異なると正確に異なります。
floorMod(+4, +3) == +1
および(+4 % +3) == +1
floorMod(-4, -3) == -1
および(-4 % -3) == -1
floorMod(+4, -3) == -2
; および(+4 % -3) == +1
floorMod(-4, +3) == +2
; および(-4 % +3) == -1
- パラメータ:
x
- 被除数y
- 除数- 戻り値:
- フロア・モジュラス
x - (floorDiv(x, y) * y)
- 例外:
ArithmeticException
- 除数y
がゼロである場合- 導入されたバージョン:
- 1.8
- 関連項目:
-
floorMod
public static int floorMod(long x, int y) long
およびint
引数のフロア・モジュラスを返します。floor modulusは
r = x - (floorDiv(x, y) * y)
で、除数y
と同じ符号を持つか、ゼロで、-abs(y) < r < +abs(y)
の範囲にあります。floorDiv
とfloorMod
の関係は次のようになります。floorDiv(x, y) * y + floorMod(x, y) == x
例については、
floorMod(int, int)
を参照してください。- パラメータ:
x
- 被除数y
- 除数- 戻り値:
- フロア・モジュラス
x - (floorDiv(x, y) * y)
- 例外:
ArithmeticException
- 除数y
がゼロである場合- 導入されたバージョン:
- 9
- 関連項目:
-
floorMod
public static long floorMod(long x, long y) long
引数のフロア・モジュラスを返します。floor modulusは
r = x - (floorDiv(x, y) * y)
で、除数y
と同じ符号を持つか、ゼロで、-abs(y) < r < +abs(y)
の範囲にあります。floorDiv
とfloorMod
の関係は次のようになります。floorDiv(x, y) * y + floorMod(x, y) == x
例については、
floorMod(int, int)
を参照してください。- パラメータ:
x
- 被除数y
- 除数- 戻り値:
- フロア・モジュラス
x - (floorDiv(x, y) * y)
- 例外:
ArithmeticException
- 除数y
がゼロである場合- 導入されたバージョン:
- 1.8
- 関連項目:
-
ceilDiv
public static int ceilDiv(int x, int y) 代数商以上の最小の(負の無限大に近い)int
値を返します。 特殊なケースが1つあります: 配当がInteger.MIN _VALUEで、除数が-1
の場合、整数のオーバーフローが発生し、結果はInteger.MIN_VALUE
になります。通常の整数除算は、ゼロに丸める丸めモード(切捨て)に従って行われます。 代わりに、この操作は、正の無限大の (ceiling)丸めモードに対して丸められます。 ceilingの端数処理モードでは、正確な商が整数ではなく正の場合、切り捨ての結果が異なります。
- 引数の符号が異なる場合、
ceilDiv
および/
演算子の結果は同じです。
たとえば、ceilDiv(-4, 3) == -1
および(-4 / 3) == -1
です。 - 引数の符号が同じ場合、
ceilDiv
は商以上の最小の整数を返し、/
演算子は商以下の最大整数を返します。 商が整数でない場合にのみ異なります。
たとえば、ceilDiv(4, 3) == 2
、(4 / 3) == 1
などです。
- パラメータ:
x
- 被除数y
- 除数- 戻り値:
- 代数商以上の最小の(負の無限大に近い)
int
値。 - 例外:
ArithmeticException
- 除数y
がゼロである場合- 導入されたバージョン:
- 18
- 関連項目:
- 引数の符号が異なる場合、
-
ceilDiv
public static long ceilDiv(long x, int y) 代数商の最小の(負の無限大に近い)long
値を返します。 特殊なケースが1つあります: 配当がLong.MIN _VALUEで、除数が-1
の場合、整数のオーバーフローが発生し、結果はLong.MIN_VALUE
になります。通常の整数除算は、ゼロに丸める丸めモード(切捨て)に従って行われます。 代わりに、この操作は、正の無限大の (ceiling)丸めモードに対して丸められます。 ceilingの端数処理モードでは、正確な結果が整数ではなく正の場合、切り捨ての結果が異なります。
例については、
ceilDiv(int, int)
を参照してください。- パラメータ:
x
- 被除数y
- 除数- 戻り値:
- 代数商以上の最小の(負の無限大に近い)
long
値。 - 例外:
ArithmeticException
- 除数y
がゼロである場合- 導入されたバージョン:
- 18
- 関連項目:
-
ceilDiv
public static long ceilDiv(long x, long y) 代数商の最小の(負の無限大に近い)long
値を返します。 特殊なケースが1つあります: 配当がLong.MIN _VALUEで、除数が-1
の場合、整数のオーバーフローが発生し、結果はLong.MIN_VALUE
になります。通常の整数除算は、ゼロに丸める丸めモード(切捨て)に従って行われます。 代わりに、この操作は、正の無限大の (ceiling)丸めモードに対して丸められます。 ceilingの端数処理モードでは、正確な結果が整数ではなく正の場合、切り捨ての結果が異なります。
例については、
ceilDiv(int, int)
を参照してください。- パラメータ:
x
- 被除数y
- 除数- 戻り値:
- 代数商以上の最小の(負の無限大に近い)
long
値。 - 例外:
ArithmeticException
- 除数y
がゼロである場合- 導入されたバージョン:
- 18
- 関連項目:
-
ceilMod
public static int ceilMod(int x, int y) int
引数のceiling modulusを返します。ceiling modulusは
r = x - (ceilDiv(x, y) * y)
で、除数y
として逆の符号を持つか、または0であり、-abs(y) < r < +abs(y)
の範囲にあります。ceilDiv
とceilMod
の関係は次のようになります:ceilDiv(x, y) * y + ceilMod(x, y) == x
ceilMod
演算子と%
演算子の値の違いは、ceilDiv
演算子と/
演算子の違いによるものです(ceilDiv(int, int)を参照)。例
- 引数の符号に関係なく、
ceilMod
(x, y)は、x % y
がゼロの場合も正確にゼロになります。 ceilMod
(x, y)もx % y
もゼロでもない場合、引数の符号が同じ場合とまったく異なります。
ceilMod(+4, +3) == -2
および(+4 % +3) == +1
ceilMod(-4, -3) == +2
および(-4 % -3) == -1
ceilMod(+4, -3) == +1
および(+4 % -3) == +1
ceilMod(-4, +3) == -1
および(-4 % +3) == -1
- パラメータ:
x
- 被除数y
- 除数- 戻り値:
- ceiling modulus
x - (ceilDiv(x, y) * y)
- 例外:
ArithmeticException
- 除数y
がゼロである場合- 導入されたバージョン:
- 18
- 関連項目:
-
ceilMod
public static int ceilMod(long x, int y) long
およびint
引数のceiling modulusを返します。ceiling modulusは
r = x - (ceilDiv(x, y) * y)
で、除数y
として逆の符号を持つか、または0であり、-abs(y) < r < +abs(y)
の範囲にあります。ceilDiv
とceilMod
の関係は次のようになります:ceilDiv(x, y) * y + ceilMod(x, y) == x
例については、
ceilMod(int, int)
を参照してください。- パラメータ:
x
- 被除数y
- 除数- 戻り値:
- ceiling modulus
x - (ceilDiv(x, y) * y)
- 例外:
ArithmeticException
- 除数y
がゼロである場合- 導入されたバージョン:
- 18
- 関連項目:
-
ceilMod
public static long ceilMod(long x, long y) long
引数のceiling modulusを返します。ceiling modulusは
r = x - (ceilDiv(x, y) * y)
で、除数y
として逆の符号を持つか、または0であり、-abs(y) < r < +abs(y)
の範囲にあります。ceilDiv
とceilMod
の関係は次のようになります:ceilDiv(x, y) * y + ceilMod(x, y) == x
例については、
ceilMod(int, int)
を参照してください。- パラメータ:
x
- 被除数y
- 除数- 戻り値:
- ceiling modulus
x - (ceilDiv(x, y) * y)
- 例外:
ArithmeticException
- 除数y
がゼロである場合- 導入されたバージョン:
- 18
- 関連項目:
-
abs
public static int abs(int a) int
値の絶対値を返します。 引数が負でない場合は引数そのものを返します。 負のときは、その正負を逆にした値を返します。引数が
Integer.MIN_VALUE
の値(int
の最小値)と等しい場合は、結果も同じ値(負の値)になります。 対照的に、absExact(int)
メソッドはこの値に対してArithmeticException
をスローします。- パラメータ:
a
- 絶対値を決定する引数- 戻り値:
- 引数の絶対値。
- 関連項目:
-
absExact
public static int absExact(int a) int
値がint
として正確に表現可能な場合は、その数学的絶対値を返します。結果が正のint
範囲をオーバーフローした場合は、ArithmeticException
をスローします。2つの補数整数の範囲は、負の値の(JLS 4.2.1)が追加された非対称であるため、
Integer.MIN_VALUE
の数学的絶対値は正のint
範囲をオーバーフローするため、その引数に対して例外がスローされます。- パラメータ:
a
- 絶対値を決定する引数- 戻り値:
- オーバーフローが発生しないかぎり、引数の絶対値
- 例外:
ArithmeticException
- 引数がInteger.MIN_VALUE
の場合- 導入されたバージョン:
- 15
- 関連項目:
-
abs
public static long abs(long a) long
値の絶対値を返します。 引数が負でない場合は引数そのものを返します。 負のときは、その正負を逆にした値を返します。引数が
Long.MIN_VALUE
の値(long
の最小値)と等しい場合は、結果も同じ値(負の値)になります。 対照的に、absExact(long)
メソッドはこの値に対してArithmeticException
をスローします。- パラメータ:
a
- 絶対値を決定する引数- 戻り値:
- 引数の絶対値。
- 関連項目:
-
absExact
public static long absExact(long a) long
値がlong
として正確に表現可能な場合は、その数学的絶対値を返します。結果が正のlong
範囲をオーバーフローした場合は、ArithmeticException
をスローします。2つの補数整数の範囲は、負の値の(JLS 4.2.1)が追加された非対称であるため、
Long.MIN_VALUE
の数学的絶対値は正のlong
範囲をオーバーフローするため、その引数に対して例外がスローされます。- パラメータ:
a
- 絶対値を決定する引数- 戻り値:
- オーバーフローが発生しないかぎり、引数の絶対値
- 例外:
ArithmeticException
- 引数がLong.MIN_VALUE
の場合- 導入されたバージョン:
- 15
- 関連項目:
-
abs
public static float abs(float a) float
値の絶対値を返します。 引数が負でない場合は引数そのものを返します。 負のときは、その正負を逆にした値を返します。 特例として:- 引数が正のゼロまたは負のゼロの場合は、正のゼロを返します。
- 引数が無限大の場合は、正の無限大値を返します。
- 引数がNaNの場合は、NaNを返します。
- APIのノート:
- 前述のように、このメソッドの有効な実装の1つが、引数と同じ指数および仮数を持つ
float
を計算する次の式によって指定されますが、正の値を示す保証付きゼロ記号ビットが使用されます:Float.intBitsToFloat(0x7fffffff & Float.floatToRawIntBits(a))
- パラメータ:
a
- 絶対値を決定する引数- 戻り値:
- 引数の絶対値。
-
abs
public static double abs(double a) double
値の絶対値を返します。 引数が負でない場合は引数そのものを返します。 負のときは、その正負を逆にした値を返します。 特例として:- 引数が正のゼロまたは負のゼロの場合は、正のゼロを返します。
- 引数が無限大の場合は、正の無限大値を返します。
- 引数がNaNの場合は、NaNを返します。
- APIのノート:
- 前述のように、このメソッドの有効な実装の1つが、引数と同じ指数および仮数を持つ
double
を計算する次の式によって指定されますが、正の値を示す保証付きゼロ記号ビットが使用されます:Double.longBitsToDouble((Double.doubleToRawLongBits(a)<<1)>>>1)
- パラメータ:
a
- 絶対値を決定する引数- 戻り値:
- 引数の絶対値。
-
max
public static int max(int a, int b) - パラメータ:
a
- 引数。b
- 別の引数。- 戻り値:
a
とb
のどちらか大きい方。
-
max
public static long max(long a, long b) - パラメータ:
a
- 引数。b
- 別の引数。- 戻り値:
a
とb
のどちらか大きい方。
-
max
public static float max(float a, float b) 2つのfloat
値のうち大きいほうを返します。 つまり、結果は正の無限大に近いほうの引数となります。 引数の値が同じ場合は同じ値を返します。 どちらかの値がNaNの場合はNaNを返します。 数値比較演算子とは異なり、このメソッドは負のゼロが厳密には正のゼロよりも小さいと見なします。 一方の引数が正のゼロでもう一方が負のゼロの場合は、正のゼロを返します。- APIのノート:
- このメソッドは、IEEE 754で定義されている最大演算数に対応します。
- パラメータ:
a
- 引数。b
- 別の引数。- 戻り値:
a
とb
のどちらか大きい方。
-
max
public static double max(double a, double b) 2つのdouble
値のうち大きいほうを返します。 つまり、結果は正の無限大に近いほうの引数となります。 引数の値が同じ場合は同じ値を返します。 どちらかの値がNaNの場合はNaNを返します。 数値比較演算子とは異なり、このメソッドは負のゼロが厳密には正のゼロよりも小さいと見なします。 一方の引数が正のゼロでもう一方が負のゼロの場合は、正のゼロを返します。- APIのノート:
- このメソッドは、IEEE 754で定義されている最大演算数に対応します。
- パラメータ:
a
- 引数。b
- 別の引数。- 戻り値:
a
とb
のどちらか大きい方。
-
min
public static int min(int a, int b) - パラメータ:
a
- 引数。b
- 別の引数。- 戻り値:
a
とb
のどちらか小さい方。
-
min
public static long min(long a, long b) - パラメータ:
a
- 引数。b
- 別の引数。- 戻り値:
a
とb
のどちらか小さい方。
-
min
public static float min(float a, float b) 2つのfloat
値のうち小さいほうを返します。 つまり、結果は負の無限大に近いほうの値となります。 引数の値が同じ場合は同じ値を返します。 どちらかの値がNaNの場合はNaNを返します。 数値比較演算子とは異なり、このメソッドは負のゼロが厳密には正のゼロよりも小さいと見なします。 一方の引数が正のゼロでもう一方が負のゼロの場合は、負のゼロを返します。- APIのノート:
- このメソッドは、IEEE 754で定義されている最小動作に対応します。
- パラメータ:
a
- 引数。b
- 別の引数。- 戻り値:
a
とb
のどちらか小さい方。
-
min
public static double min(double a, double b) 2つのdouble
値のうち小さいほうを返します。 つまり、結果は負の無限大に近いほうの値となります。 引数の値が同じ場合は同じ値を返します。 どちらかの値がNaNの場合はNaNを返します。 数値比較演算子とは異なり、このメソッドは負のゼロが厳密には正のゼロよりも小さいと見なします。 一方の引数が正のゼロでもう一方が負のゼロの場合は、負のゼロを返します。- APIのノート:
- このメソッドは、IEEE 754で定義されている最小動作に対応します。
- パラメータ:
a
- 引数。b
- 別の引数。- 戻り値:
a
とb
のどちらか小さい方。
-
clamp
public static int clamp(long value, int min, int max) 最小と最大に収まるように値をクランプします。値がmin
より小さい場合、min
が返されます。 値がmax
より大きい場合は、max
が返されます。 それ以外の場合は、元の値が返されます。long型の元の値はint型に収まらない場合がありますが、境界はint型であるため、結果は常にint型に収まります。 これにより、メソッドを使用して、飽和状態でlong値をintに安全にキャストできます。
- パラメータ:
value
- クランプする値min
- 最小許容値max
- 最大許容値- 戻り値:
min..max
間隔に収まるクランプ値- 例外:
IllegalArgumentException
-min > max
の場合- 導入されたバージョン:
- 21
-
clamp
public static long clamp(long value, long min, long max) 最小と最大に収まるように値をクランプします。値がmin
より小さい場合、min
が返されます。 値がmax
より大きい場合は、max
が返されます。 それ以外の場合は、元の値が返されます。- パラメータ:
value
- クランプする値min
- 最小許容値max
- 最大許容値- 戻り値:
min..max
間隔に収まるクランプ値- 例外:
IllegalArgumentException
-min > max
の場合- 導入されたバージョン:
- 21
-
clamp
public static double clamp(double value, double min, double max) 最小と最大に収まるように値をクランプします。値がmin
より小さい場合、min
が返されます。 値がmax
より大きい場合は、max
が返されます。 それ以外の場合は、元の値が返されます。 値がNaNの場合、結果もNaNになります。数値比較演算子とは異なり、このメソッドは負のゼロが厳密には正のゼロよりも小さいと見なします。 たとえば、
clamp(-0.0, 0.0, 1.0)
は0.0を返します。- パラメータ:
value
- クランプする値min
- 最小許容値max
- 最大許容値- 戻り値:
min..max
間隔に収まるクランプ値- 例外:
IllegalArgumentException
-min
およびmax
引数のいずれかがNaN、min > max
、またはmin
が+0.0、max
が -0.0の場合。- 導入されたバージョン:
- 21
-
clamp
public static float clamp(float value, float min, float max) 最小と最大に収まるように値をクランプします。値がmin
より小さい場合、min
が返されます。 値がmax
より大きい場合は、max
が返されます。 それ以外の場合は、元の値が返されます。 値がNaNの場合、結果もNaNになります。数値比較演算子とは異なり、このメソッドは負のゼロが厳密には正のゼロよりも小さいと見なします。 たとえば、
clamp(-0.0f, 0.0f, 1.0f)
は0.0fを返します。- パラメータ:
value
- クランプする値min
- 最小許容値max
- 最大許容値- 戻り値:
min..max
間隔に収まるクランプ値- 例外:
IllegalArgumentException
-min
およびmax
引数のいずれかがNaN、min > max
、またはmin
が+0.0f、max
が -0.0fの場合。- 導入されたバージョン:
- 21
-
fma
public static double fma(double a, double b, double c) 3つの引数の融合積加算を返します。つまり、3番目の引数で合計された最初の2つの引数の正確な積を返し、1回を最も近いdouble
に丸めます。 丸めは「最も近い偶数丸めモードへの丸め」を使用して行われます。 対照的に、a * b + c
が通常の浮動小数点式として評価される場合、2つの端数処理エラー(乗算操作の1つ目、加算操作の2つ目)が関係します。特例として:
- 引数がNaNの場合、結果はNaNになります。
- 最初の2つの引数のいずれかが無限で、もう一方がゼロの場合、結果はNaNになります。
- 最初の2つの引数の正確な積が無限(つまり、少なくとも1つの引数が無限であり、もう1つはゼロでもNaNでもありません)で、3番目の引数が反対の符号の無限大である場合、結果はNaNになります。
fma(a, 1.0, c)
は(a + c
)と同じ結果を返します。 ただし、fma(-0.0, +0.0, +0.0)
は+0.0
、(-0.0 * +0.0
)は-0.0
、fma(a, b, -0.0)
は(a * b
)と同等であるため、fma(a, b, +0.0)
は必ずしも(a * b
)と同じ結果を返すわけではありません。- APIのノート:
- このメソッドは、IEEE 754で定義されているfusedMultiplyAdd演算に対応します。
- パラメータ:
a
- 値b
- 値c
- 値- 戻り値:
- (a × b + c)は、範囲と精度が無制限であるかのように計算され、1回は最も近い
double
値に丸められます - 導入されたバージョン:
- 9
-
fma
public static float fma(float a, float b, float c) 3つの引数の融合積加算を返します。つまり、3番目の引数で合計された最初の2つの引数の正確な積を返し、1回を最も近いfloat
に丸めます。 丸めは「最も近い偶数丸めモードへの丸め」を使用して行われます。 対照的に、a * b + c
が通常の浮動小数点式として評価される場合、2つの端数処理エラー(乗算操作の1つ目、加算操作の2つ目)が関係します。特例として:
- 引数がNaNの場合、結果はNaNになります。
- 最初の2つの引数のいずれかが無限で、もう一方がゼロの場合、結果はNaNになります。
- 最初の2つの引数の正確な積が無限(つまり、少なくとも1つの引数が無限であり、もう1つはゼロでもNaNでもありません)で、3番目の引数が反対の符号の無限大である場合、結果はNaNになります。
fma(a, 1.0f, c)
は(a + c
)と同じ結果を返します。 ただし、fma(-0.0f, +0.0f, +0.0f)
は+0.0f
、(-0.0f * +0.0f
)は-0.0f
、fma(a, b, -0.0f)
は(a * b
)と同等であるため、fma(a, b, +0.0f)
は必ずしも(a * b
)と同じ結果を返すわけではありません。- APIのノート:
- このメソッドは、IEEE 754で定義されているfusedMultiplyAdd演算に対応します。
- パラメータ:
a
- 値b
- 値c
- 値- 戻り値:
- (a × b + c)は、範囲と精度が無制限であるかのように計算され、1回は最も近い
float
値に丸められます - 導入されたバージョン:
- 9
-
ulp
public static double ulp(double d) 引数のulpのサイズを返します。double
値の最後の位置にあるulpの単位は、この浮動小数点値と次に大きい大きさのdouble
値の間の正の距離です。 xがNaNでない場合は、ulp(-x)== ulp(x)
となります。特例として:
- 引数がNaNの場合、NaNが返されます。
- 引数が正または負の無限大の場合は、結果は正の無限大になります。
- 引数が正または負のゼロの場合は、結果は
Double.MIN_VALUE
になります。 - 引数が±
Double.MAX_VALUE
の場合、結果は2971に等しくなります。
- パラメータ:
d
- ulpが返される浮動小数点値- 戻り値:
- 引数のulpのサイズ
- 導入されたバージョン:
- 1.5
-
ulp
public static float ulp(float f) 引数のulpのサイズを返します。float
値の最後の位置にあるulpの単位は、この浮動小数点値と次に大きい大きさのfloat
値の間の正の距離です。 xがNaNでない場合は、ulp(-x)== ulp(x)
となります。特例として:
- 引数がNaNの場合、NaNが返されます。
- 引数が正または負の無限大の場合は、結果は正の無限大になります。
- 引数が正または負のゼロの場合は、結果は
Float.MIN_VALUE
になります。 - 引数が±
Float.MAX_VALUE
の場合、結果は2104に等しくなります。
- パラメータ:
f
- ulpが返される浮動小数点値- 戻り値:
- 引数のulpのサイズ
- 導入されたバージョン:
- 1.5
-
signum
public static double signum(double d) 引数の符号要素を返します。引数がゼロの場合はゼロ、引数がゼロより大きい場合は1.0、引数がゼロより小さい場合は -1.0です。特例として:
- 引数がNaNの場合、NaNが返されます。
- 引数が正のゼロまたは負のゼロの場合は、引数と同じ値が返されます。
- パラメータ:
d
- 符号が返される浮動小数点値- 戻り値:
- 引数の符号要素
- 導入されたバージョン:
- 1.5
-
signum
public static float signum(float f) 引数の符号要素を返します。引数がゼロの場合はゼロ、引数がゼロより大きい場合は1、引数がゼロより小さい場合は -1です。特例として:
- 引数がNaNの場合、NaNが返されます。
- 引数が正のゼロまたは負のゼロの場合は、引数と同じ値が返されます。
- パラメータ:
f
- 符号が返される浮動小数点値- 戻り値:
- 引数の符号要素
- 導入されたバージョン:
- 1.5
-
sinh
public static double sinh(double x) double
値の双曲線正弦を返します。 xの双曲線正弦は、(ex - e-x)/2 (eはオイラー数)として定義されます。特例として:
- 引数がNaNの場合、NaNが返されます。
- 引数が無限大の場合、結果は引数と同じ符号を付けた無限大になります。
- 引数がゼロの場合、結果はゼロに引数と同じ符号を付けた値になります。
計算結果は、正確な結果の2.5 ulp以内である必要があります。
- パラメータ:
x
- 双曲線正弦が返される数字。- 戻り値:
x
の双曲線正弦。- 導入されたバージョン:
- 1.5
-
cosh
public static double cosh(double x) double
値の双曲線余弦を返します。 xの双曲線余弦は、(ex + e-x)/2 (eはオイラー数)として定義されます。特例として:
- 引数がNaNの場合、NaNが返されます。
- 引数が無限大の場合は、正の無限大値が返されます。
- 引数がゼロの場合、結果は
1.0
になります。
計算結果は、正確な結果の2.5 ulp以内である必要があります。
- パラメータ:
x
- 双曲線余弦が返される数字。- 戻り値:
x
の双曲線余弦。- 導入されたバージョン:
- 1.5
-
tanh
public static double tanh(double x) double
値の双曲線正接を返します。 xの双曲線正接は、(ex - e-x)/(ex + e-x)つまりsinh(x)/cosh(x)として定義されます。 正確なtanhの絶対値は常に1未満です。特例として:
- 引数がNaNの場合、NaNが返されます。
- 引数がゼロの場合、結果はゼロに引数と同じ符号を付けた値になります。
- 引数が正の無限大の場合、結果は
+1.0
になります。 - 引数が負の無限大の場合、結果は
-1.0
になります。
計算結果は、正確な結果の2.5 ulp以内である必要があります。 有限入力の
tanh
の結果は、1以下の絶対値を持たなければいけません。 ±1の制限値のulpの1/2以内である場合、正しく符号が付けられた±1.0
が返されます。- パラメータ:
x
- 双曲線正接が返される数字。- 戻り値:
x
の双曲線正接。- 導入されたバージョン:
- 1.5
-
hypot
public static double hypot(double x, double y) sqrt(x2 +y2)を返します(途中でオーバーフローやアンダーフローは発生しない)。特例として:
- どちらかの引数が無限大の場合は、結果は正の無限大値になります。
- どちらかの引数がNaNであり、かつどちらの引数も無限大でない場合、結果はNaNになります。
- 両方の引数がゼロの場合、結果は正のゼロになります。
計算結果は、正確な結果の1.5 ulps内にある必要があります。 1つのパラメータが一定の場合、結果はもう一方のパラメータで半単調なものに限ります。
- パラメータ:
x
- 値y
- 値- 戻り値:
- sqrt(x2 +y2)(途中でオーバーフローやアンダーフローは発生しない)
- 導入されたバージョン:
- 1.5
-
expm1
public static double expm1(double x) ex -1を返します。 xの値が0に近い場合、expm1(x)
+ 1の正確な合計はexp(x)
に比べ、exの真の結果にかなり近くなります。特例として:
- 引数がNaNの場合は、NaNを返します。
- 引数が正の無限大の場合は、正の無限大が返されます。
- 引数が負の無限大の場合、結果は -1.0になります。
- 引数がゼロの場合、結果はゼロに引数と同じ符号を付けた値になります。
計算結果は、正確な結果の1 ulp以内である必要があります。 結果は半単調なものに限ります。 有限入力の
expm1
の結果は、-1.0
以上である必要があります。 ex
- 1の正確な結果が制限値1の1/2 ulp以内である場合、-1.0
が返されます。- パラメータ:
x
- ex
-1の計算時にeに適用する指数。- 戻り値:
- 値e
x
- 1。 - 導入されたバージョン:
- 1.5
-
log1p
public static double log1p(double x) 引数と1の合計の自然対数を返します。x
の値が小さい場合、log1p(x)
の結果は、log(1.0+x)
の浮動小数点評価よりもln(1+x
)の真の結果にかなり近くなります。特例として:
- 引数がNaNまたは -1より小さい場合、結果はNaNになります。
- 引数が正の無限大の場合は、正の無限大が返されます。
- 引数が負の値の場合、結果は負の無限大になります。
- 引数がゼロの場合、結果はゼロに引数と同じ符号を付けた値になります。
計算結果は、正確な結果の1 ulp以内である必要があります。 結果は半単調なものに限ります。
- パラメータ:
x
- 値- 戻り値:
- 値ln(
x
+ 1)(x
+ 1の自然対数) - 導入されたバージョン:
- 1.5
-
copySign
public static double copySign(double magnitude, double sign) 2番目の浮動小数点引数の符号を付けた、最初の浮動小数点引数を返します。StrictMath.copySign
メソッドとは異なり、このメソッドは、正の値として扱われるためにNaNsign
引数を必要としません。実装は、パフォーマンスを向上させるために、一部のNaN引数を正として扱い、その他のNaN引数を負として扱うよう許可されます。- APIのノート:
- このメソッドは、IEEE 754で定義されているcopySign演算に対応します。
- パラメータ:
magnitude
- 結果の絶対値を提供するパラメータsign
- 結果の符号を提供するパラメータ- 戻り値:
magnitude
の絶対値とsign
の符号を持つ値。- 導入されたバージョン:
- 1.6
-
copySign
public static float copySign(float magnitude, float sign) 2番目の浮動小数点引数の符号を付けた、最初の浮動小数点引数を返します。StrictMath.copySign
メソッドとは異なり、このメソッドは、正の値として扱われるためにNaNsign
引数を必要としません。実装は、パフォーマンスを向上させるために、一部のNaN引数を正として扱い、その他のNaN引数を負として扱うよう許可されます。- APIのノート:
- このメソッドは、IEEE 754で定義されているcopySign演算に対応します。
- パラメータ:
magnitude
- 結果の絶対値を提供するパラメータsign
- 結果の符号を提供するパラメータ- 戻り値:
magnitude
の絶対値とsign
の符号を持つ値。- 導入されたバージョン:
- 1.6
-
getExponent
public static int getExponent(float f) float
の表現で使用されている、バイアスなしの指数を返します。 特例として:- 引数がNaNまたは無限大の場合、結果は
Float.MAX_EXPONENT
+1になります。 - 引数がゼロまたは非正規の場合、結果は
Float.MIN_EXPONENT
- 1になります。
- APIのノート:
- このメソッドは、IEEE 754で定義されたlogB演算に似ていますが、非正規引数で異なる値を返します。
- パラメータ:
f
-float
値- 戻り値:
- 引数の不偏指数
- 導入されたバージョン:
- 1.6
- 引数がNaNまたは無限大の場合、結果は
-
getExponent
public static int getExponent(double d) double
の表現で使用されている、バイアスなしの指数を返します。 特例として:- 引数がNaNまたは無限大の場合、結果は
Double.MAX_EXPONENT
+1になります。 - 引数がゼロまたは非正規の場合、結果は
Double.MIN_EXPONENT
- 1になります。
- APIのノート:
- このメソッドは、IEEE 754で定義されたlogB演算に似ていますが、非正規引数で異なる値を返します。
- パラメータ:
d
-double
値- 戻り値:
- 引数の不偏指数
- 導入されたバージョン:
- 1.6
- 引数がNaNまたは無限大の場合、結果は
-
nextAfter
public static double nextAfter(double start, double direction) 2番目の引数の方向で、最初の引数に隣接する浮動小数点値を返します。 両方の引数が等しいと見なされる場合は、2番目の引数が返されます。特例として:
- どちらかの引数がNaNの場合、NaNが返されます。
- 両方の引数が符号付きゼロの場合、両方の引数が等しいと見なされる場合は2番目の引数が返されるという要件のとおり、
direction
が変更されずに返されます。 -
start
が±Double.MIN_VALUE
であり、direction
の値が、結果の絶対値をより小さくすべきであることを示していた場合、start
と同じ符号を持つゼロが返されます。 -
start
が無限大であり、direction
の値が、結果の絶対値をより小さくすべきであることを示していた場合、start
と同じ符号を持つDouble.MAX_VALUE
が返されます。 -
start
が±Double.MAX_VALUE
に等しく、direction
の値が、結果の絶対値をより大きくすべきであることを示していた場合、start
と同じ符号を持つ無限大が返されます。
- パラメータ:
start
- 開始浮動小数点値direction
-start
の近傍、start
のどちらを返すべきかを示す値- 戻り値:
direction
の方向でstart
の近傍にある浮動小数点数。- 導入されたバージョン:
- 1.6
-
nextAfter
public static float nextAfter(float start, double direction) 2番目の引数の方向で、最初の引数に隣接する浮動小数点値を返します。 両方の引数が等しいと見なされる場合は、2番目の引数に等しい値が返されます。特例として:
- どちらかの引数がNaNの場合、NaNが返されます。
- 両方の符号付きゼロと見なされる場合は、
direction
に等しい値が返されます。 -
start
が±Float.MIN_VALUE
であり、direction
の値が、結果の絶対値をより小さくすべきであることを示していた場合、start
と同じ符号を持つゼロが返されます。 -
start
が無限大であり、direction
の値が、結果の絶対値をより小さくすべきであることを示していた場合、start
と同じ符号を持つFloat.MAX_VALUE
が返されます。 -
start
が±Float.MAX_VALUE
に等しく、direction
の値が、結果の絶対値をより大きくすべきであることを示していた場合、start
と同じ符号を持つ無限大が返されます。
- パラメータ:
start
- 開始浮動小数点値direction
-start
の近傍、start
のどちらを返すべきかを示す値- 戻り値:
direction
の方向でstart
の近傍にある浮動小数点数。- 導入されたバージョン:
- 1.6
-
nextUp
public static double nextUp(double d) 正の無限大方向でd
に隣接する浮動小数点値を返します。 このメソッドは意味的にはnextAfter(d, Double.POSITIVE_INFINITY)
と等価ですが、nextUp
の実装は対応するnextAfter
呼び出しよりも、高速で動作する可能性があります。特例として:
- 引数がNaNの場合は、NaNを返します。
- 引数が正の無限大の場合は、正の無限大が返されます。
- 引数がゼロの場合、結果は
Double.MIN_VALUE
になります
- APIのノート:
- このメソッドは、IEEE 754で定義されているnextUp演算に対応します。
- パラメータ:
d
- 開始浮動小数点値- 戻り値:
- 正の無限大に近いほうの、隣接する浮動小数点値。
- 導入されたバージョン:
- 1.6
-
nextUp
public static float nextUp(float f) 正の無限大方向でf
に隣接する浮動小数点値を返します。 このメソッドは意味的にはnextAfter(f, Float.POSITIVE_INFINITY)
と等価ですが、nextUp
の実装は対応するnextAfter
呼び出しよりも、高速で動作する可能性があります。特例として:
- 引数がNaNの場合は、NaNを返します。
- 引数が正の無限大の場合は、正の無限大が返されます。
- 引数がゼロの場合、結果は
Float.MIN_VALUE
になります
- APIのノート:
- このメソッドは、IEEE 754で定義されているnextUp演算に対応します。
- パラメータ:
f
- 開始浮動小数点値- 戻り値:
- 正の無限大に近いほうの、隣接する浮動小数点値。
- 導入されたバージョン:
- 1.6
-
nextDown
public static double nextDown(double d) 負の無限大方向でd
に隣接する浮動小数点値を返します。 このメソッドは意味的にはnextAfter(d, Double.NEGATIVE_INFINITY)
と同等ですが、nextDown
の実装はそれに対応するnextAfter
呼出しよりも、高速で動作する可能性があります。特例として:
- 引数がNaNの場合は、NaNを返します。
- 引数が負の無限大の場合、結果は負の無限大になります。
- 引数がゼロの場合、結果は
-Double.MIN_VALUE
になります
- APIのノート:
- このメソッドは、IEEE 754で定義されているnextDown演算に対応します。
- パラメータ:
d
- 開始浮動小数点値- 戻り値:
- 負の無限大に近いほうの、隣接する浮動小数点値。
- 導入されたバージョン:
- 1.8
-
nextDown
public static float nextDown(float f) 負の無限大方向でf
に隣接する浮動小数点値を返します。 このメソッドは意味的にはnextAfter(f, Float.NEGATIVE_INFINITY)
と同等ですが、nextDown
の実装はそれに対応するnextAfter
呼出しよりも、高速で動作する可能性があります。特例として:
- 引数がNaNの場合は、NaNを返します。
- 引数が負の無限大の場合、結果は負の無限大になります。
- 引数がゼロの場合、結果は
-Float.MIN_VALUE
になります
- APIのノート:
- このメソッドは、IEEE 754で定義されているnextDown演算に対応します。
- パラメータ:
f
- 開始浮動小数点値- 戻り値:
- 負の無限大に近いほうの、隣接する浮動小数点値。
- 導入されたバージョン:
- 1.8
-
scalb
public static double scalb(double d, int scaleFactor) 正しく丸められた浮動小数点の倍数によって実行されるかのように、d
× 2scaleFactor
を返します。 結果の指数がDouble.MIN_EXPONENT
とDouble.MAX_EXPONENT
の間である場合、答えは正確に計算されます。 結果の指数がDouble.MAX_EXPONENT
より大きくなる場合、無限大が返されます。 結果が非正規の場合は精度が失われる可能性があります。つまり、scalb(x, n)
が非正規の場合、scalb(scalb(x, n), -n)
がxと等しくならない可能性があります。 結果がNaN以外の場合、その結果はd
と同じ符号を持ちます。特例として:
- 最初の引数がNaNの場合は、NaNが返されます。
- 最初の引数が無限大の場合は、同じ符号の無限大値が返されます。
- 最初の引数がゼロの場合は、同じ符号のゼロが返されます。
- APIのノート:
- このメソッドは、IEEE 754で定義されているscaleB演算に対応します。
- パラメータ:
d
- 2の累乗によってスケーリングされる数。scaleFactor
-d
をスケーリングするときに使用される2の累乗- 戻り値:
d
× 2scaleFactor
- 導入されたバージョン:
- 1.6
-
scalb
public static float scalb(float f, int scaleFactor) 正しく丸められた浮動小数点の倍数によって実行されるかのように、f
× 2scaleFactor
を返します。 結果の指数がFloat.MIN_EXPONENT
とFloat.MAX_EXPONENT
の間である場合、答えは正確に計算されます。 結果の指数がFloat.MAX_EXPONENT
より大きくなる場合、無限大が返されます。 結果が非正規の場合は精度が失われる可能性があります。つまり、scalb(x, n)
が非正規の場合、scalb(scalb(x, n), -n)
がxと等しくならない可能性があります。 結果がNaN以外の場合、その結果はf
と同じ符号を持ちます。特例として:
- 最初の引数がNaNの場合は、NaNが返されます。
- 最初の引数が無限大の場合は、同じ符号の無限大値が返されます。
- 最初の引数がゼロの場合は、同じ符号のゼロが返されます。
- APIのノート:
- このメソッドは、IEEE 754で定義されているscaleB演算に対応します。
- パラメータ:
f
- 2の累乗によってスケーリングされる数。scaleFactor
-f
をスケーリングするときに使用される2の累乗- 戻り値:
f
× 2scaleFactor
- 導入されたバージョン:
- 1.6
-