dbspev.f
SUBROUTINE DBSPEV (T, AD, N, K, NDERIV, X, INEV, SVALUE, WORK)
C***BEGIN PROLOGUE DBSPEV
C***PURPOSE Calculate the value of the spline and its derivatives from
C the B-representation.
C***LIBRARY SLATEC
C***CATEGORY E3, K6
C***TYPE DOUBLE PRECISION (BSPEV-S, DBSPEV-D)
C***KEYWORDS B-SPLINE, DATA FITTING, INTERPOLATION, SPLINES
C***AUTHOR Amos, D. E., (SNLA)
C***DESCRIPTION
C
C Written by Carl de Boor and modified by D. E. Amos
C
C Abstract **** a double precision routine ****
C DBSPEV is the BSPLEV routine of the reference.
C
C DBSPEV calculates the value of the spline and its derivatives
C at X from the B-representation (T,A,N,K) and returns them in
C SVALUE(I),I=1,NDERIV, T(K) .LE. X .LE. T(N+1). AD(I) can be
C the B-spline coefficients A(I), I=1,N) if NDERIV=1. Otherwise
C AD must be computed before hand by a call to DBSPDR (T,A,N,K,
C NDERIV,AD). If X=T(I),I=K,N), right limiting values are
C obtained.
C
C To compute left derivatives or left limiting values at a
C knot T(I), replace N by I-1 and set X=T(I), I=K+1,N+1.
C
C DBSPEV calls DINTRV, DBSPVN
C
C Description of Arguments
C
C Input T,AD,X, are double precision
C T - knot vector of length N+K
C AD - vector of length (2*N-NDERIV+1)*NDERIV/2 containing
C the difference table from DBSPDR.
C N - number of B-spline coefficients
C N = sum of knot multiplicities-K
C K - order of the B-spline, K .GE. 1
C NDERIV - number of derivatives, 1 .LE. NDERIV .LE. K.
C NDERIV=1 gives the zero-th derivative =
C function value
C X - argument, T(K) .LE. X .LE. T(N+1)
C INEV - an initialization parameter which must be set
C to 1 the first time DBSPEV is called.
C
C Output SVALUE,WORK are double precision
C INEV - INEV contains information for efficient process-
C ing after the initial call and INEV must not
C be changed by the user. Distinct splines require
C distinct INEV parameters.
C SVALUE - vector of length NDERIV containing the spline
C value in SVALUE(1) and the NDERIV-1 derivatives
C in the remaining components.
C WORK - work vector of length 3*K
C
C Error Conditions
C Improper input is a fatal error.
C
C***REFERENCES Carl de Boor, Package for calculating with B-splines,
C SIAM Journal on Numerical Analysis 14, 3 (June 1977),
C pp. 441-472.
C***ROUTINES CALLED DBSPVN, DINTRV, XERMSG
C***REVISION HISTORY (YYMMDD)
C 800901 DATE WRITTEN
C 890831 Modified array declarations. (WRB)
C 890831 REVISION DATE from Version 3.2
C 891214 Prologue converted to Version 4.0 format. (BAB)
C 900315 CALLs to XERROR changed to CALLs to XERMSG. (THJ)
C 920501 Reformatted the REFERENCES section. (WRB)
C***END PROLOGUE DBSPEV