EXPM1/DEXPM1/QEXPM1/CEXPM1/CDEXPM1/CQEXPM1
関数 exp(x) - 1
作成 |
二宮 市三 1981年4月 改訂 2003年8月 |
形式 |
関数 言語:FORTRAN 43,57,36,22,22,22各行 |
概要
EXPM1(DEXPM1,QEXPM1)は単(倍,4倍)精度実数 xに対して,関数
exp(x) - 1を単(倍,4倍)精度で計算する.
CEXPM1(CDEXPM1,CQEXPM1)は単(倍,4倍)精度複素数 zに対して,関数
exp(z) - 1を単(倍,4倍)精度で計算する.
使用法
- (1)
- EXPM1(x),DEXPM1(d),QEXPM1(q)
x(d,q)は単(倍,4倍)精度型の任意の式である.dexpm1(qexpm1)は
倍(4倍)精度型の宣言を要する.
CEXPM1(z),CDEXPM1(w),CQEXPM1(y)
z(w,y)は単(倍,4倍)精度複素数型の任意の式である.
CEXPM1(CDEXPM1,CQEXPM1)は単(倍,4倍)精度複素数型の宣言を要する.
- (2)
- 引数の範囲: EXPM1等については x < 88.7219, d < 709.7819, q < 11356.495
CEXPM1等については R(z) < 88.7219, R(w) < 709.7819, R(y) < 11356.495
|I(z)| < 8.229E+05, |I(w)| < 3.529D+15, |I(y)| < 1.44879Q+19
ただし R(),I()はそれぞれ実数部,虚数部を表す.
- (3)
- エラー処理: 範囲外の引数が与えられた場合は,エラーとし,メッセージを印刷し,関数値を0として計算を続行する.(
FNERST 参照)
計算法
- (1)
- EXPM1(x),DEXPM1(d),QEXPM1(q)
- 1.
- -0.6931471 ≦ x ≦ 1.098612,-0.6931471806 ≦ d ≦ 1.098612289,|q| ≦
1.0のとき近似有理関数によって計算する.
- 2.
- -18.421 ≦ x ≦ 88.722,-41.447 ≦ d ≦ 709.7827,-77.0 ≦ q ≦ 11356.49のとき定義式通りに計算する.
- 3.
- x < -18.42,d < -41.447,q < -77.0のとき 1とする.
- (2)
- CEXPM1(z),CDEXPM1(w),CQEXPM1(y)
- 1.
- |z| ≦ 1, |w| ≦ 1, |y| ≦ 1のとき
CEXPM1(z) = (EXPM1(x)(1 - 2sin(y/2)2) - 2sin(y/2)2, exp(x)sin(y)) ,
x = R(z), y = I(z)等と計算する.
- 2.
- 引数が許容範囲内にある場合は定義式通りに計算する.
摘要
本節の関数を標準関数によって定義式通りに計算すると原点の近傍で精度が損なわれる.
なお本節の関数は以前exp1,dexp1,qexp1,cexp1,cdexp1,cqexp1と呼ばれていた.
Yohsuke HOSODA 平成15年9月24日