この章の目次にもどる
前頁:1.4 bctype.h にもどる
次頁:1.6 bsetjmp.h にすすむ

1.5 bmath.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
acos
 
逆余弦関数

【形式】

double  acos(double x)

【パラメータ】

double  x   余弦値(許容値 -1.0≦ x ≦+1.0)

【リターン値】

≠EDOM      逆余弦の主値(単位:ラジアン)
            実際は 0≦acos(x)≦+π の値となる。
=EDOM      エラー
            x が許容値以外の値を指定された場合に、エラーを返す。

【解説】

x の逆余弦 arccos の主値を返す。

【参照】

asin(), atan()

asin
 
逆正弦関数

【形式】

double  asin(double x)

【パラメータ】

double  x   正弦値(許容値 -1.0≦ x ≦+1.0)

【リターン値】

≠EDOM      逆正弦の主値(単位:ラジアン)
            実際は -(π/2)≦asin(x)≦+(π/2) の値となる。
=EDOM      エラー
            x が許容値以外の値を指定された場合に、エラーを返す。

【解説】

x の逆正弦 arcsin の主値を返す。

【参照】

acos(), atan()

atan
 
逆正接関数

【形式】

double  atan(double x)

【パラメータ】

double  x   正接値

【リターン値】

≠EDOM      逆正接の主値(単位:ラジアン)
            実際は -(π/2)≦atan(x)≦+(π/2) の値となる。
=EDOM      エラー
            特に許容値の制限はないので、エラーは発生しない。

【解説】

x の逆正接 arctan の主値を返す。

【参照】

acos(), asin(), atan2()

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 の符号については以下の関係となる。

象限と x, y の符号
図 1 : 象限と x, y の符号

【参照】

acos(), asin(), atan()

atof
 
文字列の倍精度浮動小数点数への変換

【形式】

double  atof(char *s)

【パラメータ】

char    *s  浮動小数点を表現する ASCII 文字列

【リターン値】

倍精度浮動小数点数

【解説】

与えられた ASCII 文字列を倍精度浮動小数点数に変換する。

結果がオーバーフローした場合は HUGE_VAL を返し、errnoERANGE を格納します。

結果がアンダーフローした場合は 0.0 を返し、 errnoERANGE を格納します。

【参照】

ceil
 
最近接最小値

【形式】

double  ceil(double x)

【パラメータ】

double  x   計算する値

【リターン値】

最近接整数値の倍精度浮動小数点表現した値

【解説】

x 以上で、かつ最小となる整数値を倍精度浮動小数点数で返す。

【参照】

floor()

cos
 
余弦関数

【形式】

double  cos(double x)

【パラメータ】

double  x   角度(単位:ラジアン)

【リターン値】

余弦値

【解説】

x の余弦値を返す。

【参照】

sin(), tan()

cosh
 
双曲線余弦関数

【形式】

double  cosh(double x)

【パラメータ】

double  x   計算する値

【リターン値】

双曲線余弦値

【解説】

x の双曲線余弦を返す。

【参照】

sinh(), tanh()

exp
 
指数関数

【形式】

double  exp(double x)

【パラメータ】

double  x   指数

【リターン値】

=HUGE_VAL  計算結果がオーバーフローした
=0         計算結果がアンダーフローした
その他      累乗値

【解説】

自然対数の底 e を指数 x の累乗した値を返す。

【参照】

frexp(), ldexp()

fabs
 
絶対値

【形式】

double  fabs(double x)

【パラメータ】

double  x   計算する値

【リターン値】

浮動小数点絶対値

【解説】

x の絶対値を返す。

【参照】

floor
 
最近接最大値

【形式】

double  floor(double x)

【パラメータ】

double  x   計算する値

【リターン値】

最近接最大整数値の倍精度浮動小数点数で表現した値

【解説】

x 以下で、かつ最大となる整数値を倍精度浮動小数点数で返す。

