PDA_DBVALU

Evaluate a B-spline for the function value or a derivative.

Origin

SLATEC / CAMSUN

Implementation Status:

The routine and its subsidiaries will now return an error status as supplied by PDA_XERMSG.
        DOUBLE PRECISION FUNCTION PDA_DBVALU (T, A, N, K, IDERIV, X, INBV,
       +   WORK, STATUS)
  
  
  ***BEGIN PROLOGUE  PDA_DBVALU
  ***PURPOSE  Evaluate the B-representation of a B-spline at X for the
              function value or any of its derivatives.
  ***LIBRARY   SLATEC
  ***CATEGORY  E3, K6
  ***TYPE      DOUBLE PRECISION (BVALU-S, PDA_DBVALU-D)
  ***KEYWORDS  DIFFERENTIATION OF B-SPLINE, EVALUATION OF B-SPLINE
  ***AUTHOR  Amos, D. E., (SNLA)
  ***DESCRIPTION
  
       Written by Carl de Boor and modified by D. E. Amos
  
       Abstract   **** a double precision routine ****
           PDA_DBVALU is the BVALUE function of the reference.
  
           PDA_DBVALU evaluates the B-representation (T,A,N,K) of a B-spline
           at X for the function value on IDERIV=0 or any of its
           derivatives on IDERIV=1,2,...,K-1.  Right limiting values
           (right derivatives) are returned except at the right end
           point X=T(N+1) where left limiting values are computed.  The
           spline is defined on T(K) .LE. X .LE. T(N+1).  PDA_DBVALU returns
           a fatal error message when X is outside of this interval.
  
           To compute left derivatives or left limiting values at a
           knot T(I), replace N by I-1 and set X=T(I), I=K+1,N+1.
  
           PDA_DBVALU calls PDA_DINTRV
  
       Description of Arguments
  
           Input      T,A,X are double precision
            T       - knot vector of length N+K
            A       - B-spline coefficient vector of length N
            N       - number of B-spline coefficients
                      N = sum of knot multiplicities-K
            K       - order of the B-spline, K .GE. 1
            IDERIV  - order of the derivative, 0 .LE. IDERIV .LE. K-1
                      IDERIV = 0 returns the B-spline value
            X       - argument, T(K) .LE. X .LE. T(N+1)
            INBV    - an initialization parameter which must be set
                      to 1 the first time PDA_DBVALU is called.
  
           Output     WORK,PDA_DBVALU are double precision
            INBV    - INBV contains information for efficient process-
                      ing after the initial call and INBV must not
                      be changed by the user.  Distinct splines require
                      distinct INBV parameters.
            WORK    - work vector of length 3*K.
        PDA_DBVALU  - value of the IDERIV-th derivative at X
            STATUS  - Returned error status.
                      The status must be zero on entry. This
                      routine does not check the status on entry.
  
       Error Conditions
           An improper input is a fatal error
  
  ***REFERENCES  Carl de Boor, Package for calculating with B-splines,
                   SIAM Journal on Numerical Analysis 14, 3 (June 1977),
                   pp. 441-472.
  ***ROUTINES CALLED  PDA_DINTRV, PDA_XERMSG
  ***REVISION HISTORY  (YYMMDD)
     800901  DATE WRITTEN
     890831  Modified array declarations.  (WRB)
     890911  Removed unnecessary intrinsics.  (WRB)
     890911  REVISION DATE from Version 3.2
     891214  Prologue converted to Version 4.0 format.  (BAB)
     900315  CALLs to XERROR changed to CALLs to PDA_XERMSG.  (THJ)
     920501  Reformatted the REFERENCES section.  (WRB)
     950403  Implement status.  (HME)
  ***END PROLOGUE  PDA_DBVALU