|
|
◆ _cbesh()
| void _cbesh |
( |
double _Complex |
z, |
|
|
double |
nu, |
|
|
int |
kode, |
|
|
int |
m, |
|
|
int |
n, |
|
|
double _Complex |
y[], |
|
|
int * |
info |
|
) |
| |
ハンケル関数 Hν(m)(z) (複数次数) (実数次) (複素引数)
- 目的
- cbeshはハンケル関数 Hν(m)(z)を上付き文字 m = 1または2, 非負の実数次数ν, ν+1, ..., および非ゼロ複素数 z について求める.
オーバーフローを避けるためにスケーリング・オプションを使用することができる.
- 引数
-
| [in] | z | 引数 z. (z != 0) |
| [in] | nu | 最初の次数 ν. (nu >= 0) |
| [in] | kode | スケーリングの指定.
= 1: スケーリングなし.
= 2: 指数スケーリングあり. |
| [in] | m | ハンケル関数の上付き文字. (m = 1 または 2) |
| [in] | n | 計算する次数の数 n. (nu 〜 nu+n-1 次の n 個の値を計算する) (n >= 1) |
| [out] | y[] | 配列 y[ly] (ly >= n)
ハンケル関数値.
kode = 1: Hν(m)(z) (ν = nu 〜 nu+n-1)
kode = 2: exp(-(3-2m)*z*i)*Hν(m)(z) (ν = nu 〜 nu+n-1) |
| [out] | info | = 0: 正常終了.
= -1: 入力パラメータ z の誤り. (z = 0)
= -2: 入力パラメータ nu の誤り. (nu < 0)
= -3: 入力パラメータ kode の誤り. (kode != 1 かつ kode != 2)
= -4: 入力パラメータ m の誤り. (m != 1 かつ m != 2)
= -5: 入力パラメータ n の誤り. (n < 1)
= nz (0 < nz <= n): アンダーフローのためy[]の最後のnz個の要素が0に設定された.
= n+1: 精度警告. (abs(z)またはnu+n-1が大きいため精度が半分以下になった)
= n+2: 精度エラー. (abs(z)またはnu+n-1が大きすぎるため正しく計算できない)
= n+3: abs(z)が小さすぎる, および/または, nu+n-1が大きすぎるためオーバーフローが起きた.
= n+4: アルゴリズムのエラー. (収束しなかった) |
- 出典
- SLATEC
|