bspdr.f
SUBROUTINE BSPDR (T, A, N, K, NDERIV, AD)
C***BEGIN PROLOGUE BSPDR
C***PURPOSE Use the B-representation to construct a divided difference
C table preparatory to a (right) derivative calculation.
C***LIBRARY SLATEC
C***CATEGORY E3
C***TYPE SINGLE PRECISION (BSPDR-S, DBSPDR-D)
C***KEYWORDS B-SPLINE, DATA FITTING, DIFFERENTIATION OF SPLINES,
C INTERPOLATION
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 BSPDR is the BSPLDR routine of the reference.
C
C BSPDR uses the B-representation (T,A,N,K) to construct a
C divided difference table ADIF preparatory to a (right)
C derivative calculation in BSPEV. The lower triangular matrix
C ADIF is stored in vector AD by columns. The arrays are
C related by
C
C ADIF(I,J) = AD(I-J+1 + (2*N-J+2)*(J-1)/2)
C
C I = J,N , J = 1,NDERIV .
C
C Description of Arguments
C Input
C T - knot vector of length N+K
C A - B-spline coefficient vector of length N
C N - number of B-spline coefficients
C N = sum of knot multiplicities-K
C K - order of the 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
C Output
C AD - table of differences in a vector of length
C (2*N-NDERIV+1)*NDERIV/2 for input to BSPEV
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 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 BSPDR