XLPack 7.0
XLPack Numerical Library (C API) Reference Manual
Loading...
Searching...
No Matches

◆ bspldr()

void bspldr ( double  t[],
double  a[],
int  n,
int  k,
int  nderiv,
double  ad[],
int *  info 
)

Construct a divided difference table from B-representation for derivative calculation by bsplev

Purpose
This routine uses the B-representation (t[], a[], n, k) to construct a divided difference table adif preparatory to a (right) derivative calculation in bsplev.
The lower triangular matrix adif is stored in vector ad[] by columns. The arrays are related by
  adif(i, j) = ad[i-j+1 + (2*n-j+2)*(j-1)/2 - 1], i = j to n, j = 1 to nderiv
Parameters
[in]t[]Array t[lt] (lt >= n + k)
Knot vector.
[in]a[]Array a[la] (la >= n)
B-spline coefficients.
[in]nNumber of B-spline coefficients. (n = sum of knot multiplicities - k)
[in]kOrder of B-spline. (k >= 1)
[in]nderivNumber of the derivatives. (1 <= nderiv <= k)
nderiv = 1 returns the zero-th derivative = function value.
[out]ad[]Array ad[lad] (lad >= (2*n - nderiv + 1)*nderiv/2)
Divided difference table for input to bsplev.
[out]info= 0: Successful exit
= -3: The argument n had an illegal value (n < k)
= -4: The argument k had an illegal value (k < 1)
= -5: The argument nderiv had an illegal value (nderiv < 1 or nderiv > k)
Reference
SLATEC