XLPack 7.0
XLPack Numerical Library (Excel VBA) Reference Manual
Loading...
Searching...
No Matches

◆ Bspldr()

Sub Bspldr ( T() As  Double,
A() As  Double,
N As  Long,
K As  Long,
Nderiv As  Long,
Ad() As  Double,
Info As  Long 
)

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 - 1) (LT >= N + K)
Knot vector.
[in]A()Array A(LA - 1) (LA >= N)
B-spline coefficient array.
[in]NNumber of B-spline coefficients. (N = sum of knot multiplicities - K)
[in]KOrder of the 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 - 1) (LAd >= (2*N - Nderiv + 1)*Nderiv/2)
Divided difference table for input to Bsplev.
[out]Info= 0: Successful exit.
= -1: The argument T() is invalid.
= -2: The argument A() is invalid.
= -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)
= -6: The argument Ad() is invalid.
Reference
SLATEC
Example Program
See example of Bsplev.