ALOG1P/DLOG1P/QLOG1P/CLOG1P/CDLOG1P/CQLOG1P
関数 log(1 + x)
作成 |
二宮 市三 1977年4月 改訂 2003年8月 |
形式 |
関数 言語:FORTRAN 26,34,41,20,21,21各行 |
概要
ALOG1P(DLOG1P,QLOG1P)は単(倍,4倍)精度実数 xに対して,
関数 log(1 + x)を単(倍,4倍)精度で計算する.
CLOG1P(CDLOG1P,CQLOG1P)は単(倍,4倍)精度複素数 zに対して,
関数 log(1 + z)を単(倍,4倍)精度で計算する.
使用法
- (1)
- ALOG1P(x),DLOG1P(d),QLOG1P(q)
x(d,q)は単(倍,4倍)精度型の任意の式である.DLOG1P(QLOG1P)は
倍(4倍)精度型の宣言を要する.
CLOG1P(z),CDLOG1P(w),CQLOG1P(y)
z(w,y)は単(倍,4倍)精度複素数型の任意の式である.
CLOG1P(CDLOG1P,CQLOG1P)は単(倍,4倍)精度複素数型の宣言を要する.
- (2)
- 引数の範囲: ALOG1P等については x > -1, d > -1, q > -1
CLOG1P等については z ≠ -1, w ≠ -1, y ≠ -1
- (3)
- エラー処理: 範囲外の引数があたえられた場合は,エラーとし,メッセージを印刷し,関数値を0として計算を続行する.(
FNERST 参照)
計算法
- (1)
- ALOG1P(x),DLOG1P(d),QLOG1P(q)
- 1.
- -0.5 ≦ x(d,q) ≦ 1 のとき t = x / (x + 2)とし,
log(1 + x) = log((1 + t)/(1-t))をtに関する最良近似式によって
計算する.
- 2.
- -1 < x(d,q) < -0.5, 1 < x(d,q)のとき,定義式通りに計算する.
- 3.
- x(d,q) ≦ -1のとき,エラーとする.
- (2)
- CLOG1P(z),CDLOG1P(w),CQLOG1P(y)
- 1.
- |z| ≦ 1, |w| ≦ 1, |y| ≦ 1のとき
CLOG1P(z) = (ALOG1P(x(x + 2)+y2)/2, atan2(y, 1 + x)), x = R(z), y = I(z)
等と計算する.
- 2.
- |z| > 1, |w| > 1, |y| > 1のとき,定義式通りに計算する.
摘要
本節の関数を標準関数によって定義式通りに計算すると,原点の近傍で精度が損
なわれる. なお本節の関数は以前log1,dlog1,qlog1,clog1,cdlog1,cqlog1と呼ばれていた.
Yohsuke HOSODA 平成15年9月24日