NAG C Library Function Document
nag_2d_triang_bary_eval (e01ebc)
1
Purpose
nag_2d_triang_bary_eval (e01ebc) 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
nag_2d_triangulate (e01eac).
2
Specification
#include <nag.h> |
#include <nage01.h> |
void |
nag_2d_triang_bary_eval (Integer m,
Integer n,
const double x[],
const double y[],
const double f[],
const Integer triang[],
const double px[],
const double py[],
double pf[],
NagError *fail) |
|
3
Description
nag_2d_triang_bary_eval (e01ebc) takes as input a set of scattered data points
, for
, and a Thiessen triangulation of the
computed by
nag_2d_triangulate (e01eac), 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 .
nag_2d_triang_bary_eval (e01ebc) must only be called after a call to
nag_2d_triangulate (e01eac).
4
References
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. Software 10 440–442
Renka R L and Cline A K (1984) A triangle-based interpolation method Rocky Mountain J. Math. 14 223–237
5
Arguments
- 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
nag_2d_triangulate (e01eac).
Constraint:
.
- 3:
– const doubleInput
- 4:
– const doubleInput
-
On entry: the coordinates of the
th data point,
, for
.
x and
y must be unchanged from the previous call of
nag_2d_triangulate (e01eac).
- 5:
– const doubleInput
-
On entry: the function values
at , for .
- 6:
– const IntegerInput
-
On entry: the triangulation computed by the previous call of
nag_2d_triangulate (e01eac). See
Section 9 in
nag_2d_triangulate (e01eac) for details of how the triangulation used is encoded in
triang.
- 7:
– const doubleInput
- 8:
– const doubleInput
-
On entry: the coordinates , for , at which interpolated function values are sought.
- 9:
– doubleOutput
-
On exit: the interpolated values , for .
- 10:
– NagError *Input/Output
-
The NAG error argument (see
Section 3.7 in How to Use the NAG Library and its Documentation).
6
Error Indicators and Warnings
- NE_ALLOC_FAIL
-
Dynamic memory allocation failed.
See
Section 2.3.1.2 in How to Use the NAG Library and its Documentation for further information.
- NE_BAD_PARAM
-
On entry, argument had an illegal value.
- NE_INT
-
On entry, .
Constraint: .
On entry, .
Constraint: .
- NE_INTERNAL_ERROR
-
An internal error has occurred in this function. Check the function call and any array sizes. If the call is correct then please contact
NAG for assistance.
See
Section 2.7.6 in How to Use the NAG Library and its Documentation for further information.
- NE_NO_LICENCE
-
Your licence key may have expired or may not have been installed correctly.
See
Section 2.7.5 in How to Use the NAG Library and its Documentation for further information.
- NE_TRIANG_INVALID
-
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
nag_2d_triangulate (e01eac).
-
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.
7
Accuracy
Not applicable.
8
Parallelism and Performance
nag_2d_triang_bary_eval (e01ebc) is not threaded in any implementation.
The time taken for a call of nag_2d_triang_bary_eval (e01ebc) is approximately proportional to the number of interpolation points, .
10
Example
See
Section 10 in
nag_2d_triangulate (e01eac).