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

◆ _cbesj()

void _cbesj ( double _Complex  z,
double  nu,
int  kode,
int  n,
double _Complex  y[],
int *  info 
)

第1種ベッセル関数 Jν(z) (複数次数) (実数次) (複素引数)

目的
cbesjは第1種ベッセル関数Jν(z)を, 複素数 z および非負の実数次数ν, ν+1, ... について求める.
オーバーフローを避けるためにスケーリング・オプションを使用することができる.
引数
[in]z引数 z.
[in]nu最初の次数 ν. (nu >= 0)
[in]kodeスケーリングの指定.
= 1: スケーリングなし.
= 2: 指数スケーリングあり.
[in]n計算する次数の数 n. (nu 〜 nu+n-1 次の n 個の値を計算する) (n >= 1)
[out]y[]配列 y[ly] (ly >= n)
第1種ベッセル関数値.
kode = 1: Jν(z) (ν = nu 〜 nu+n-1)
kode = 2: exp(abs(im(z)))*Jν(z) (ν = nu 〜 nu+n-1)
[out]info= 0: 正常終了.
= -2: 入力パラメータ nu の誤り. (nu < 0)
= -3: 入力パラメータ kode の誤り. (kode != 1 かつ kode != 2)
= -4: 入力パラメータ 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: kode = 1の場合にim(z)が大きすぎるためオーバーフローが起きた.
= n+4: アルゴリズムのエラー. (収束しなかった)
出典
SLATEC