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

◆ _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]nB-スプライン係数の数. (n = ノット多重度の合計 - k)
[in]kB-スプラインの次数. (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