e01 Chapter Contents
e01 Chapter Introduction
NAG C Library Manual

NAG Library Function Documentnag_2d_triang_eval (e01skc)

1  Purpose

nag_2d_triang_eval (e01skc) evaluates at a given point the two-dimensional interpolant function computed by nag_2d_triang_interp (e01sjc).

2  Specification

 #include #include
 void nag_2d_triang_eval (Integer m, const double x[], const double y[], const double f[], const Integer triang[], const double grads[], double px, double py, double *pf, NagError *fail)

3  Description

nag_2d_triang_eval (e01skc) takes as input the arguments defining the interpolant $F\left(x,y\right)$ of a set of scattered data points $\left({x}_{r},{y}_{r},{f}_{r}\right)$, for $\mathit{r}=1,2,\dots ,m$, as computed by nag_2d_shep_interp (e01sgc), and evaluates the interpolant at the point $\left(px,py\right)$.
If $\left(px,py\right)$ is equal to $\left({x}_{r},{y}_{r}\right)$ for some value of $r$, the returned value will be equal to ${f}_{r}$.
If $\left(px,py\right)$ is not equal to $\left({x}_{r},{y}_{r}\right)$ for any $r$, the derivatives in grads will be used to compute the interpolant. A triangle is sought which contains the point $\left(px,py\right)$, and the vertices of the triangle along with the partial derivatives and ${f}_{r}$ values at the vertices are used to compute the value $F\left(px,py\right)$. If the point $\left(px,py\right)$ lies outside the triangulation defined by the input arguments, the returned value is obtained by extrapolation. In this case, the interpolating function ${\mathbf{f}}$ is extended linearly beyond the triangulation boundary. The method is described in more detail in Renka and Cline (1984) and the code is derived from Renka (1984).
nag_2d_triang_eval (e01skc) must only be called after a call to nag_2d_shep_interp (e01sgc).

4  References

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 ${C}^{1}$ interpolation method Rocky Mountain J. Math. 14 223–237

5  Arguments

1:     mIntegerInput
2:     x[m]const doubleInput
3:     y[m]const doubleInput
4:     f[m]const doubleInput
5:     triang[$7×{\mathbf{m}}$]const IntegerInput
6:     grads[$2×{\mathbf{m}}$]const doubleInput
On entry: m, x, y, f, triang and grads must be unchanged from the previous call of nag_2d_triang_interp (e01sjc).
7:     pxdoubleInput
8:     pydoubleInput
On entry: the point $\left(px,py\right)$ at which the interpolant is to be evaluated.
9:     pfdouble *Output
On exit: the value of the interpolant evaluated at the point $\left(px,py\right)$.
10:   failNagError *Input/Output
The NAG error argument (see Section 3.6 in the Essential Introduction).

6  Error Indicators and Warnings

On entry, argument $〈\mathit{\text{value}}〉$ had an illegal value.
NE_INT
On entry, ${\mathbf{m}}=〈\mathit{\text{value}}〉$.
Constraint: ${\mathbf{m}}\ge 3$.
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.
NE_TRIANG_INVALID
On entry, triang does not contain a valid data point triangulation; triang may have been corrupted since the call to nag_2d_triang_interp (e01sjc).
NW_VALUE_EXTRAPOLATED
Warning – the evaluation point $\left(〈\mathit{\text{value}}〉,〈\mathit{\text{value}}〉\right)$ lies outside the triangulation boundary. The returned value was computed by extrapolation.

7  Accuracy

Computational errors should be negligible in most practical situations.

The time taken for a call of nag_2d_triang_eval (e01skc) is approximately proportional to the number of data points, $m$.