XLPack 6.1
C/C++ API リファレンスマニュアル
読み取り中…
検索中…
一致する文字列を見つけられません

◆ _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