積分で表示されるほとんどの特殊関数が,
数値積分で計算できるという事実(そういう数値積分公式,例えば
DE公式
などが存在することはあまり知られてないのだが...)を考えると,
ベッセル関数のような汎用特殊関数には,
速度が要求されます.
そこで、高速のベッセル関数ライブラリを作りました.
最初の設計目標として,組み込みの三角関数や指数関数などと
同程度の速度になるように計画しました.しかし,
サイズとデバッグの手間を考慮したので,実際には組み込みの
三角関数などよりも平均で 1.5 倍程度遅くなってしまいました.
Chebyshev 近似の次数を下げて,係数のハッシュテーブルを
大きくすれば,もう少し速くなるかもしれません.
このパッケージ内のファイル bessel01.f : J_0(x),J_1(x),Y_0(x),Y_1(x), I_0(x),I_1(x),K_0(x),K_1(x) functions in Fortran (多倍長精度用) dbesj0.c : J_0(x) function in C (倍精度) dbesj0.f : J_0(x) function in Fortran (倍精度) dbesj1.c : J_1(x) function in C (倍精度) dbesj1.f : J_1(x) function in Fortran (倍精度) dbesy0.c : Y_0(x) function in C (倍精度) dbesy0.f : Y_0(x) function in Fortran (倍精度) dbesy1.c : Y_1(x) function in C (倍精度) dbesy1.f : Y_1(x) function in Fortran (倍精度) dbesi0.c : I_0(x) function in C (倍精度) dbesi0.f : I_0(x) function in Fortran (倍精度) dbesi1.c : I_1(x) function in C (倍精度) dbesi1.f : I_1(x) function in Fortran (倍精度) dbesk0.c : K_0(x) function in C (倍精度) dbesk0.f : K_0(x) function in Fortran (倍精度) dbesk1.c : K_1(x) function in C (倍精度) dbesk1.f : K_1(x) function in Fortran (倍精度) readme.txt : readme file