The function may be called by the names: e02dfc, nag_fit_dim2_spline_evalm or nag_2d_spline_eval_rect.
3Description
e02dfc calculates values of the bicubic spline on a rectangular grid of points in the - plane, from its augmented knot sets and and from the coefficients , for and , in its B-spline representation
Here and denote normalized cubic B-splines, the former defined on the knots to and the latter on the knots to .
The points in the grid are defined by coordinates , for , along the axis, and coordinates , for along the axis.
This function may be used to calculate values of a bicubic spline given in the form produced by e01dac, e02dcc and e02ddc. It is derived from the routine B2VRE in Anthony et al. (1982).
4References
Anthony G T, Cox M G and Hayes J G (1982) DASL – Data Approximation Subroutine Library National Physical Laboratory
Cox M G (1978) The numerical evaluation of a spline from its B-spline representation J. Inst. Math. Appl.21 135–143
5Arguments
1: – IntegerInput
2: – IntegerInput
On entry: mx and my must specify and respectively, the number of points along the and axes that define the rectangular grid.
Constraint:
and .
3: – const doubleInput
4: – const doubleInput
On entry: x and y must contain , for , and , for , respectively. These are the and coordinates that define the rectangular grid of points at which values of the spline are required.
Constraint:
x and y must satisfy
, for , and, for . The spline representation is not valid outside these intervals.
5: – doubleOutput
On exit: contains the value of the spline at the point , for and .
6: – Nag_2dSpline *
Pointer to structure of type Nag_2dSpline with the following members:
nx – IntegerInput
On entry: must specify the total number of knots associated with the variable . It is such that is the number of interior knots.
Constraint:
.
lamda – double *Input
On entry: a pointer to which memory of size must be allocated. must contain the complete sets of knots associated with the variable.
Constraint:
the knots must be in nondecreasing order, with .
ny – IntegerInput
On entry: must specify the total number of knots associated with the variable .
It is such that is the number of interior knots.
Constraint:
.
mu – double *Input
On entry: a pointer to which memory of size must be allocated. must contain the complete sets of knots associated with the variable.
Constraint:
the knots must be in nondecreasing order, with .
c – double *Input
On entry: a pointer to which memory of size must be allocated. must contain the coefficient described in Section 3, for and .
In normal usage, the call to e02dfc follows a call to e01dac, e02dcc or e02ddc, in which case, members of the structure spline will have been set up correctly for input to e02dfc.
7: – NagError *Input/Output
The NAG error argument (see Section 7 in the Introduction to the NAG Library CL Interface).
6Error Indicators and Warnings
NE_ALLOC_FAIL
Dynamic memory allocation failed.
NE_END_KNOTS_CONS
On entry, the end knots must satisfy : , .
NE_INT_ARG_LT
On entry, .
Constraint: .
On entry, .
Constraint: .
On entry, must not be less than 8: .
On entry, must not be less than 8: .
NE_KNOTS_COORD_CONS
On entry, the end knots and coordinates must satisfy and . , , , .
On entry, the end knots and coordinates must satisfy and . , , , .
NE_NOT_INCREASING
The sequence is not increasing: , .
The sequence is not increasing: , .
NE_NOT_STRICTLY_INCREASING
The sequence x is not strictly increasing: , .
The sequence y is not strictly increasing: , .
7Accuracy
The method used to evaluate the B-splines is numerically stable, in the sense that each computed value of can be regarded as the value that would have been obtained in exact arithmetic from slightly perturbed B-spline coefficients. See Cox (1978) for details.
8Parallelism and Performance
e02dfc is not threaded in any implementation.
9Further Comments
Computation time is approximately proportional to .
10Example
This program reads in knot sets , , and a set of bicubic spline coefficients . Following these are values for and the coordinates , for , and values for and the coordinates , for , defining the grid of points on which the spline is to be evaluated.