*DECK BSPEV SUBROUTINE BSPEV (T, AD, N, K, NDERIV, X, INEV, SVALUE, WORK) C***BEGIN PROLOGUE BSPEV 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 SINGLE 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 C BSPEV is the BSPLEV routine of the reference. C C BSPEV calculates the value of the spline and its derivatives C at X from the B-representation (T,A,N,K) and returns them C in SVALUE(I),I=1,NDERIV, T(K) .LE. X .LE. T(N+1). AD(I) can C be the B-spline coefficients A(I), I=1,N if NDERIV=1. Other- C wise AD must be computed before hand by a call to BSPDR (T,A, C N,K,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 BSPEV calls INTRV, BSPVN C C Description of Arguments C Input 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 BSPDR. 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 = function C 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 BSPEV is called. C C Output 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 BSPVN, INTRV, 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 900326 Removed duplicate information from DESCRIPTION section. C (WRB) C 920501 Reformatted the REFERENCES section. (WRB) C***END PROLOGUE BSPEV