|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--java.lang.Math
Math
クラスは、指数関数、対数関数、平方根、および三角関数といった基本的な数値処理を実行するためのメソッドを含んでいます。
StrictMath
クラスの一部の数値メソッドとは異なり、Math
クラスの等価関数のすべての実装は、ビット対ビットの同じ結果を返すようには定義されていません。この柔軟さが、再現性が厳密に要求されていない場合の実装性能を上げることになります。
多くの Math
メソッドはデフォルトで、StrictMath
の等価メソッドにそれらの実装を使用するために単に呼び出します。コードジェネレータは、プラットフォーム固有のネイティブライブラリまたはマイクロプロセッサの命令がある場合は積極的に使用し、高性能な Math
メソッドの実装を提供します。そのような高性能な実装でも Math
の仕様に準拠する必要があります。
実装仕様の品質は、2つのプロパティ、返される結果の正確さ、およびメソッドの単調性と関係があります。浮動小数点 Math
メソッドの正確さは、ulps (最新位置の単位) で計測されます。浮動小数点形式が指定された場合、特定の実数値の ulps はその数値に最も近い 2 つの浮動小数点値の差になります。メソッドの正確性を、特定の引数に関してではなく全体として論じる場合に示される ulps 数は、すべての引数における最大誤差になります。メソッドが返すエラーが常に 0.5 ulps 未満の場合、そのメソッドは実際の結果に最も近い浮動小数点数を常に返します。この種のメソッドは「正しく丸められ」ています。通常は、正しく丸められたメソッドを使用するのが浮動小数点近似値を得る最善の方法ですが、多数の浮動小数点メソッドを正しく丸めるのは、実際的ではありません。その代わりに Math
クラスの場合、1 または 2 ulps より大きいエラーが特定のメソッドで許可されます。非公式には 1 ulps のエラーでは、正確な結果が表現可能な数値の場合に正確な結果が返されます。個別の引数の正確さに加え、メソッドの異なる引数間の適切な関係も重要です。このため、0.5 ulp より大きいエラーを保持するメソッドは、「半単調」であることが求められます。数学関数が非増加である場合は常に、浮動小数点近似値も非増加になります。1 ulp の正確性を保持する近似値すべてが、自動的に単調要件を満たすわけではありません。
フィールドの概要 | |
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 double |
asin(double a)
指定された角度の逆正弦 (アークサイン) を、-pi/2 〜 pi/2 の範囲で返します。 |
static double |
atan(double a)
指定された角度の逆正接 (アークタンジェント) を、-pi/2 〜 pi/2 の範囲で返します。 |
static double |
atan2(double y,
double x)
直交座標 ( x , y ) を極座標 (r, theta) に変換します。 |
static double |
ceil(double a)
引数の値以上で、計算上の整数と等しい、最小の (負の無限大にもっとも近い) double 値を返します。 |
static double |
cos(double a)
指定された角度の余弦 (コサイン) を返します。 |
static double |
exp(double a)
オイラー数 e を double 値で累乗した値を返します。 |
static double |
floor(double a)
引数の値以下で、計算上の整数と等しい、最大の (無限大にもっとも近い) double 値を返します。 |
static double |
IEEEremainder(double f1,
double f2)
IEEE 754 標準に従って、2 個の引数について剰余を計算します。 |
static double |
log(double a)
指定された double 値の自然対数値 (底は e) を返します。 |
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 |
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 |
sin(double a)
指定された角度の正弦 (サイン) を返します。 |
static double |
sqrt(double a)
double 値の正しく丸めた正の平方根を返します。 |
static double |
tan(double a)
指定された角度の正接 (タンジェント) を返します。 |
static double |
toDegrees(double angrad)
ラジアンで計測した角度を、相当する度に変換します。 |
static double |
toRadians(double angdeg)
度で計測した角度を、相当するラジアンに変換します。 |
クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
public static final double E
double
値です。
public static final double PI
double
値です。
メソッドの詳細 |
public static double sin(double a)
結果は正しく丸めた結果の 1 ulp 以内でなければなりません。結果は半単調なものに限ります。
a
- ラジアンで表した角度
public static double cos(double a)
結果は正しく丸めた結果の 1 ulp 以内でなければなりません。結果は半単調なものに限ります。
a
- ラジアンで表した角度
public static double tan(double a)
結果は正しく丸めた結果の 1 ulp 以内でなければなりません。結果は半単調なものに限ります。
a
- ラジアンで表した角度
public static double asin(double a)
結果は正しく丸めた結果の 1 ulp 以内でなければなりません。結果は半単調なものに限ります。
a
- この値の逆正弦 (アークサイン) が返される
public static double acos(double a)
結果は正しく丸めた結果の 1 ulp 以内でなければなりません。結果は半単調なものに限ります。
a
- この値の逆余弦 (アークコサイン) が返される
public static double atan(double a)
結果は正しく丸めた結果の 1 ulp 以内でなければなりません。結果は半単調なものに限ります。
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
値で累乗した値を返します。特例として、
結果は正しく丸めた結果の 1 ulp 以内でなければなりません。結果は半単調なものに限ります。
a
- e に設定した指数
a
の値。e は自然対数の底public static double log(double a)
double
値の自然対数値 (底は e) を返します。特例として、
結果は正しく丸めた結果の 1 ulp 以内でなければなりません。結果は半単調なものに限ります。
a
- 0.0
よりも大きい数値
a
の値。a
の自然対数public static double sqrt(double a)
double
値の正しく丸めた正の平方根を返します。特例として、
double
値が返されます。
a
- 値
a
の正の平方根。引数が NaN であるかゼロよりも小さい場合は、結果も NaNpublic 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
値を返します。特例として、
Math.ceil(x)
の値は -Math.floor(-x)
とまったく同じである点に注意してください。
a
- 値
public static double floor(double a)
double
値を返します。特例として、
a
- 値
public static double rint(double a)
double
値を返します。2 つの double
値の整数が同じ程度に近似している場合、結果は偶数の整数値になります。特例として、
a
- double
値
a
にもっとも近い浮動小数点値public static double atan2(double y, double x)
x
, y
) を極座標 (r, theta) に変換します。このメソッドは、y/x
の逆正接 (アークタンジェント) を -pi 〜 pi の範囲で計算して、位相 theta (シータ) を求めます。特例として、
double
値になります。
double
値になります。
double
値になります。
double
値になります。
double
値になります。
double
値になります。
double
値になります。
double
値になります。
結果は正しく丸めた結果の 2 ulp 以内でなければなりません。結果は半単調なものに限ります。
y
- 縦座標x
- 横座標
public static double pow(double a, double b)
(上記の説明においては、ceil
メソッドによる固定小数点、または同じことですが、floor
メソッドによる固定小数点の場合に限り、浮動小数点値は整数として考えます。そのメソッドを適用した結果と同じ場合に限り、値は引数が 1 つのメソッドの固定小数点となります。)
結果は正しく丸めた結果の 1 ulp 以内でなければなりません。結果は半単調なものに限ります。
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_VALUE
public 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_VALUE
public static double random()
0.0
以上で、1.0
より小さい正の符号の付いた double
値を返します。戻り値は、この範囲からの一様分布によって擬似乱数的に選択されます。
最初にこのメソッドが呼び出されたときに、メソッドは単一の新しい擬似乱数ジェネレータを作成します。これは、次の式とまったく同じです。
この新しい擬似乱数ジェネレータは、以後このメソッドへのすべての呼び出しに使われます。他の場所では使われません。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_VALUE
public static long abs(long a)
long
値の絶対値を返します。引数が負でない場合は引数そのものが返されます。引数が負の場合は、その正負を逆にした値が返されます。
引数が Long.MIN_VALUE
の値 (long
の最小値) と等しい場合は、結果も同じ値 (負の値) になります。
a
- 属性値を決める引数
Long.MIN_VALUE
public 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
のどちらか小さい方
|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.