|
|
◆ _bvalue()
| double _bvalue |
( |
double |
t[], |
|
|
double |
a[], |
|
|
int |
n, |
|
|
int |
k, |
|
|
int |
ideriv, |
|
|
double |
x, |
|
|
int * |
inbv, |
|
|
double |
work[], |
|
|
int * |
info |
|
) |
| |
B-スプライン関数値または微分値
- 目的
- 本ルーチンはB-形式(t[], a[], n, k)のB-スプラインのxにおける関数値(ideriv = 0の場合)あるいは微分値(ideriv = 1, 2, ..., k-1の場合)を求める. 右端点 x = t[n] 以外では右極限値(右微分値)が返される. 右端点では左極限値が求められる. スプラインはt[k-1] <= x <= t[n] において定義される. この範囲外であればbvalueはエラーを返す.
ノットt[i]において左極限値(左微分値)を求めるためには, nをi-1で置き替えて x = t[i] (i = k〜n) とせよ.
- 戻り値
- xにおけるideriv次微分値.
- 引数
-
| [in] | t[] | 配列 t[lt] (lt >= n + k)
ノットベクトル. |
| [in] | a[] | 配列 a[la] (la >= n)
B-スプライン係数. |
| [in] | n | B-スプライン係数の数. (n = ノット多重度の合計 - k) |
| [in] | k | B-スプラインの次数. (k >= 1) |
| [in] | ideriv | 微分係数の次数. (0 <= ideriv <= k - 1)
ideriv = 0の場合, B-スプラインの値を返す. |
| [in] | x | 引数 x. (t[k-1] <= x <= t[n]) |
| [in,out] | inbv | 初期化パラメータ.
[in] bvalueの最初の呼び出し時, 1に設定しておかなければならない.
[out] 最初の呼び出し後の処理のための情報. ユーザーが変更してはならない. 異なるスプラインは異なったinbvパラメータを持つ. |
| [out] | work[] | 配列 work[lwork] (lwork >= 3*k)
作業領域. |
| [out] | info | = 0: 正常終了
= -3: 入力パラメータ n の誤り (n < k)
= -4: 入力パラメータ k の誤り (k < 1)
= -5: 入力パラメータ ideriv の誤り (ideriv < 0 または ideriv >= k)
= -6: 入力パラメータ x の誤り (x < t[k-1] または x > t[n])
= 1: t[k-1]において左極限値は求められない |
- 出典
- SLATEC
|