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

クラスStrictMath

java.lang.Object
java.lang.StrictMath

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

Javaプログラムの移植性を保つために、このパッケージにある一部の数値関数の定義は、既存のアルゴリズムと同一の計算結果を出すことが求められています。 こうしたアルゴリズムは、有名なネットワーク・ライブラリであるnetlibから「Freely Distributable Math Library」(fdlibm)パッケージとして入手可能です。 これらのアルゴリズムはCプログラミング言語で記述されており、すべての浮動小数点演算がJavaの浮動小数点演算ルールに従って実行されるものと見なされます。

Javaの数学ライブラリはfdlibmのバージョン5.3を基に定義されています。 fdlibmで複数の定義が与えられている関数(たとえばacos)については、IEEE 754コア関数のバージョンを使用してください(ファイル名がeで始まるファイルの中にある)。 fdlibmセマンティックスを必要とするメソッドは、sincostanasinacosatanexploglog10cbrtatan2powsinhcoshtanhhypotexpm1、およびlog1pです。

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

IEEE 754推奨される操作

Mathクラスでは、選択したMathメソッドおよびStrictMathメソッド「IEEE 754の推奨操作に関連」の実装基準の共有品質について説明します。
導入されたバージョン:
1.3
  • フィールドのサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    static final double
    自然対数の底eにもっとも近いdouble値です。
    static final double
    円周とその直径の比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 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)
    直交座標(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
    引数を1だけ減分したものを返します。結果がintをオーバーフローする場合は例外をスローします。
    static long
    引数を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
    引数を1だけ増分して返します。結果がintをオーバーフローした場合は例外をスローします。
    static long
    引数を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
    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のサイズを返します。

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

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • フィールド詳細

    • 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になります。
      • 引数がゼロの場合、結果はゼロに引数と同じ符号を付けた値になります。
      パラメータ:
      a - ラジアンで表した角度。
      戻り値:
      引数の正弦(サイン)。
    • cos

      public static double cos(double a)
      指定された角度の余弦(コサイン)を返します。 特例として:
      • 引数がNaNまたは無限大の場合、結果はNaNになります。
      • 引数がゼロの場合、結果は1.0になります。
      パラメータ:
      a - ラジアンで表した角度。
      戻り値:
      引数の余弦(コサイン)。
    • tan

      public static double tan(double a)
      指定された角度の正接(タンジェント)を返します。 特例として:
      • 引数がNaNまたは無限大の場合、結果はNaNになります。
      • 引数がゼロの場合、結果はゼロに引数と同じ符号を付けた値になります。
      パラメータ:
      a - ラジアンで表した角度。
      戻り値:
      引数の正接(タンジェント)。
    • asin

      public static double asin(double a)
      指定された値の逆正弦(アーク・サイン)を返します。返される角度の範囲は、-pi/2からpi/2です。 特例として:
      • 引数がNaNまたはその絶対値が1を超える場合、結果はNaNになります。
      • 引数がゼロの場合、結果はゼロに引数と同じ符号を付けた値になります。
      パラメータ:
      a - この値の逆正弦(アーク・サイン)が返される。
      戻り値:
      引数の逆正弦(アーク・サイン)。
    • acos

      public static double acos(double a)
      指定された値の逆余弦(アーク・コサイン)を返します。返される角度の範囲は、0.0からpiです。 特例として:
      • 引数がNaNまたはその絶対値が1を超える場合、結果はNaNになります。
      • 引数が1.0の場合、結果はゼロになります。
      パラメータ:
      a - この値の逆余弦(アーク・コサイン)が返される。
      戻り値:
      引数の逆余弦(アーク・コサイン)。
    • atan

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

      public static double toRadians(double angdeg)
      度で計測した角度を、相当するラジアンに変換します。 通常、度からラジアンへの変換は正確ではありません。
      パラメータ:
      angdeg - 度で計測した角度
      戻り値:
      ラジアンで表した、角度angdegの計測値。
    • toDegrees

      public static double toDegrees(double angrad)
      ラジアンで計測した角度を、相当する度に変換します。 通常、ラジアンから度への変換は正確ではありません。ユーザーは、cos(toRadians(90.0))が正確に0.0に対応することを期待できません
      パラメータ:
      angrad - ラジアンで表した角度
      戻り値:
      度で表した、角度angradの計測値。
    • exp

      public static double exp(double a)
      オイラー数edouble値で累乗した値を返します。 特例として:
      • 引数がNaNの場合は、NaNを返します。
      • 引数が正の無限大の場合は、正の無限大が返されます。
      • 引数が負の無限大の場合は、正のゼロが返されます。
      • 引数がゼロの場合、結果は1.0になります。
      パラメータ:
      a - eの累乗で使用する指数。
      戻り値:
      ea。ここで、eは自然対数の底。
    • log

      public static double log(double a)
      指定されたdouble値の自然対数(底はe)を返します。 特例として:
      • 引数がNaNまたはゼロより小さい場合、NaNが返されます。
      • 引数が正の無限大の場合は、正の無限大が返されます。
      • 引数が正のゼロまたは負のゼロの場合は、負の無限大が返されます。
      • 引数が1.0の場合、結果はゼロになります。
      パラメータ:
      a - 値
      戻り値:
      値ln a (aの自然対数)。
    • log10

      public static double log10(double a)
      double値の10を底とする対数を返します。 特例として:
      • 引数がNaNまたはゼロより小さい場合、NaNが返されます。
      • 引数が正の無限大の場合は、正の無限大が返されます。
      • 引数が正のゼロまたは負のゼロの場合は、負の無限大が返されます。
      • 引数が10n (nは整数)に等しい場合、結果はnになります。 特に、引数が1.0 (100)の場合、結果はゼロになります。
      パラメータ:
      a - 値
      戻り値:
      aの10を底とする対数。
      導入されたバージョン:
      1.5
    • sqrt

      public static double sqrt(double a)
      double値の正しく丸めた正の平方根を返します。 特例として:
      • 引数がNaNまたはゼロより小さい場合、NaNが返されます。
      • 引数が正の無限大の場合は、正の無限大が返されます。
      • 引数が正のゼロまたは負のゼロの場合は、引数と同じ値が返されます。
      それ以外の場合は、引数値の真の数学の平方根にもっとも近いdouble値が返されます。
      パラメータ:
      a - 値。
      戻り値:
      aの正の平方根。
    • cbrt

      public static double cbrt(double a)
      double値の立方根を返します。 正の有限値xの場合、cbrt(-x)== -cbrt(x)。つまり、負の値の立方根は、値の絶対値の立方根を負にしたものです。 特例として:
      • 引数がNaNの場合、NaNが返されます。
      • 引数が無限大の場合、結果は引数と同じ符号を付けた無限大になります。
      • 引数がゼロの場合、結果はゼロに引数と同じ符号を付けた値になります。
      パラメータ:
      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 - 除数。
      戻り値:
      f1f2で除算したときの剰余。
    • ceil

      public static double ceil(double a)
      引数の値以上で、計算上の整数と等しい、最小の(負の無限大にもっとも近い) double値を返します。 特例として:
      • 引数がすでに計算上の整数と等しい場合は、引数と同じ値が返されます。
      • 引数がNaN、無限大、正のゼロ、または負のゼロの場合は、引数と同じ値が返されます。
      • 引数がゼロより小さく、-1.0より大きい場合は、負のゼロが返されます。
      StrictMath.ceil(x)の値は-StrictMath.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 - 値。
      戻り値:
      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値になります。
      APIのノート:
      yが正符号で、有限なゼロ以外のxの場合、atan2の正確な数値は次のようになります:
      • x > 0の場合、atan(abs(y/x))
      • x < 0、πの場合 - atan(abs(y/x) )
      パラメータ:
      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つのメソッドの固定小数点となります。)

      APIのノート:
      このメソッドの特殊なケース定義は、±1.0のIEEE 754推奨される pow操作の特殊なケース定義と無限の累乗を発生させる特殊なケース定義とは異なります。 このメソッドでは、このようなケースは不確定として扱われ、NaNが返されます。 IEEE 754仕様では、無限の累乗が大きい整数 (大規模な浮動小数点数は数値整数で、特に整数です)として扱われるため、1.0が返されます。
      パラメータ:
      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値に丸めた値。
      関連項目:
    • 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()
      この新しい擬似乱数ジェネレータは、以後このメソッドへのすべての呼出しに使われます。ほかの場所では使われません。

      このメソッドは、複数のスレッドが正しく使えるよう適切に同期されます。 しかし、多数のスレッドで擬似乱数を高頻度で発生する必要がある場合は、スレッド独自の擬似乱数ジェネレータを用意して各スレッドのコンテンションを減らしてもかまいません。

      戻り値:
      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
      関連項目:
    • incrementExact

      public static int incrementExact(int a)
      引数を1だけ増分して返します。結果がintをオーバーフローした場合は例外をスローします。 オーバーフローは「最大値」に対してのみ発生します。
      パラメータ:
      a - 増分する値
      戻り値:
      結果
      例外:
      ArithmeticException - 結果がintをオーバーフローする場合
      導入されたバージョン:
      14
      関連項目:
    • incrementExact

      public static long incrementExact(long a)
      引数を1だけ増分して返します。結果がlongをオーバーフローした場合は例外をスローします。 オーバーフローは「最大値」に対してのみ発生します。
      パラメータ:
      a - 増分する値
      戻り値:
      結果
      例外:
      ArithmeticException - 結果がlongをオーバーフローする場合
      導入されたバージョン:
      14
      関連項目:
    • decrementExact

      public static int decrementExact(int a)
      引数を1だけ減分したものを返します。結果がintをオーバーフローする場合は例外をスローします。 オーバーフローは「最小値」に対してのみ発生します。
      パラメータ:
      a - 減分する値
      戻り値:
      結果
      例外:
      ArithmeticException - 結果がintをオーバーフローする場合
      導入されたバージョン:
      14
      関連項目:
    • decrementExact

      public static long decrementExact(long a)
      引数を1だけ減分したものを返します。結果がlongをオーバーフローする場合は例外をスローします。 オーバーフローは「最小値」に対してのみ発生します。
      パラメータ:
      a - 減分する値
      戻り値:
      結果
      例外:
      ArithmeticException - 結果がlongをオーバーフローする場合
      導入されたバージョン:
      14
      関連項目:
    • negateExact

      public static int negateExact(int a)
      引数の否定を返します。結果がintをオーバーフローした場合は例外をスローします。 オーバーフローは「最小値」に対してのみ発生します。
      パラメータ:
      a - 否定する値
      戻り値:
      結果
      例外:
      ArithmeticException - 結果がintをオーバーフローする場合
      導入されたバージョン:
      14
      関連項目:
    • negateExact

      public static long negateExact(long a)
      引数の否定を返します。結果がlongをオーバーフローした場合は例外をスローします。 オーバーフローは「最小値」に対してのみ発生します。
      パラメータ:
      a - 否定する値
      戻り値:
      結果
      例外:
      ArithmeticException - 結果がlongをオーバーフローする場合
      導入されたバージョン:
      14
      関連項目:
    • 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に等しくなります。

      例および整数除算の/演算子との比較については、Math.floorDivを参照してください。

      パラメータ:
      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に等しくなります。

      例および整数除算の/演算子との比較については、Math.floorDivを参照してください。

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

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

      例および整数除算の/演算子との比較については、Math.floorDivを参照してください。

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

      例および%演算子との比較については、Math.floorModを参照してください。

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

      例および%演算子との比較については、Math.floorModを参照してください。

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

      例および%演算子との比較については、Math.floorModを参照してください。

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

      fusedMac(a, 1.0, c)は(a + c)と同じ結果を返します。 しかし、fusedMac(a, b, +0.0)は、fusedMac(-0.0, +0.0, +0.0)+0.0であり、(-0.0 * +0.0)が-0.0であるため、常に(a * b)と同じ結果を返すわけではありません。しかし、fusedMac(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が返されます。
      • 引数が無限大の場合、結果は引数と同じ符号を付けた無限大になります。
      • 引数がゼロの場合、結果はゼロに引数と同じ符号を付けた値になります。

      パラメータ:
      x - 双曲線正弦が返される数字。
      戻り値:
      xの双曲線正弦。
      導入されたバージョン:
      1.5
    • cosh

      public static double cosh(double x)
      double値の双曲線余弦を返します。 xの双曲線余弦は、(ex + e-x)/2 (eオイラー数)として定義されます。

      特例として:

      • 引数がNaNの場合、NaNが返されます。
      • 引数が無限大の場合は、正の無限大値が返されます。
      • 引数がゼロの場合、結果は1.0になります。

      パラメータ:
      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になります。

      パラメータ:
      x - 双曲線正接が返される数字。
      戻り値:
      xの双曲線正接。
      導入されたバージョン:
      1.5
    • hypot

      public static double hypot(double x, double y)
      sqrt(x2 +y2)を返します(途中でオーバーフローやアンダーフローは発生しない)。

      特例として:

      • どちらかの引数が無限大の場合は、結果は正の無限大値になります。
      • どちらかの引数がNaNであり、かつどちらの引数も無限大でない場合、結果はNaNになります。
      • 両方の引数がゼロの場合、結果は正のゼロになります。

      パラメータ:
      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になります。
      • 引数がゼロの場合、結果はゼロに引数と同じ符号を付けた値になります。

      パラメータ:
      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になります。
      • 引数が正の無限大の場合は、正の無限大が返されます。
      • 引数が負の値の場合、結果は負の無限大になります。
      • 引数がゼロの場合、結果はゼロに引数と同じ符号を付けた値になります。

      パラメータ:
      x - 値
      戻り値:
      値ln(x + 1)(x + 1の自然対数)
      導入されたバージョン:
      1.5
    • copySign

      public static double copySign(double magnitude, double sign)
      2番目の浮動小数点引数の符号を付けた、最初の浮動小数点引数を返します。 このメソッドの場合、NaN sign引数は常に正であるかのように扱われます。
      パラメータ:
      magnitude - 結果の絶対値を提供するパラメータ
      sign - 結果の符号を提供するパラメータ
      戻り値:
      magnitudeの絶対値とsignの符号を持つ値。
      導入されたバージョン:
      1.6
    • copySign

      public static float copySign(float magnitude, float sign)
      2番目の浮動小数点引数の符号を付けた、最初の浮動小数点引数を返します。 このメソッドの場合、NaN sign引数は常に正であるかのように扱われます。
      パラメータ:
      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)
      正しく丸められた浮動小数点の倍数によって実行されるかのように、d × 2scaleFactorを返します。 結果の指数が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)
      正しく丸められた浮動小数点の倍数によって実行されるかのように、f × 2scaleFactorを返します。 結果の指数が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