|
|
◆ Cbesh()
| Sub Cbesh |
( |
Z As |
Complex, |
|
|
Nu As |
Double, |
|
|
M As |
Long, |
|
|
N As |
Long, |
|
|
Y() As |
Complex, |
|
|
Info As |
Long, |
|
|
Optional Kode As |
Long = 1 |
|
) |
| |
ハンケル関数 Hν(m)(z) (複数次数) (実数次) (複素引数)
- 目的
- 本ルーチンはハンケル関数 Hν(m)(z)を上付き文字 m = 1または2, 非負の実数次数ν, ν+1, ..., および非ゼロ複素数 z について求める.
オーバーフローを避けるためにスケーリング・オプションを使用することができる.
- 引数
-
| [in] | Z | 引数 z. (Z <> 0) |
| [in] | Nu | 計算する最初の次数. (Nu >= 0) |
| [in] | M | ハンケル関数の上付き文字. (m = 1 または 2) |
| [in] | N | 計算する次数の数. (Nu 〜 Nu+N-1 次の N 個の値を計算する) (N >= 1) |
| [out] | Y() | 配列 Y(LY - 1) (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: パラメータ M の誤り. (M <> 1 かつ M <> 2)
= -4: パラメータ N の誤り. (N < 1)
= -5: パラメータ Y() の誤り.
= -7: パラメータ Kode の誤り. (Kode <> 1 かつ Kode <> 2)
= nz (0 < nz <= N): アンダーフローのため、Y()の最後のnz個の要素が0に設定された.
= N+1: 計算精度警告. (|Z|あるいは Nu+N-1が大きいため半分以下の精度しか得られない)
= N+2: 計算精度エラー. (|Z|あるいは Nu+N-1が大きすぎるため精度が得られない)
= N+3: オーバーフロー. (|Z|が小さすぎる, および/または, Nu+N-1が大きすぎる) |
| [in] | Kode | (省略可)
スケーリングの指定. (省略時 = 1)
= 1: スケーリングなし.
= 2: 指数スケーリングあり. |
- 出典
- SLATEC
|