bsplvd Subroutine

subroutine bsplvd(t, k, x, left, a, dbiatx, nderiv)

************80

! BSPLVD calculates the nonvanishing B-splines and derivatives at X.

Discussion:

Values at X of all the relevant B-splines of order K:K+1-NDERIV 
are generated via BSPLVB and stored temporarily in DBIATX.

Then the B-spline coefficients of the required derivatives 
of the B-splines of interest are generated by differencing, 
each from the preceding one of lower order, and combined with 
the values of B-splines of corresponding order in DBIATX 
to produce the desired values.

Modified:

14 February 2007

Author:

Carl DeBoor

Reference:

Carl DeBoor,
A Practical Guide to Splines,
Springer, 2001,
ISBN: 0387953663,
LC: QA1.A647.v27.

Parameters:

Input, real ( kind = 8 ) T(LEFT+K), the knot sequence.  It is assumed that 
T(LEFT) < T(LEFT+1).  Also, the output is correct only if 
T(LEFT) <= X <= T(LEFT+1).

Input, integer ( kind = 4 ) K, the order of the B-splines to be evaluated.

Input, real ( kind = 8 ) X, the point at which these values are sought.

Input, integer ( kind = 4 ) LEFT, indicates the left endpoint of the 
interval of interest.  The K B-splines whose support contains the interval 
( T(LEFT), T(LEFT+1) ) are to be considered.

Workspace, real ( kind = 8 ) A(K,K).

Output, real ( kind = 8 ) DBIATX(K,NDERIV).  DBIATX(I,M) contains 
the value of the (M-1)st derivative of the (LEFT-K+I)-th B-spline 
of order K for knot sequence T, I=M,...,K, M=1,...,NDERIV.

Input, integer ( kind = 4 ) NDERIV, indicates that values of B-splines and 
their derivatives up to but not including the NDERIV-th are asked for.

Arguments

Type IntentOptional Attributes Name
real(kind=8) :: t(left+k)
integer(kind=4) :: k
real(kind=8) :: x
integer(kind=4) :: left
real(kind=8) :: a(k,k)
real(kind=8) :: dbiatx(k,nderiv)
integer(kind=4) :: nderiv

Calls

proc~~bsplvd~2~~CallsGraph proc~bsplvd~2 bsplvd bsplvb bsplvb proc~bsplvd~2->bsplvb