BSCPP

Converts a spline in B-spline representation to piecewise polynomial representation.

Required Arguments

KORDER — Order of the spline. (Input)

XKNOT — Array of length KORDER + NCOEF containing the knot sequence. (Input)
XKNOT must be nondecreasing.

NCOEF — Number of B-spline coefficients. (Input)

BSCOEF — Array of length NCOEF containing the B-spline coefficients. (Input)

NPPCF — Number of piecewise polynomial pieces. (Output)
NPPCF is always less than or equal to NCOEF KORDER + 1.

BREAK — Array of length (NPPCF + 1) containing the breakpoints of the piecewise polynomial representation. (Output)
BREAK must be dimensioned at least NCOEF KORDER + 2.

PPCOEF — Array of length KORDER * NPPCF containing the local coefficients of the polynomial pieces. (Output)
PPCOEF is treated internally as a matrix of size KORDER by NPPCF.

FORTRAN 90 Interface

Generic: CALL BSCPP (KORDER, XKNOT, NCOEF, BSCOEF, NPPCF, BREAK, PPCOEF)

Specific: The specific interface names are S_BSCPP and D_BSCPP.

FORTRAN 77 Interface

Single: CALL BSCPP (KORDER, XKNOT, NCOEF, BSCOEF, NPPCF, BREAK, PPCOEF)

Double: The double precision name is DBSCPP.

Description

The routine BSCPP is based on the routine BSPLPP by de Boor (1978, page 140). This routine is used to convert a spline in B-spline representation to a piecewise polynomial (pp) representation which can then be evaluated more efficiently. There is some overhead in converting from the
B-spline representation to the pp representation, but the conversion to pp form is recommended when 3 or more function values are needed per polynomial piece.

Comments

1. Workspace may be explicitly provided, if desired, by use of B2CPP/DB2CPP. The reference is:

CALL B2CPP (KORDER, XKNOT, NCOEF, BSCOEFF, NPPCF, BREAK, PPCOEF, WK)

The additional argument is

WK — Work array of length (KORDER + 3) * KORDER.

2. Informational errors

 

Type

Code

Description

4

4

Multiplicity of the knots cannot exceed the order of the spline.

4

5

The knots must be nondecreasing.

Example

For an example of the use of BSCPP, see PPDER.