【参照】

ceil()

frexp
 
指数分解

【形式】

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()

hypot
 
ユークリッド距離

【形式】

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()

j0
 
ベッセル関数

【形式】

double  j0(double x)

【パラメータ】

double  x   計算する値

【リターン値】

結果の値

【解説】

j0 は与えられた引数に対するオーダー 0 の第一種Bessel関数を計算する。

【参照】

j1(), jn()

j1
 
ベッセル関数

【形式】

double  j1(double x)

【パラメータ】

double  x   計算する値

【リターン値】

結果の値

【解説】

j1 は与えられた引数に対するオーダー 1 の第一種Bessel関数を計算する。

【参照】

j0(), jn()

jn
 
ベッセル関数

【形式】

double  jn(int n, double x)

【パラメータ】

int     n   オーダー
double  x   計算する値

【リターン値】

結果の値

【解説】

jn は与えられた引数に対するオーダー n の第一種Bessel関数を計算する。

【参照】

j0(), j1()

ldexp
 
指数積載

【形式】

double  ldexp(double x, int n)

【パラメータ】

double  x   仮数部
int     n   2 の指数部

【リターン値】

=±HUGE_VAL    計算結果がオーバーフローした
≠±HUGE_VAL    計算結果

【解説】

x×2**n の計算結果を返す。

【参照】

exp(), frexp()

log
 
自然対数関数

【形式】

double  log(double x)

【パラメータ】

double  x   真数(>0)

【リターン値】

自然対数値

【解説】

x の自然対数を返す。

【参照】

exp()

log10
 
10を底とする対数関数

【形式】

double  log10(double x)

【パラメータ】

double  x   真数(>0)

【リターン値】

常用対数値

【解説】

10を底とするxの対数(常用対数)を返す。

【参照】

log()

modf
 
整数部と小数部への分割

【形式】

double  modf(double vaule, double* iptr)

【パラメータ】

double  value   元の値
double  *iptr   valueに対する整数部を格納する領域

【リターン値】

value の小数部。

【解説】

value の小数部を返す。 整数部は iptr で指定された領域に記憶する。 整数部と小数部の符号は同じである。 *iptr + modfvalue と一致する。

【参照】

pow
 
累乗関数

【形式】

double  pow(double x, double y)

【パラメータ】

double  x   底
double  y   指数

【リターン値】

累乗値
=±HUGE_VAL    計算結果がオーバーフローした
≠±HUGE_VAL    累乗値

【解説】

xy 乗 を返す。

【参照】

sin
 
正弦関数

【形式】

double  sin(double x)

【パラメータ】

double  x   角度(単位:ラジアン)

【リターン値】

正弦値

【解説】

x の正弦値を返す。

【参照】

cos(), tan()

sinh
 
双曲線正弦関数

【形式】

double  sinh(double x)

【パラメータ】

double  x   計算する値

【リターン値】

双曲線正弦値

【解説】

x の双曲線正弦値を返す。

【参照】

cosh(), tanh()

sqrt
 
平方根

【形式】

double  sqrt(double x)

【パラメータ】

double  x   2乗値(>0)

【リターン値】

平方根値

【解説】

x の平方根を返す。 x が負の値の場合、 定義域エラー ( domain error ) を返す。

【参照】

tan
 
正接関数

【形式】

double  tan(double x)

【パラメータ】

double  x   角度(単位:ラジアン)

【リターン値】

正接値

【解説】

x の正接値を返す。

【参照】

cos(), sin()

tanh
 
双曲線正接関数

【形式】

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 の値に変換する。

ptrNULL でない場合は、 文字列の解釈が終わった所を指すポインタの値が *ptr に格納される。 文字列から数値が生成できない場合は *ptrstr となる。

【参照】

tc_atof()

この章の目次にもどる
前頁:1.4 bctype.h にもどる
次頁:1.6 bsetjmp.h にすすむ