モジュール java.base
パッケージ java.lang

クラスMath

java.lang.Object
java.lang.Math

public final class Math
extends Object
Mathクラスは、指数関数、対数関数、平方根、および三角関数といった基本的な数値処理を実行するためのメソッドを含んでいます。

StrictMathクラスの一部の数値メソッドとは異なり、Mathクラスの等価関数のすべての実装は、ビット対ビットの同じ結果を返すようには定義されていません。 このゆるやかさによって、厳密な再現性が要求されない実装においてパフォーマンスの向上が可能になります。

デフォルトでは、Mathの多くのメソッドは単に、StrictMath内の対応するメソッドを実装として呼び出します。 コード・ジェネレータは、プラットフォーム固有のネイティブ・ライブラリまたはマイクロプロセッサの命令がある場合は積極的に使用し、高性能なMathメソッドの実装を提供します。 そのような高性能な実装でもMathの仕様に準拠する必要があります。

実装仕様の品質は、2つのプロパティ、返される結果の正確さ、およびメソッドの単調性と関係があります。 浮動小数点Mathメソッドの正確さは、ulp (最新位置の単位)で計測されます。 浮動小数点形式が指定された場合、特定の実数値のulpはその数値を囲んでいる2つの浮動小数点値の距離になります。 メソッドの正確性を、特定の引数に対してではなく全体として論じる場合に示されるulp数は、すべての引数における最大誤差になります。 メソッドが返すエラーが常に0.5 ulp未満の場合、そのメソッドは実際の結果にもっとも近い浮動小数点数を常に返します。この種のメソッドは正しく丸められています。 通常は、正しく丸められたメソッドを使用するのが浮動小数点近似値を得る最善の方法ですが、多数の浮動小数点メソッドを正しく丸めるのは、実際的ではありません。 その代わりにMathクラスの場合、1または2 ulpより大きいエラーが特定のメソッドで許可されます。 非公式には1 ulpのエラーでは、正確な結果が表現可能な数値の場合に正確な結果が返されます。そうでない場合、正確な結果を囲む2つの浮動小数点値のいずれかが返される可能性があります。 正確な結果の絶対値が大きい場合、カッコの一方の端点が無限である可能性があります。 個別の引数の正確さに加え、メソッドの異なる引数間の適切な関係も重要です。 このため、0.5 ulpより大きいエラーを保持するメソッドは、半単調であることが求められます。数学関数が非増加である場合は常に、浮動小数点近似値も非増加になります。 1 ulpの正確性を保持する近似値すべてが、自動的に単調要件を満たすわけではありません。

このプラットフォームでは、intおよびlongプリミティブ型を使って2の補数の符号付き整数演算を実行します。 開発者は、算術演算が一貫して正しい結果を生成するようにプリミティブ型を選択する必要があります。これは、場合によっては、それらの演算が計算の値の範囲をオーバーフローしないことを意味しています。 ベスト・プラクティスは、プリミティブ型と、オーバーフローを回避するアルゴリズムを選択することです。 サイズがintlongのようなコードになっていて、オーバーフロー・エラーが検出される必要がある場合は、メソッドaddExactsubtractExactmultiplyExacttoIntExactincrementExactdecrementExactおよびnegateExactは、結果がオーバーフローしたときにArithmeticExceptionをスローします。 算術演算の除算と絶対値の場合、オーバーフローは特定の最小値または最大値のみで発生し、最小値または最大値に対して適宜チェックする必要があります。

