Converts a spline in B-spline representation to piecewise polynomial representation.
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.
Generic: CALL BSCPP (KORDER, XKNOT, NCOEF, BSCOEF, NPPCF, BREAK, PPCOEF)
Specific: The specific interface names are S_BSCPP and D_BSCPP.
Single: CALL BSCPP (KORDER, XKNOT, NCOEF, BSCOEF, NPPCF, BREAK, PPCOEF)
Double: The double precision name is DBSCPP.
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.
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
4 4 Multiplicity of the knots cannot exceed the order of the spline.
4 5 The knots must be nondecreasing.
For an example of the use of BSCPP, see PPDER.
Visual Numerics, Inc. PHONE: 713.784.3131 FAX:713.781.9260 |