この章の目次にもどる
前頁:1.4 bctype.h
にもどる
次頁:1.6 bsetjmp.h
にすすむ
ヘッダ <bmath.h>
は、
標準 C における <math.h>
に対応し、
各種数値演算のための定数および関数を宣言する。
□ 制限値
#define FLT_RADIX ( 2 )
#define FLT_ROUNDS ( 1 ) /* 四捨五入 */
#define FLT_DIG ( 6 )
#define FLT_EPSILON ( 1.19209290e-07F )
#define FLT_MANT_DIG ( 24 )
#define FLT_MAX ( 3.40282347e+38F ) /* 単精度実数の最大値 */
#define FLT_MAX_EXP ( 128 ) /* 単精度実数の2に対する累乗最大値 */
#define FLT_MAX_10_EXP ( 38 ) /* 単精度実数の10に対する累乗最大値 */
#define FLT_MIN ( 1.17549435e-38F ) /* 単精度実数の最小値 */
#define FLT_MIN_EXP ( -125 ) /* 単精度実数の2に対する累乗最小値 */
#define FLT_MIN_10_EXP ( -37 ) /* 単精度実数の10に対する累乗最小値 */
#define DBL_DIG ( 15 )
#define DBL_EPSILON ( 2.2204460492503131e-16 )
#define DBL_MANT_DIG ( 53 )
#define DBL_MAX ( 1.7976931348623157e+308 )
/* 倍精度実数の最大値 */
#define DBL_MAX_EXP ( 1024 ) /* 倍精度実数の2に対する累乗最大値 */
#define DBL_MAX_10_EXP ( 308 ) /* 倍精度実数の10に対する累乗最大値 */
#define DBL_MIN ( 2.2250738585072014e-308 )
/* 倍精度実数の最小値 */
#define DBL_MIN_EXP ( -1021 ) /* 倍精度実数の2に対する累乗最小値 */
#define DBL_MIN_10_EXP ( -307 ) /* 倍精度実数の10に対する累乗最小値 */
#define LDBL_DIG DBL_DIG
#define LDBL_EPSILON DBL_EPSILON
#define LDBL_MANT_DIG DBL_MANT_DIG
#define LDBL_MAX DBL_MAX /* 長倍精度実数の最大値 */
#define LDBL_MAX_EXP DBL_MAX_EXP /* 長倍精度実数の2に対する累乗最大値 */
#define LDBL_MAX_10_EXP DBL_MAX_10_EXP /* 長倍精度実数の10に対する累乗最大値 */
#define LDBL_MIN DBL_MIN /* 長倍精度実数の最小値 */
#define LDBL_MIN_EXP DBL_MIN_EXP /* 長倍精度実数の2に対する累乗最小値 */
#define LDBL_MIN_10_EXP DBL_MIN_10_EXP /* 長倍精度実数の10に対する累乗最小値 */
#define HUGE_VAL ( __infinity() ) /* 事実上の無限大 */
□ エラー発生時の戻値
EBON 0 /* 成功 */
EDOM 10 /* 引数が定義域外 */
ERANGE 11 /* 結果が範囲を超えた */
EINVAL 12
□ 定数
#define PI 3.14159265358979323846
#define SQRT2 1.41421356237309504880
#define LOG2B10 0.30102999566398119e+00
#define LOG10BE 0.23025850929940456e+01
#define LOG10B2 0.33219280948873623e+01
#define LOGEB2 1.4426950408889634074
【形式】
double acos(double x)
【パラメータ】
double x 余弦値(許容値 -1.0≦ x ≦+1.0)
【リターン値】
≠EDOM 逆余弦の主値(単位:ラジアン)
実際は 0≦acos(x)≦+π の値となる。
=EDOM エラー
x が許容値以外の値を指定された場合に、エラーを返す。
【解説】
x の逆余弦 arccos
の主値を返す。
【参照】
asin(), atan()
【形式】
double asin(double x)
【パラメータ】
double x 正弦値(許容値 -1.0≦ x ≦+1.0)
【リターン値】
≠EDOM 逆正弦の主値(単位:ラジアン)
実際は -(π/2)≦asin(x)≦+(π/2) の値となる。
=EDOM エラー
x が許容値以外の値を指定された場合に、エラーを返す。
【解説】
x の逆正弦 arcsin
の主値を返す。
【参照】
acos(), atan()
【形式】
double atan(double x)
【パラメータ】
double x 正接値
【リターン値】
≠EDOM 逆正接の主値(単位:ラジアン)
実際は -(π/2)≦atan(x)≦+(π/2) の値となる。
=EDOM エラー
特に許容値の制限はないので、エラーは発生しない。
【解説】
x の逆正接 arctan
の主値を返す。
【参照】
acos(), asin(), atan2()
【形式】
double atan2(double y, double x)
【パラメータ】
double x ベクトルx方向の値、正接分母
double y ベクトルy方向の値、正接分子
【リターン値】
≠EDOM 逆正接の主値(単位:ラジアン)
実際は -π≦atan2(y,x)≦+π の値となる。
=EDOM エラー
x が 0 の場合など、不適切な値が指定された場合に、エラーを返す。
【解説】
y/x
の逆正接 arctan
の主値を返す。
象限と x, y
の符号については以下の関係となる。
図 1 : 象限と x, y
の符号
【参照】
acos(), asin(), atan()
【形式】
double atof(char *s)
【パラメータ】
char *s 浮動小数点を表現する ASCII 文字列
【リターン値】
倍精度浮動小数点数
【解説】
与えられた ASCII 文字列を倍精度浮動小数点数に変換する。
結果がオーバーフローした場合は
HUGE_VAL
を返し、errno
に
ERANGE
を格納します。
結果がアンダーフローした場合は 0.0
を返し、
errno
に ERANGE
を格納します。
【参照】
【形式】
double ceil(double x)
【パラメータ】
double x 計算する値
【リターン値】
最近接整数値の倍精度浮動小数点表現した値
【解説】
x 以上で、かつ最小となる整数値を倍精度浮動小数点数で返す。
【参照】
floor()
【形式】
double cos(double x)
【パラメータ】
double x 角度(単位:ラジアン)
【リターン値】
余弦値
【解説】
x の余弦値を返す。
【参照】
sin(), tan()
【形式】
double cosh(double x)
【パラメータ】
double x 計算する値
【リターン値】
双曲線余弦値
【解説】
x の双曲線余弦を返す。
【参照】
sinh(), tanh()
【形式】
double exp(double x)
【パラメータ】
double x 指数
【リターン値】
=HUGE_VAL 計算結果がオーバーフローした
=0 計算結果がアンダーフローした
その他 累乗値
【解説】
自然対数の底 e を指数 x の累乗した値を返す。
【参照】
frexp(), ldexp()
【形式】
double fabs(double x)
【パラメータ】
double x 計算する値
【リターン値】
浮動小数点絶対値
【解説】
x の絶対値を返す。
【参照】
【形式】
double floor(double x)
【パラメータ】
double x 計算する値
【リターン値】
最近接最大整数値の倍精度浮動小数点数で表現した値
【解説】
x 以下で、かつ最大となる整数値を倍精度浮動小数点数で返す。
【参照】
ceil()
【形式】
double frexp(double value, int *eptr)
【パラメータ】
double value 計算する値
int *eptr 指数を格納する領域
【リターン値】
正規化分数
0.5 ≦ y < 1 か y = 0 の区間の x = y × 2**(*eptr) となるような正規化分数
y = x / 2 ^ (*eptr) を返す。
x = 0 の場合には 0 を返し、*eptr に 0 を格納する。
【解説】
浮動小数点数 value
を正規化分数 y と 2 の整数べき乗に分割し、
それぞれを戻値と eptr
に返す。
【参照】
exp(), ldexp()
【形式】
double hypot(double x, double y)
【パラメータ】
double x x座標値
double y y座標値
【リターン値】
原点から指定座標までの距離
【解説】
sqrt(x×x+y×y)
を返す。
hypot(x,y)
と atan2(y,x)
を使って直交座標
(x,y)
を極座標 (r,th)
に変換することができる。
【参照】
sqrt(), atan2()
【形式】
double j0(double x)
【パラメータ】
double x 計算する値
【リターン値】
結果の値
【解説】
j0
は与えられた引数に対するオーダー 0 の第一種Bessel関数を計算する。
【参照】
j1(), jn()
【形式】
double j1(double x)
【パラメータ】
double x 計算する値
【リターン値】
結果の値
【解説】
j1
は与えられた引数に対するオーダー 1 の第一種Bessel関数を計算する。
【参照】
j0(), jn()
【形式】
double jn(int n, double x)
【パラメータ】
int n オーダー
double x 計算する値
【リターン値】
結果の値
【解説】
jn
は与えられた引数に対するオーダー n の第一種Bessel関数を計算する。
【参照】
j0(), j1()
【形式】
double ldexp(double x, int n)
【パラメータ】
double x 仮数部
int n 2 の指数部
【リターン値】
=±HUGE_VAL 計算結果がオーバーフローした
≠±HUGE_VAL 計算結果
【解説】
x×2**n
の計算結果を返す。
【参照】
exp(), frexp()
【形式】
double log(double x)
【パラメータ】
double x 真数(>0)
【リターン値】
自然対数値
【解説】
x の自然対数を返す。
【参照】
exp()
【形式】
double log10(double x)
【パラメータ】
double x 真数(>0)
【リターン値】
常用対数値
【解説】
10を底とするxの対数(常用対数)を返す。
【参照】
log()
【形式】
double modf(double vaule, double* iptr)
【パラメータ】
double value 元の値
double *iptr valueに対する整数部を格納する領域
【リターン値】
value
の小数部。
【解説】
value
の小数部を返す。
整数部は iptr
で指定された領域に記憶する。
整数部と小数部の符号は同じである。
*iptr + modf
は value
と一致する。
【参照】
【形式】
double pow(double x, double y)
【パラメータ】
double x 底
double y 指数
【リターン値】
累乗値
=±HUGE_VAL 計算結果がオーバーフローした
≠±HUGE_VAL 累乗値
【解説】
x
の y
乗 を返す。
【参照】
【形式】
double sin(double x)
【パラメータ】
double x 角度(単位:ラジアン)
【リターン値】
正弦値
【解説】
x
の正弦値を返す。
【参照】
cos(), tan()
【形式】
double sinh(double x)
【パラメータ】
double x 計算する値
【リターン値】
双曲線正弦値
【解説】
x
の双曲線正弦値を返す。
【参照】
cosh(), tanh()
【形式】
double sqrt(double x)
【パラメータ】
double x 2乗値(>0)
【リターン値】
平方根値
【解説】
x
の平方根を返す。
x
が負の値の場合、
定義域エラー ( domain error
) を返す。
【参照】
【形式】
double tan(double x)
【パラメータ】
double x 角度(単位:ラジアン)
【リターン値】
正接値
【解説】
x
の正接値を返す。
【参照】
cos(), sin()
【形式】
double tanh(double x)
【パラメータ】
double x 計算する値
【リターン値】
双曲線正接値
【解説】
x
の双曲線正接値を返す。
【参照】
cosh(), sinh()
tc_atof |
|
TRON数字列からdoubleへの変換 |
|
【形式】
double tc_atof(TC *tc)
【パラメータ】
TC *tc 数字TRON文字列
【リターン値】
倍精度浮動小数点数
【解説】
TRON 文字コードで表現された日本語文字数字列を倍精度浮動小数点数に変換する。
【参照】
tc_strtod()
tc_strtod |
|
TRON数字列からdoubleへの変換 |
|
【形式】
double tc_strtod(TC *tc, TC **ptr)
【パラメータ】
TC *tc 数字TRON文字列
TC **ptr 解釈終了箇所を示すポインタ
【リターン値】
倍精度浮動小数点数
【解説】
TRON 文字コードで表現された日本語文字数字列を double
の値に変換する。
ptr
が NULL
でない場合は、
文字列の解釈が終わった所を指すポインタの値が
*ptr
に格納される。
文字列から数値が生成できない場合は *ptr
は str
となる。
【参照】
tc_atof()
この章の目次にもどる
前頁:1.4 bctype.h
にもどる
次頁:1.6 bsetjmp.h
にすすむ