seclan のほえほえルーム

| |

・プログラミング言語 C の新機能 Part LII: math.h: 関数: エラー/ガンマ/丸め/余り関数 (2000/03/10 [])
 今回は math.h に追加された関数の二回目で、エラー/ガンマ/丸め/余り関数です。

エラー/ガンマ関数(error/gamma functions)
名前プロトタイプ解説
erf
doubleerf(double x);
floaterff(float x);
long doubleerfl(long double x);
エラー関数 (error function)
2 x

e-t2 dt
√π 0
を計算します。(IE だと正しく表示されません。-t2 → -t2)
erfc
doubleerfc(double x);
floaterfcf(float x);
long doubleerfcl(long double x);
補足(?)エラー関数(complementary error function)
2 

e-t2 dt
√π x
を計算します。x が大きすぎると range error の可能性あり。(IE だと正しく表示されません。-t2 → -t2)
tgamma
doubletgamma(double x);
floattgammaf(float x);
long doubletgammal(long double x);
ガンマ関数 Γ(x) を計算します。x が 0 以下の場合 domain error。 x が大きすぎ/小さすぎる場合 range error の可能性あり。
lgamma
doublelgamma(double x);
floatlgammaf(float x);
long doublelgammal(long double x);
loge|Γ(x)| を計算します。x が大きすぎる場合、または 0 以下の場合は range error。


丸め関数(nearest integer functions)
名前プロトタイプ解説
nearbyint
doublenearbyint(double x);
floatnearbyintf(float x);
long doublenearbyintl(long double x);
x を現在の丸め方向にしたがって、浮動小数点形式の整数値に丸めます。inexact(不正確) 例外は発生しません。
rint
doublerint(double x);
floatrintf(float x);
long doublerintl(long double x);
x を現在の丸め方向にしたがって、浮動小数点形式の整数値に丸めます。inexact 例外の発生の可能性あり。
lrint

llrint
longlrint(double x);
longlrintf(float x);
longlrintl(long double x);

long longllrint(double x);
long longllrintf(float x);
long longllrintl(long double x);
x を現在の丸め方向にしたがって、最も近い整数値に丸めます。結果が範囲外の場合は結果は未定義です。x が大きすぎると range error の可能性あり。
lrint は戻り値が long、llrint はその long long 版。
round
doubleround(double x);
floatroundf(float x);
long doubleroundl(long double x);
x を現在の丸め方向にかかわらず、中間値(0.5)を基準に 0 から遠い方向へ、浮動小数点形式の整数値に丸めます。
lround

llround
longlround(double x);
longlroundf(float x);
longlroundl(long double x);
long longllround(double x);
long longllroundf(float x);
long longllroundl(long double x);
x を現在の丸め方向にかかわらず、中間値(0.5)を基準に 0 から遠い方向へ、浮動小数点形式の整数値に丸めます。結果が範囲外の場合は結果は未定義です。x が大きすぎると range error の可能性あり。
lround は戻り値が long、llround はその long long 版。
trunc
doubletrunc(double x);
floattruncf(float x);
long doubletruncl(long double x);
現在の丸め方向にかかわらず、x をその値より大きくならない方向に、浮動小数点形式の整数値に丸めます。


余り関数(remainder functions)
名前プロトタイプ解説
remainder
doubleremainder(double x, double y);
floatremainderf(float x, float y);
long doubleremainderl(long double x, long double y);
 y が 0 以外のとき定義され、x REM y の結果の値 r を返します。r は r = x - n × y から導かれます。n は x/y を正確に表現するのに最も近い整数値で |n - x/y|=1/2 がいつでも成り立つ偶数です。r が 0 なら符号は x の符号と等しくなります。
remquo
doubleremquo(double x, double y, int *quo);
floatremquof(float x, float y, int *quo);
long doubleremquol(long double x, long double y, int *quo);
 remainder と同じ。quo には、x/y の符号と、2n(n は 3 以上の実装定義値)を法とする x/y の整数の商を持つ値が入ります。



by seclan


| |

 

配信

4.29 msec