|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjava.lang.StrictMath
public final class StrictMath
StrictMath クラスは、指数関数、対数関数、平方根、および三角関数といった基本的な数値処理を実行するためのメソッドを含んでいます。
Java プログラムの移植性を保つために、このパッケージにある一部の数値関数の定義は、既存のアルゴリズムと同一の計算結果を出すことが求められています。こうしたアルゴリズムは、有名なネットワークライブラリである netlib から「Freely Distributable Math Library」(fdlibm) パッケージとして入手可能です。これらのアルゴリズムは C 言語で記述されており、すべての浮動小数点演算が Java の浮動小数点演算規則に従って実行されるものと見なされます。
Java の数学ライブラリは fdlibm のバージョン 5.3 を基に定義されています。fdlibm で複数の定義が与えられている関数 (たとえば acos) については、IEEE 754 コア関数のバージョンを使用してください (ファイル名が e で始まるファイルの中にある)。fdlibm セマンティクスを必要とするメソッドには、sin、cos、tan、asin、acos、atan、exp、log、log10、cbrt、atan2、pow、sinh、cosh、tanh、hypot、expm1、および log1p などがあります。
| フィールドの概要 | |
|---|---|
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)
指定された値の逆余弦 (アークコサイン) を返します。 |
static double |
asin(double a)
指定された値の逆正弦 (アークサイン) を返します。 |
static double |
atan(double a)
指定された値の逆正接 (アークタンジェント) を返します。 |
static double |
atan2(double y,
double x)
極座標 (r, theta) への矩形座標 ( x, y) の変換から角度 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 double |
exp(double a)
オイラー数 e を double 値で累乗した値を返します。 |
static double |
expm1(double x)
ex -1 を返します。 |
static double |
floor(double a)
引数の値以下で、計算上の整数と等しい、最大の (正の無限大にもっとも近い) double 値を返します。 |
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 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 double |
nextAfter(double start,
double direction)
2 番目の引数の方向で、最初の引数に隣接する浮動小数点値を返します。 |
static float |
nextAfter(float start,
double direction)
2 番目の引数の方向で、最初の引数に隣接する浮動小数点値を返します。 |
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 値セットのメンバーに単一の正しく丸められた浮動小数点を掛けることによって実行される場合と同様に、 d × 2scaleFactor を返します。 |
static double |
signum(double d)
引数の符号要素を返します。 |
static float |
signum(float f)
引数の符号要素を返します。 |
static double |
sin(double a)
指定された角度の正弦 (サイン) を返します。 |
static double |
sinh(double x)
double 値の双曲線正弦を返します。 |
static double |
sqrt(double a)
double 値の正しく丸めた正の平方根を返します。 |
static double |
tan(double a)
指定された角度の正接 (タンジェント) を返します。 |
static double |
tanh(double x)
double 値の双曲線正接を返します。 |
static double |
toDegrees(double angrad)
ラジアンで計測した角度を、相当する度に変換します。 |
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 |
| フィールドの詳細 |
|---|
public static final double E
e にもっとも近い double 値です。
public static final double PI
double 値です。
| メソッドの詳細 |
|---|
public static double sin(double a)
a - ラジアンで表した角度
public static double cos(double a)
a - ラジアンで表した角度
public static double tan(double a)
a - ラジアンで表した角度
public static double asin(double a)
a - この値の逆正弦 (アークサイン) が返される
public static double acos(double a)
a - この値の逆余弦 (アークコサイン) が返される
public static double atan(double a)
a - この値の逆正接 (アークタンジェント) が返される
public static double toRadians(double angdeg)
angdeg - 度で計測した角度
angdeg の計測値public static double toDegrees(double angrad)
cos(toRadians(90.0)) が正確に 0.0 に対応することを期待できません。
angrad - ラジアンで表した角度
angrad の計測値public static double exp(double a)
double 値で累乗した値を返します。特例として :
a - e に設定した指数
a の値。e は自然対数の底public static double log(double a)
double 値の自然対数値 (底は e) を返します。特例として :
a - 値
a の値。a の自然対数public static double log10(double a)
double 値の 10 を底とする対数を返します。特例として :
a - 値
a の 10 を底とする対数public static double sqrt(double a)
double 値の正しく丸めた正の平方根を返します。特例として :
double 値が返されます。
a - 値
a 正の平方根public static double cbrt(double a)
double 値の立方根を返します。正の有限値 x の場合、cbrt(-x) == -cbrt(x)。 つまり、負の値の立方根は、値の絶対値の立方根を負にしたものです。特例として :
a - 値
a の立方根
public static double IEEEremainder(double f1,
double f2)
f1 - f2 × n に等しくなります。 ここで、n は f1/f2 の商の正確な値にもっとも近い整数です。 f1/f2 に同じ程度に近似する整数が 2 つ存在する場合、n には偶数が選択されます。剰余がゼロになる場合、その符号は 1 番目の引数の符号と同じになります。特例として :
f1 - 被除数f2 - 除数
f1 を f2 で除算したときの剰余public static double ceil(double a)
double 値を返します。特例として :
StrictMath.ceil(x) の値は -StrictMath.floor(-x) とまったく同じである点に注意してください。
a - 値
public static double floor(double a)
double 値を返します。特例として :
a - 値
public static double rint(double a)
double 値を返します。2 つの double 値の整数が引数の値と同程度に近似している場合、結果は偶数の整数値になります。特例として :
a - 値
a にもっとも近い浮動小数点値
public static double atan2(double y,
double x)
x, y) の変換から角度 theta を返します。このメソッドは、y/x の逆正接 (アークタンジェント) を -pi 〜 pi の範囲で計算して、位相 theta (シータ) を求めます。特例として :
double 値になります。
double 値になります。
double 値になります。
double 値になります。
double 値になります。
double 値になります。
double 値になります。
double 値になります。
y - 縦座標x - 横座標
public static double pow(double a,
double b)
double 値として正確に表される場合は 1 番目の引数を 2 番目の引数で累乗した計算値とまったく同じ結果になる(上記の説明においては、ceil メソッドによる固定小数点、または同じことですが、floor メソッドによる固定小数点の場合に限り、浮動小数点値は整数として考えます。そのメソッドを適用した結果と同じ場合に限り、値は引数が 1 つのメソッドの固定小数点となります。
a - 基数b - 指数
ab 値public static int round(float a)
int を返します。結果は 1/2 を加えて floor メソッドで取り int にキャストして整数に丸められます。つまり、次の式の値に等しくなります。 (int)Math.floor(a + 0.5f)
特例として :
Integer.MIN_VALUE 以下の任意の値である場合、結果は Integer.MIN_VALUE の値に等しくなります。
Integer.MAX_VALUE 以上の任意の値である場合、結果は Integer.MAX_VALUE の値に等しくなります。
a - 整数に丸める浮動小数点値
int 値に丸めた値Integer.MAX_VALUE,
Integer.MIN_VALUEpublic static long round(double a)
long を返します。結果は 1/2 を加えて floor メソッドで取り int にキャストして整数に丸められます。つまり、次の式の値に等しくなります。 (long)Math.floor(a + 0.5d)
特例として :
Long.MIN_VALUE 以下の任意の値である場合、結果は Long.MIN_VALUE の値に等しくなります。
Long.MAX_VALUE 以上の任意の値である場合、結果は Long.MAX_VALUE の値に等しくなります。
a - long に丸める浮動小数点値
long 値に丸めた値Long.MAX_VALUE,
Long.MIN_VALUEpublic static double random()
0.0 以上で、1.0 より小さい正の符号の付いた double 値を返します。戻り値は、この範囲からの一様分布によって擬似乱数的に選択されます。
最初にこのメソッドが呼び出されたときに、メソッドは単一の新しい擬似乱数ジェネレータを作成します。これは、次の式とまったく同じです。
This この新しい擬似乱数ジェネレータは、以後このメソッドへのすべての呼び出しに使われます。ほかの場所では使われません。new java.util.Random
このメソッドは、複数のスレッドが正しく使えるよう適切に同期されます。しかし、多数のスレッドで擬似乱数を高頻度で発生する必要がある場合は、スレッド独自の擬似乱数ジェネレータを用意して各スレッドのコンテンションを減らしてもかまいません。
double の擬似乱数。範囲は、0.0 以上 1.0 未満Random.nextDouble()public static int abs(int a)
int 値の絶対値を返します。引数が負でない場合は引数そのものを返します。負のときは、その正負を逆にした値を返します。
引数が Integer.MIN_VALUE の値 (int の最小値) と等しい場合は、結果も同じ値 (負の値) になります。
a - 属性値を決める引数
Integer.MIN_VALUEpublic static long abs(long a)
long 値の絶対値を返します。引数が負でない場合は引数そのものを返します。負のときは、その正負を逆にした値を返します。
引数が Long.MIN_VALUE の値 (long の最小値) と等しい場合は、結果も同じ値 (負の値) になります。
a - 属性値を決める引数
Long.MIN_VALUEpublic static float abs(float a)
float 値の絶対値を返します。引数が負でない場合は引数そのものを返します。負のときは、その正負を逆にした値を返します。特例として :
Float.intBitsToFloat(0x7fffffff & Float.floatToIntBits(a))
a - 属性値を決める引数
public static double abs(double a)
double 値の絶対値を返します。引数が負でない場合は引数そのものを返します。負のときは、その正負を逆にした値を返します。特例として :
Double.longBitsToDouble((Double.doubleToLongBits(a)<<1)>>>1)
a - 属性値を決める引数
public static int max(int a,
int b)
int 値のうち大きいほうを返します。つまり、結果は Integer.MAX_VALUE の値に近いほうの引数となります。引数の値が同じ場合は同じ値を返します。
a - 引数b - 別の引数
a と b のどちらか大きい方Long.MAX_VALUE
public static long max(long a,
long b)
long 値のうち大きいほうを返します。つまり、結果は Long.MAX_VALUE の値に近いほうの引数となります。引数の値が同じ場合は同じ値を返します。
a - 引数b - 別の引数
a と b のどちらか大きい方Long.MAX_VALUE
public static float max(float a,
float b)
float 値のうち大きいほうを返します。つまり、結果は正の無限大に近いほうの引数となります。引数の値が同じ場合は同じ値を返します。どちらかの値が NaN の場合は NaN を返します。数値比較演算子とは異なり、このメソッドは負のゼロが厳密には正のゼロよりも小さいと見なします。一方の引数が正のゼロでもう一方が負のゼロの場合は、正のゼロを返します。
a - 引数b - 別の引数
a と b のどちらか大きい方
public static double max(double a,
double b)
double 値のうち大きいほうを返します。つまり、結果は正の無限大に近いほうの引数となります。引数の値が同じ場合は同じ値を返します。どちらかの値が NaN の場合は NaN を返します。数値比較演算子とは異なり、このメソッドは負のゼロが厳密には正のゼロよりも小さいと見なします。一方の引数が正のゼロでもう一方が負のゼロの場合は、正のゼロを返します。
a - 引数b - 別の引数
a と b のどちらか大きい方
public static int min(int a,
int b)
int 値のうち小さいほうを返します。つまり、結果は Integer.MIN_VALUE の値に近いほうの引数となります。引数の値が同じ場合は同じ値を返します。
a - 引数b - 別の引数
a と b のどちらか小さい方Long.MIN_VALUE
public static long min(long a,
long b)
long 値のうち小さいほうを返します。つまり、結果は Long.MIN_VALUE の値に近いほうの引数となります。引数の値が同じ場合は同じ値を返します。
a - 引数b - 別の引数
a と b のどちらか小さい方Long.MIN_VALUE
public static float min(float a,
float b)
float 値のうち小さいほうを返します。つまり、結果は負の無限大に近いほうの値となります。引数の値が同じ場合は同じ値を返します。どちらかの値が NaN の場合は NaN を返します。数値比較演算子とは異なり、このメソッドは負のゼロが厳密には正のゼロよりも小さいと見なします。一方の引数が正のゼロでもう一方が負のゼロの場合は、負のゼロを返します。
a - 引数b - 別の引数
a と b のどちらか小さい方
public static double min(double a,
double b)
double 値のうち小さいほうを返します。つまり、結果は負の無限大に近いほうの値となります。引数の値が同じ場合は同じ値を返します。どちらかの値が NaN の場合は NaN を返します。数値比較演算子とは異なり、このメソッドは負のゼロが厳密には正のゼロよりも小さいと見なします。一方の引数が正のゼロでもう一方が負のゼロの場合は、負のゼロを返します。
a - 引数b - 別の引数
a と b のどちらか小さい方public static double ulp(double d)
double 値の ulp は、この浮動小数点値と、絶対値で次に大きい double 値との間の正の距離です。x が NaN 以外の場合、ulp(-x) == ulp(x) です。
特例として:
Double.MIN_VALUE になる
Double.MAX_VALUE の場合、 結果は 2971 に等しくなる
d - ulp が返される浮動小数点値
public static float ulp(float f)
float 値の ulp は、この浮動小数点値と、絶対値で次に大きい float 値との間の正の距離です。x が NaN 以外の場合、ulp(-x) == ulp(x) です。
特例として:
Float.MIN_VALUE になる
Float.MAX_VALUE の場合、 結果は 2104 に等しくなる
f - ulp が返される浮動小数点値
public static double signum(double d)
特例として:
d - 符号が返される浮動小数点値
public static float signum(float f)
特例として:
f - 符号が返される浮動小数点値
public static double sinh(double x)
double 値の双曲線正弦を返します。x の双曲線正弦は (ex - e-x)/2 で表されます。 ここで、e は Euler's number です。
特例として :
x - 双曲線正弦が返される数字
x の双曲線正弦public static double cosh(double x)
double 値の双曲線余弦を返します。x の双曲線余弦は (ex + e-x)/2 で表されます。 ここで、e は Euler's number です。
特例として :
1.0 になる
x - 双曲線余弦が返される数字
x の双曲線余弦public static double tanh(double x)
double 値の双曲線正接を返します。x の双曲線正接は (ex - e-x)/(ex + e-x) で表されます。 つまり、sinh(x)/cosh(x)。正確な tanh の絶対値は常に 1 未満です。
特例として :
+1.0 になる
-1.0 になる
x - 双曲線正接が返される数字
x の双曲線正接
public static double hypot(double x,
double y)
特例として :
x - 値y - 値
public static double expm1(double x)
expm1(x) + 1 の正確な合計は、exp(x) よりも ex の真の結果にかなり近くなります。
特例として :
x - ex -1 の計算に設定した e の指数
x - 1public static double log1p(double x)
x の値が小さい場合、log1p(x) の結果は、log(1.0+x) の浮動小数点評価よりも ln(1 + x) の真の結果にかなり近くなります。
特例として :
x - 値
x + 1) の値。 x + 1 の自然対数
public static double copySign(double magnitude,
double sign)
sign 引数は常に正であるかのように扱われます。
magnitude - 結果の絶対値を提供するパラメータsign - 結果の符号を提供するパラメータ
magnitude の絶対値と sign の符号を持つ値
public static float copySign(float magnitude,
float sign)
sign 引数は常に正であるかのように扱われます。
magnitude - 結果の絶対値を提供するパラメータsign - 結果の符号を提供するパラメータ
magnitude の絶対値と sign の符号を持つ値public static int getExponent(float f)
float の表現で使用される不偏指数を返します。特例として :
Float.MAX_EXPONENT + 1 になります。
Float.MIN_EXPONENT -1 になります。
f - float 値public static int getExponent(double d)
double の表現で使用される不偏指数を返します。特例として :
Double.MAX_EXPONENT + 1 になります。
Double.MIN_EXPONENT -1 になります。
d - double 値
public static double nextAfter(double start,
double direction)
特例として :
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 に隣接する浮動小数点値
public static float nextAfter(float start,
double direction)
特例として :
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 に隣接する浮動小数点値public static double nextUp(double d)
d に隣接する浮動小数点値を返します。このメソッドは意味上は nextAfter(d, Double.POSITIVE_INFINITY) と同じです。ただし、nextUp 実装は、それに等しい nextAfter 呼び出しよりも高速に実行できることもあります。
特例として:
Double.MIN_VALUE になります。
d - 開始浮動小数点値
public static float nextUp(float f)
f に隣接する浮動小数点値を返します。このメソッドは意味上は nextAfter(f, Float.POSITIVE_INFINITY) と同じです。ただし、nextUp 実装は、それに等しい nextAfter 呼び出しよりも高速に実行できることもあります。
特例として:
Float.MIN_VALUE になります。
f - 開始浮動小数点値
public static double scalb(double d,
int scaleFactor)
d × 2scaleFactor を返します。浮動小数点値セットについては、『Java 言語仕様』を参照してください。結果の指数が Double.MIN_EXPONENT から Double.MAX_EXPONENT の間の場合、答は正確に計算されます。結果の指数が Double.MAX_EXPONENT より大きくなる場合、無限大が返されます。結果が非正規の場合は、精度が失われる可能性があります。つまり、scalb(x, n) が非正規の場合、scalb(scalb(x, n), -n) は x と等しくない可能性があります。結果が NaN 以外の場合、その結果は d と同じ符号を持ちます。
特例として :
d - 2 の累乗によってスケーリングされる数scaleFactor - d をスケーリングするために使用される 2 の累乗
d × 2scaleFactor
public static float scalb(float f,
int scaleFactor)
d × 2scaleFactor を返します。浮動小数点値セットについては、『Java 言語仕様』を参照してください。結果の指数が Float.MIN_EXPONENT から Float.MAX_EXPONENT の間の場合、答は正確に計算されます。結果の指数が Float.MAX_EXPONENT より大きくなる場合、無限大が返されます。結果が非正規の場合は、精度が失われる可能性があります。つまり、scalb(x, n) が非正規の場合、scalb(scalb(x, n), -n) は x と等しくない可能性があります。結果が NaN 以外の場合、その結果は f と同じ符号を持ちます。
特例として :
f - 2 の累乗によってスケーリングされる数scaleFactor - f をスケーリングするために使用される 2 の累乗
f × 2scaleFactor
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。