e01ebf performs barycentric interpolation, at a given set of points, using a set of function values on a scattered grid and a triangulation of that grid computed by e01eaf.
The routine may be called by the names e01ebf or nagf_interp_dim2_triang_bary_eval.
3Description
e01ebf takes as input a set of scattered data points , for , and a Thiessen triangulation of the computed by e01eaf, and interpolates at a set of points , for .
If the th interpolation point is equal to for some value of , the returned value will be equal to ; otherwise a barycentric transformation will be used to calculate the interpolant.
For each point , a triangle is sought which contains the point; the vertices of the triangle and values at the vertices are then used to compute the value .
If any interpolation point lies outside the triangulation defined by the input arguments, the returned value is the value provided, , at the closest node .
e01ebf must only be called after a call to e01eaf.
4References
Cline A K and Renka R L (1984) A storage-efficient method for construction of a Thiessen triangulation Rocky Mountain J. Math.14 119–139
Lawson C L (1977) Software for surface interpolation Mathematical Software III (ed J R Rice) 161–194 Academic Press
Renka R L (1984) Algorithm 624: triangulation and interpolation of arbitrarily distributed points in the plane ACM Trans. Math. Software10 440–442
Renka R L and Cline A K (1984) A triangle-based interpolation method Rocky Mountain J. Math.14 223–237
5Arguments
1: – IntegerInput
On entry: , the number of points to interpolate.
Constraint:
.
2: – IntegerInput
On entry: , the number of data points. n must be unchanged from the previous call of e01eaf.
Constraint:
.
3: – Real (Kind=nag_wp) arrayInput
4: – Real (Kind=nag_wp) arrayInput
On entry: the coordinates of the th data point, , for . x and y must be unchanged from the previous call of e01eaf.
5: – Real (Kind=nag_wp) arrayInput
On entry: the function values
at , for .
6: – Integer arrayInput
On entry: the triangulation computed by the previous call of e01eaf. See Section 9 in e01eaf for details of how the triangulation used is encoded in triang.
7: – Real (Kind=nag_wp) arrayInput
8: – Real (Kind=nag_wp) arrayInput
On entry: the coordinates , for , at which interpolated function values are sought.
9: – Real (Kind=nag_wp) arrayOutput
On exit: the interpolated values , for .
10: – IntegerInput/Output
On entry: ifail must be set to , or to set behaviour on detection of an error; these values have no effect when no error is detected.
A value of causes the printing of an error message and program execution will be halted; otherwise program execution continues. A value of means that an error message is printed while a value of means that it is not.
If halting is not appropriate, the value or is recommended. If message printing is undesirable, then the value is recommended. Otherwise, the value is recommended. When the value or is used it is essential to test the value of ifail on exit.
On exit: unless the routine detects an error or a warning has been flagged (see Section 6).
6Error Indicators and Warnings
If on entry or , explanatory error messages are output on the current error message unit (as defined by x04aaf).
Errors or warnings detected by the routine:
On entry, .
Constraint: .
On entry, . Constraint: .
On entry, the triangulation information held in the array triang does not specify a valid triangulation of the data points. triang has been corrupted since the call to e01eaf.
At least one evaluation point lies outside the nodal triangulation. For each such point the value returned in pf is that corresponding to a node on the closest boundary line segment.
An unexpected error has been triggered by this routine. Please
contact NAG.
See Section 7 in the Introduction to the NAG Library FL Interface for further information.
Your licence key may have expired or may not have been installed correctly.
See Section 8 in the Introduction to the NAG Library FL Interface for further information.
Dynamic memory allocation failed.
See Section 9 in the Introduction to the NAG Library FL Interface for further information.
7Accuracy
Not applicable.
8Parallelism and Performance
Background information to multithreading can be found in the Multithreading documentation.
e01ebf is not threaded in any implementation.
9Further Comments
The time taken for a call of e01ebf is approximately proportional to the number of interpolation points, .