導入されたバージョン:
1.0
  • フィールドのサマリー

    フィールド 
    修飾子と型 フィールド 説明
    static double E
    自然対数の底eにもっとも近いdouble値です。
    static double PI
    円周とその直径の比piにもっとも近いdouble値です。
  • メソッドのサマリー

    修飾子と型 メソッド 説明
    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 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)
    直交座標(xy)から極座標(r, theta)への変換から得られる角度thetaを返します。
    static double cbrt​(double a)
    double値の立方根を返します。
    static double ceil​(double a)
    引数の値以上で、計算上の整数と等しい、最小の(負の無限大にもっとも近い) double値を返します。
    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 double exp​(double a)
    オイラー数edouble値で累乗した値を返します。
    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 floorMod​(int x, int y)
    int引数のフロア・モジュラスを返します。
    static int floorMod​(long x, int y)
    longint引数のfloor係数を返します。
    static long floorMod​(long x, long y)
    long引数のフロア・モジュラスを返します。
    static double fma​(double a, double b, double c)
    3つの引数の融合乗算加算を返します; つまり、最初の2つの引数の正確な積を3番目の引数で合計し、最も近いdoubleに一度丸めます。
    static float fma​(float a, float b, float c)
    3つの引数の融合乗算加算を返します; つまり、最初の2つの引数の正確な積を3番目の引数で合計し、最も近い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)
    longとして、2つの64ビット要素の128ビット積の最上位64ビットを返します。
    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)
    double値セットのメンバーに単一の正しく丸められた浮動小数点を掛けることによって実行される場合と同様に、d×2scaleFactorを丸めて返します。
    static float scalb​(float f, int scaleFactor)
    float値セットのメンバーに単一の正しく丸められた浮動小数点を掛けることによって実行される場合と同様に、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のサイズを返します。

    クラス java.lang.Objectで宣言されたメソッド

    cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait
  • フィールド詳細

    • E

      public static final double E
      自然対数の底eにもっとも近いdouble値です。
      関連項目:
      定数フィールド値
    • PI

      public static final double PI
      円周とその直径の比piにもっとも近いdouble値です。
      関連項目:
      定数フィールド値
  • メソッドの詳細

    • sin

      public static double sin​(double a)
      指定された角度の正弦(サイン)を返します。 特例として:
      • 引数がNaNまたは無限大の場合、結果はNaNになります。
      • 引数がゼロの場合、結果はゼロに引数と同じ符号を付けた値になります。

      計算結果は、正確な結果の1 ulp以内である必要があります。 結果は半単調なものに限ります。

      パラメータ:
      a - ラジアンで表した角度。
      戻り値:
      引数の正弦(サイン)。
    • cos

      public static double cos​(double a)
      指定された角度の余弦(コサイン)を返します。 特例として:
      • 引数がNaNまたは無限大の場合、結果はNaNになります。

      計算結果は、正確な結果の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 ulp以内である必要があります。 結果は半単調なものに限ります。

      パラメータ:
      a - この値の逆余弦(アーク・コサイン)が返される。
      戻り値:
      引数の逆余弦(アーク・コサイン)。
    • atan

      public static double atan​(double a)
      指定された値の逆正接(アーク・タンジェント)を返します。返される角度の範囲は、-pi/2からpi/2です。 特例として:
      • 引数がNaNの場合、NaNが返されます。
      • 引数がゼロの場合、結果はゼロに引数と同じ符号を付けた値になります。

      計算結果は、正確な結果の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)
      オイラー数edouble値で累乗した値を返します。 特例として:
      • 引数がNaNの場合は、NaNを返します。
      • 引数が正の無限大の場合は、正の無限大が返されます。
      • 引数が負の無限大の場合は、正のゼロが返されます。

      計算結果は、正確な結果の1 ulp以内である必要があります。 結果は半単調なものに限ります。

      パラメータ:
      a - eの累乗で使用する指数。
      戻り値:
      ea。ここで、eは自然対数の底。
    • log

      public static double log​(double a)
      指定されたdouble値の自然対数(底はe)を返します。 特例として:
      • 引数がNaNまたはゼロより小さい場合、NaNが返されます。
      • 引数が正の無限大の場合は、正の無限大が返されます。
      • 引数が正のゼロまたは負のゼロの場合は、負の無限大が返されます。

      計算結果は、正確な結果の1 ulp以内である必要があります。 結果は半単調なものに限ります。

      パラメータ:
      a - 値
      戻り値:
      値ln a (aの自然対数)。
    • log10

      public static double log10​(double a)
      double値の10を底とする対数を返します。 特例として:
      • 引数がNaNまたはゼロより小さい場合、NaNが返されます。
      • 引数が正の無限大の場合は、正の無限大が返されます。
      • 引数が正のゼロまたは負のゼロの場合は、負の無限大が返されます。
      • 引数が10n (nは整数)に等しい場合、結果はnになります。

      計算結果は、正確な結果の1 ulp以内である必要があります。 結果は半単調なものに限ります。

      パラメータ:
      a - 値
      戻り値:
      aの10を底とする対数。
      導入されたバージョン:
      1.5
    • sqrt

      public static double sqrt​(double a)
      double値の正しく丸めた正の平方根を返します。 特例として:
      • 引数がNaNまたはゼロより小さい場合、NaNが返されます。
      • 引数が正の無限大の場合は、正の無限大が返されます。
      • 引数が正のゼロまたは負のゼロの場合は、引数と同じ値が返されます。
      それ以外の場合は、引数値の真の数学の平方根にもっとも近いdouble値が返されます。
      パラメータ:
      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には偶数が選択されます。 剰余がゼロになる場合、その符号は1番目の引数の符号と同じになります。 特例として:
      • どちらかの引数がNaN、1番目の引数が無限大、2番目の引数が正のゼロまたは負のゼロの場合は、NaNが返されます。
      • 1番目の引数が有限で2番目の引数が無限大の場合は、1番目の引数と同じ値が返されます。
      パラメータ:
      f1 - 被除数。
      f2 - 除数。
      戻り値:
      f1f2で除算したときの剰余。
    • ceil

      public static double ceil​(double a)
      引数の値以上で、計算上の整数と等しい、最小の(負の無限大にもっとも近い) double値を返します。 特例として:
      • 引数がすでに計算上の整数と等しい場合は、引数と同じ値が返されます。
      • 引数がNaN、無限大、正のゼロ、または負のゼロの場合は、引数と同じ値が返されます。
      • 引数がゼロより小さく、-1.0より大きい場合は、負のゼロが返されます。
      Math.ceil(x)の値は-Math.floor(-x)とまったく同じです。
      パラメータ:
      a - 値。
      戻り値:
      引数の値以上で、計算上の整数と等しい、最小の(負の無限大にもっとも近い)浮動小数点値。
    • floor

      public static double floor​(double a)
      引数の値以下で、計算上の整数と等しい、最大の(正の無限大にもっとも近い) double値を返します。 特例として:
      • 引数がすでに計算上の整数と等しい場合は、引数と同じ値が返されます。
      • 引数がNaN、無限大、正のゼロ、または負のゼロの場合は、引数と同じ値が返されます。
      パラメータ:
      a - 値。
      戻り値:
      引数の値以上で、計算上の整数と等しい、最大の(正の無限大にもっとも近い)浮動小数点値。
    • rint

      public static double rint​(double a)
      引数の値にもっとも近く、計算上の整数に等しいdouble値を返します。 2つのdouble値の整数が同じ程度に近似している場合、結果は偶数の整数値になります。 特例として:
      • 引数がすでに計算上の整数と等しい場合は、引数と同じ値が返されます。
      • 引数がNaN、無限大、正のゼロ、または負のゼロの場合は、引数と同じ値が返されます。
      パラメータ:
      a - double値。
      戻り値:
      aにもっとも近く、計算上の整数に等しい浮動小数点値。
    • atan2

      public static double atan2​(double y, double x)
      直交座標(xy)から極座標(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以内である必要があります。 結果は半単調なものに限ります。

      パラメータ:
      y - 縦座標
      x - 横座標
      戻り値:
      直交座標(デカルト座標)上の点(xy)に対応する極座標上の点(rtheta)の、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以内である必要があります。 結果は半単調なものに限ります。

      パラメータ:
      a - 底。
      b - 指数。
      戻り値:
      ab
    • round

      public static int round​(float a)
      引数にもっとも近いintを返します。同数の場合は正の無限大方向に丸めます。

      特例として:

      • 引数がNaNの場合は、結果は0になります。
      • 引数が負の無限大である場合、またはInteger.MIN_VALUE以下の任意の値である場合、結果はInteger.MIN_VALUEの値に等しくなります。
      • 引数が正の無限大である場合、またはInteger.MAX_VALUE以上の任意の値である場合、結果はInteger.MAX_VALUEの値に等しくなります。

      パラメータ:
      a - 整数に丸める浮動小数点値。
      戻り値:
      引数をもっとも近いint値に丸めた値。
      関連項目:
      Integer.MAX_VALUE, Integer.MIN_VALUE
    • 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値に丸めた値。
      関連項目:
      Long.MAX_VALUE, Long.MIN_VALUE
    • 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
      関連項目:
      nextDown(double), Random.nextDouble()
    • 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
    • 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)
      longとして、2つの64ビット要素の128ビット積の最上位64ビットを返します。
      パラメータ:
      x - 最初の値
      y - 2番目の値
      戻り値:
      結果
      導入されたバージョン:
      9
    • floorDiv

      public static int floorDiv​(int x, int y)
      商代数以下の最大(正の無限大にもっとも近い) int値を返します。 特殊なケースが1つあります。配当がInteger.MIN_VALUEで除数が-1の場合、整数オーバーフローが発生し、結果はInteger.MIN_VALUEに等しくなります。

      通常の整数除算は、ゼロに丸める丸めモード(切捨て)に従って行われます。 この演算は、代わりに負の無限大に近づくように丸める(floor)丸めモードに従って行われます。 モードは、正確な結果が負の場合、切り捨ての結果が異なります。

      • 引数の符号が同じである場合、floorDiv/演算子の結果は同じになります。
        たとえば、floorDiv(4, 3) == 1であり、(4 / 3) == 1になります。
      • 引数の符号が異なる場合、商は負となり、floorDivは商に等しいかそれよりも小さい整数を返し、/演算子はゼロにもっとも近い整数を返します。
        たとえば、floorDiv(-4, 3) == -2であるのに対し、(-4 / 3) == -1になります。

      パラメータ:
      x - 被除数
      y - 除数
      戻り値:
      商代数以下の最大(正の無限大にもっとも近い) int値。
      例外:
      ArithmeticException - 除数yがゼロである場合
      導入されたバージョン:
      1.8
      関連項目:
      floorMod(int, int), floor(double)
    • floorDiv

      public static long floorDiv​(long x, int y)
      商代数以下の最大(正の無限大にもっとも近い) long値を返します。 特殊なケースが1つあります。配当がLong.MIN_VALUEで除数が-1の場合、整数オーバーフローが発生し、結果はLong.MIN_VALUEに等しくなります。

      通常の整数除算は、ゼロに丸める丸めモード(切捨て)に従って行われます。 この演算は、代わりに負の無限大に近づくように丸める(floor)丸めモードに従って行われます。 モードは、正確な結果が負の場合、切り捨ての結果が異なります。

      例については、floorDiv(int, int)を参照してください。

      パラメータ:
      x - 被除数
      y - 除数
      戻り値:
      商代数以下の最大(正の無限大にもっとも近い) int値。
      例外:
      ArithmeticException - 除数yがゼロである場合
      導入されたバージョン:
      9
      関連項目:
      floorMod(long, int), floor(double)
    • floorDiv

      public static long floorDiv​(long x, long y)
      商代数以下の最大(正の無限大にもっとも近い) long値を返します。 特殊なケースが1つあります。配当がLong.MIN_VALUEで除数が-1の場合、整数オーバーフローが発生し、結果はLong.MIN_VALUEに等しくなります。

      通常の整数除算は、ゼロに丸める丸めモード(切捨て)に従って行われます。 この演算は、代わりに負の無限大に近づくように丸める(floor)丸めモードに従って行われます。 モードは、正確な結果が負の場合、切り捨ての結果が異なります。

      例については、floorDiv(int, int)を参照してください。

      パラメータ:
      x - 被除数
      y - 除数
      戻り値:
      商代数以下の最大(正の無限大にもっとも近い) long値。
      例外:
      ArithmeticException - 除数yがゼロである場合
      導入されたバージョン:
      1.8
      関連項目:
      floorMod(long, long), floor(double)
    • floorMod

      public static int floorMod​(int x, int y)
      int引数のフロア・モジュラスを返します。

      フロア・モジュラスはx - (floorDiv(x, y) * y)であり、除数yと同じ符号を持ち、-abs(y) < r < +abs(y)の範囲にあります。

      floorDivfloorModの関係は次のようになります。

      • floorDiv(x, y) * y + floorMod(x, y) == x

      floorMod%演算子との値の違いは、商に等しいかそれよりも小さい整数を返すfloorDivと、ゼロにもっとも近い整数を返す/演算子の違いによるものです。

      • 引数の符号が同じ場合、floorMod%演算子の結果は同じになります。
        • 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

      引数の符号が不明で、正のモジュラスが必要な場合は、それを(floorMod(x, y) + abs(y)) % abs(y)として計算できます。

      パラメータ:
      x - 被除数
      y - 除数
      戻り値:
      フロア・モジュラスx - (floorDiv(x, y) * y)
      例外:
      ArithmeticException - 除数yがゼロである場合
      導入されたバージョン:
      1.8
      関連項目:
      floorDiv(int, int)
    • floorMod

      public static int floorMod​(long x, int y)
      longint引数のfloor係数を返します。

      フロア・モジュラスはx - (floorDiv(x, y) * y)であり、除数yと同じ符号を持ち、-abs(y) < r < +abs(y)の範囲にあります。

      floorDivfloorModの関係は次のようになります。

      • floorDiv(x, y) * y + floorMod(x, y) == x

      例については、floorMod(int, int)を参照してください。

      パラメータ:
      x - 被除数
      y - 除数
      戻り値:
      フロア・モジュラスx - (floorDiv(x, y) * y)
      例外:
      ArithmeticException - 除数yがゼロである場合
      導入されたバージョン:
      9
      関連項目:
      floorDiv(long, int)
    • floorMod

      public static long floorMod​(long x, long y)
      long引数のフロア・モジュラスを返します。

      フロア・モジュラスはx - (floorDiv(x, y) * y)であり、除数yと同じ符号を持ち、-abs(y) < r < +abs(y)の範囲にあります。

      floorDivfloorModの関係は次のようになります。

      • floorDiv(x, y) * y + floorMod(x, y) == x

      例については、floorMod(int, int)を参照してください。

      パラメータ:
      x - 被除数
      y - 除数
      戻り値:
      フロア・モジュラスx - (floorDiv(x, y) * y)
      例外:
      ArithmeticException - 除数yがゼロである場合
      導入されたバージョン:
      1.8
      関連項目:
      floorDiv(long, long)
    • abs

      public static int abs​(int a)
      int値の絶対値を返します。 引数が負でない場合は引数そのものを返します。 負のときは、その正負を逆にした値を返します。

      引数がInteger.MIN_VALUEの値(intの最小値)と等しい場合は、結果も同じ値(負の値)になります。

      パラメータ:
      a - 絶対値を決定する引数
      戻り値:
      引数の絶対値。
    • abs

      public static long abs​(long a)
      long値の絶対値を返します。 引数が負でない場合は引数そのものを返します。 負のときは、その正負を逆にした値を返します。

      引数がLong.MIN_VALUEの値(longの最小値)と等しい場合は、結果も同じ値(負の値)になります。

      パラメータ:
      a - 絶対値を決定する引数
      戻り値:
      引数の絶対値。
    • 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)
      2つのint値のうち大きいほうを返します。 つまり、結果はInteger.MAX_VALUEの値に近いほうの引数となります。 引数の値が同じ場合は同じ値を返します。
      パラメータ:
      a - 引数。
      b - 別の引数。
      戻り値:
      abのどちらか大きい方。
    • max

      public static long max​(long a, long b)
      2つのlong値のうち大きいほうを返します。 つまり、結果はLong.MAX_VALUEの値に近いほうの引数となります。 引数の値が同じ場合は同じ値を返します。
      パラメータ:
      a - 引数。
      b - 別の引数。
      戻り値:
      abのどちらか大きい方。
    • max

      public static float max​(float a, float b)
      2つのfloat値のうち大きいほうを返します。 つまり、結果は正の無限大に近いほうの引数となります。 引数の値が同じ場合は同じ値を返します。 どちらかの値がNaNの場合はNaNを返します。 数値比較演算子とは異なり、このメソッドは負のゼロが厳密には正のゼロよりも小さいと見なします。 一方の引数が正のゼロでもう一方が負のゼロの場合は、正のゼロを返します。
      パラメータ:
      a - 引数。
      b - 別の引数。
      戻り値:
      abのどちらか大きい方。
    • max

      public static double max​(double a, double b)
      2つのdouble値のうち大きいほうを返します。 つまり、結果は正の無限大に近いほうの引数となります。 引数の値が同じ場合は同じ値を返します。 どちらかの値がNaNの場合はNaNを返します。 数値比較演算子とは異なり、このメソッドは負のゼロが厳密には正のゼロよりも小さいと見なします。 一方の引数が正のゼロでもう一方が負のゼロの場合は、正のゼロを返します。
      パラメータ:
      a - 引数。
      b - 別の引数。
      戻り値:
      abのどちらか大きい方。
    • min

      public static int min​(int a, int b)
      2つのint値のうち小さいほうを返します。 つまり、結果はInteger.MIN_VALUEの値に近いほうの引数となります。 引数の値が同じ場合は同じ値を返します。
      パラメータ:
      a - 引数。
      b - 別の引数。
      戻り値:
      abのどちらか小さい方。
    • min

      public static long min​(long a, long b)
      2つのlong値のうち小さいほうを返します。 つまり、結果はLong.MIN_VALUEの値に近いほうの引数となります。 引数の値が同じ場合は同じ値を返します。
      パラメータ:
      a - 引数。
      b - 別の引数。
      戻り値:
      abのどちらか小さい方。
    • min

      public static float min​(float a, float b)
      2つのfloat値のうち小さいほうを返します。 つまり、結果は負の無限大に近いほうの値となります。 引数の値が同じ場合は同じ値を返します。 どちらかの値がNaNの場合はNaNを返します。 数値比較演算子とは異なり、このメソッドは負のゼロが厳密には正のゼロよりも小さいと見なします。 一方の引数が正のゼロでもう一方が負のゼロの場合は、負のゼロを返します。
      パラメータ:
      a - 引数。
      b - 別の引数。
      戻り値:
      abのどちらか小さい方。
    • min

      public static double min​(double a, double b)
      2つのdouble値のうち小さいほうを返します。 つまり、結果は負の無限大に近いほうの値となります。 引数の値が同じ場合は同じ値を返します。 どちらかの値がNaNの場合はNaNを返します。 数値比較演算子とは異なり、このメソッドは負のゼロが厳密には正のゼロよりも小さいと見なします。 一方の引数が正のゼロでもう一方が負のゼロの場合は、負のゼロを返します。
      パラメータ:
      a - 引数。
      b - 別の引数。
      戻り値:
      abのどちらか小さい方。
    • fma

      public static double fma​(double a, double b, double c)
      3つの引数の融合乗算加算を返します; つまり、最初の2つの引数の正確な積を3番目の引数で合計し、最も近いdoubleに一度丸めます。 丸めは「最も近い偶数丸めモードへの丸め」を使用して行われます。 対照的に、a * b + cが通常の浮動小数点式として評価される場合は、2回の丸め誤差が含まれます。最初は乗算演算、2回目は加算演算です。

      特例として:

      • 引数がNaNの場合、結果はNaNになります。
      • 最初の2つの引数の一方が無限大で、他方がゼロの場合、結果はNaNになります。
      • 最初の2つの引数の正確な積が無限大の(言い換えれば、少なくとも1つの引数は無限で、もう1つはゼロでもなくNaNでもない)であり、3番目の引数が反対の符号の無限大である場合、結果はNaNです。

      fma(a, 1.0, c)は(a + c)と同じ結果を返します。 しかし、fma(a, b, +0.0)は、fma(-0.0, +0.0, +0.0)+0.0であり、(-0.0 * +0.0)が-0.0であるため、常に(a * b)と同じ結果を返すわけではありません。しかし、fma(a, b, -0.0)は(a * b)と同等です。

      APIのノート:
      このメソッドは、IEEE 754-2008で定義されているfusedMultiplyAddオペレーションに対応します。
      パラメータ:
      a - 値
      b - 値
      c - 値
      戻り値:
      (a × b + c)は、無制限の範囲と精度の場合と同様に計算され、最も近いdouble値に1回丸められます
      導入されたバージョン:
      9
    • fma

      public static float fma​(float a, float b, float c)
      3つの引数の融合乗算加算を返します; つまり、最初の2つの引数の正確な積を3番目の引数で合計し、最も近いfloatに一度丸めます。 丸めは「最も近い偶数丸めモードへの丸め」を使用して行われます。 対照的に、a * b + cが通常の浮動小数点式として評価される場合は、2回の丸め誤差が含まれます。最初は乗算演算、2回目は加算演算です。

      特例として:

      • 引数がNaNの場合、結果はNaNになります。
      • 最初の2つの引数の一方が無限大で、他方がゼロの場合、結果はNaNになります。
      • 最初の2つの引数の正確な積が無限大の(言い換えれば、少なくとも1つの引数は無限で、もう1つはゼロでもなくNaNでもない)であり、3番目の引数が反対の符号の無限大である場合、結果はNaNです。

      fma(a, 1.0f, c)は(a + c)と同じ結果を返します。 しかし、fma(a, b, +0.0f)は、fma(-0.0f, +0.0f, +0.0f)+0.0fであり、(-0.0f * +0.0f)が-0.0fであるため、常に(a * b)と同じ結果を返すわけではありません。しかし、fma(a, b, -0.0f)は(a * b)と同等です。

      APIのノート:
      このメソッドは、IEEE 754-2008で定義されているfusedMultiplyAddオペレーションに対応します。
      パラメータ:
      a - 値
      b - 値
      c - 値
      戻り値:
      (a × b + c)は、無制限の範囲と精度の場合と同様に計算され、最も近いfloat値に1回丸められます
      導入されたバージョン:
      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 ulp以内である必要があります。 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に適用する指数。
      戻り値:
      ex - 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メソッドとは異なり、このメソッドは、正の値として扱われるためにNaN sign引数を必要としません。実装は、パフォーマンスを向上させるために、一部のNaN引数を正として扱い、その他のNaN引数を負として扱うよう許可されます。
      パラメータ:
      magnitude - 結果の絶対値を提供するパラメータ
      sign - 結果の符号を提供するパラメータ
      戻り値:
      magnitudeの絶対値とsignの符号を持つ値。
      導入されたバージョン:
      1.6
    • copySign

      public static float copySign​(float magnitude, float sign)
      2番目の浮動小数点引数の符号を付けた、最初の浮動小数点引数を返します。 StrictMath.copySignメソッドとは異なり、このメソッドは、正の値として扱われるためにNaN sign引数を必要としません。実装は、パフォーマンスを向上させるために、一部のNaN引数を正として扱い、その他のNaN引数を負として扱うよう許可されます。
      パラメータ:
      magnitude - 結果の絶対値を提供するパラメータ
      sign - 結果の符号を提供するパラメータ
      戻り値:
      magnitudeの絶対値とsignの符号を持つ値。
      導入されたバージョン:
      1.6
    • getExponent

      public static int getExponent​(float f)
      floatの表現で使用されている、バイアスなしの指数を返します。 特例として:
      • 引数がNaNまたは無限大の場合、結果はFloat.MAX_EXPONENT+1になります。
      • 引数がゼロまたは非正規の場合、結果はFloat.MIN_EXPONENT -1になります。
      パラメータ:
      f - float
      戻り値:
      引数の不偏指数
      導入されたバージョン:
      1.6
    • getExponent

      public static int getExponent​(double d)
      doubleの表現で使用されている、バイアスなしの指数を返します。 特例として:
      パラメータ:
      d - double
      戻り値:
      引数の不偏指数
      導入されたバージョン:
      1.6
    • 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になります

      パラメータ:
      d - 開始浮動小数点値
      戻り値:
      正の無限大に近いほうの、隣接する浮動小数点値。
      導入されたバージョン:
      1.6
    • nextUp

      public static float nextUp​(float f)
      正の無限大方向でfに隣接する浮動小数点値を返します。 このメソッドは意味的にはnextAfter(f, Float.POSITIVE_INFINITY)と等価ですが、nextUpの実装は対応するnextAfter呼び出しよりも、高速で動作する可能性があります。

      特例として:

      • 引数がNaNの場合は、NaNを返します。
      • 引数が正の無限大の場合は、正の無限大が返されます。
      • 引数がゼロの場合、結果はFloat.MIN_VALUEになります

      パラメータ:
      f - 開始浮動小数点値
      戻り値:
      正の無限大に近いほうの、隣接する浮動小数点値。
      導入されたバージョン:
      1.6
    • nextDown

      public static double nextDown​(double d)
      負の無限大方向でdに隣接する浮動小数点値を返します。 このメソッドは意味的にはnextAfter(d, Double.NEGATIVE_INFINITY)と同等ですが、nextDownの実装はそれに対応するnextAfter呼出しよりも、高速で動作する可能性があります。

      特例として:

      • 引数がNaNの場合は、NaNを返します。
      • 引数が負の無限大の場合、結果は負の無限大になります。
      • 引数がゼロの場合、結果は-Double.MIN_VALUEになります

      パラメータ:
      d - 開始浮動小数点値
      戻り値:
      負の無限大に近いほうの、隣接する浮動小数点値。
      導入されたバージョン:
      1.8
    • nextDown

      public static float nextDown​(float f)
      負の無限大方向でfに隣接する浮動小数点値を返します。 このメソッドは意味的にはnextAfter(f, Float.NEGATIVE_INFINITY)と同等ですが、nextDownの実装はそれに対応するnextAfter呼出しよりも、高速で動作する可能性があります。

      特例として:

      • 引数がNaNの場合は、NaNを返します。
      • 引数が負の無限大の場合、結果は負の無限大になります。
      • 引数がゼロの場合、結果は-Float.MIN_VALUEになります

      パラメータ:
      f - 開始浮動小数点値
      戻り値:
      負の無限大に近いほうの、隣接する浮動小数点値。
      導入されたバージョン:
      1.8
    • scalb

      public static double scalb​(double d, int scaleFactor)
      double値セットのメンバーに単一の正しく丸められた浮動小数点を掛けることによって実行される場合と同様に、d×2scaleFactorを丸めて返します。 浮動小数点値セットについては、『Java言語仕様』を参照してください。 結果の指数がDouble.MIN_EXPONENTDouble.MAX_EXPONENTの間である場合、答えは正確に計算されます。 結果の指数がDouble.MAX_EXPONENTより大きくなる場合、無限大が返されます。 結果が非正規の場合は精度が失われる可能性があります。つまり、scalb(x, n)が非正規の場合、scalb(scalb(x, n), -n)xと等しくならない可能性があります。 結果がNaN以外の場合、その結果はdと同じ符号を持ちます。

      特例として:

      • 最初の引数がNaNの場合は、NaNが返されます。
      • 最初の引数が無限大の場合は、同じ符号の無限大値が返されます。
      • 最初の引数がゼロの場合は、同じ符号のゼロが返されます。

      パラメータ:
      d - 2の累乗によってスケーリングされる数。
      scaleFactor - dをスケーリングするときに使用される2の累乗
      戻り値:
      d × 2scaleFactor
      導入されたバージョン:
      1.6
    • scalb

      public static float scalb​(float f, int scaleFactor)
      float値セットのメンバーに単一の正しく丸められた浮動小数点を掛けることによって実行される場合と同様に、f×2scaleFactorを丸めて返します。 浮動小数点値セットについては、『Java言語仕様』を参照してください。 結果の指数がFloat.MIN_EXPONENTFloat.MAX_EXPONENTの間である場合、答えは正確に計算されます。 結果の指数がFloat.MAX_EXPONENTより大きくなる場合、無限大が返されます。 結果が非正規の場合は精度が失われる可能性があります。つまり、scalb(x, n)が非正規の場合、scalb(scalb(x, n), -n)xと等しくならない可能性があります。 結果がNaN以外の場合、その結果はfと同じ符号を持ちます。

      特例として:

      • 最初の引数がNaNの場合は、NaNが返されます。
      • 最初の引数が無限大の場合は、同じ符号の無限大値が返されます。
      • 最初の引数がゼロの場合は、同じ符号のゼロが返されます。

      パラメータ:
      f - 2の累乗によってスケーリングされる数。
      scaleFactor - fをスケーリングするときに使用される2の累乗
      戻り値:
      f × 2scaleFactor
      導入されたバージョン:
      1.6