# NAG CL Interfacee01ebc (dim2_​triang_​bary_​eval)

Settings help

CL Name Style:

## 1Purpose

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 e01eac.

## 2Specification

 #include
 void e01ebc (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)
The function may be called by the names: e01ebc, nag_interp_dim2_triang_bary_eval or nag_2d_triang_bary_eval.

## 3Description

e01ebc takes as input a set of scattered data points $\left({x}_{\mathit{r}},{y}_{\mathit{r}},{f}_{\mathit{r}}\right)$, for $\mathit{r}=1,2,\dots ,n$, and a Thiessen triangulation of the $\left({x}_{r},{y}_{r}\right)$ computed by e01eac, and interpolates at a set of points $\left({\mathit{px}}_{i},{\mathit{py}}_{i}\right)$, for $\mathit{i}=1,2,\dots ,m$.
If the $i$th interpolation point $\left({\mathit{px}}_{i},{\mathit{py}}_{i}\right)$ is equal to $\left({x}_{r},{y}_{r}\right)$ for some value of $r$, the returned value will be equal to ${f}_{r}$; otherwise a barycentric transformation will be used to calculate the interpolant.
For each point $\left({\mathit{px}}_{i},{\mathit{py}}_{i}\right)$, a triangle is sought which contains the point; the vertices of the triangle and ${f}_{r}$ values at the vertices are then used to compute the value $F\left({\mathit{px}}_{i},{\mathit{py}}_{i}\right)$.
If any interpolation point lies outside the triangulation defined by the input arguments, the returned value is the value provided, ${f}_{s}$, at the closest node $\left({x}_{s},{y}_{s}\right)$.
e01ebc must only be called after a call to e01eac.

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

## 5Arguments

1: $\mathbf{m}$Integer Input
On entry: $m$, the number of points to interpolate.
Constraint: ${\mathbf{m}}\ge 1$.
2: $\mathbf{n}$Integer Input
On entry: $n$, the number of data points. n must be unchanged from the previous call of e01eac.
Constraint: ${\mathbf{n}}\ge 3$.
3: $\mathbf{x}\left[{\mathbf{n}}\right]$const double Input
4: $\mathbf{y}\left[{\mathbf{n}}\right]$const double Input
On entry: the coordinates of the $\mathit{r}$th data point, $\left({x}_{r},{y}_{r}\right)$, for $\mathit{r}=1,2,\dots ,n$. x and y must be unchanged from the previous call of e01eac.
5: $\mathbf{f}\left[{\mathbf{n}}\right]$const double Input
On entry: the function values ${f}_{\mathit{r}}$ at $\left({x}_{\mathit{r}},{y}_{\mathit{r}}\right)$, for $\mathit{r}=1,2,\dots ,n$.
6: $\mathbf{triang}\left[7×{\mathbf{n}}\right]$const Integer Input
On entry: the triangulation computed by the previous call of e01eac. See Section 9 in e01eac for details of how the triangulation used is encoded in triang.
7: $\mathbf{px}\left[{\mathbf{m}}\right]$const double Input
8: $\mathbf{py}\left[{\mathbf{m}}\right]$const double Input
On entry: the coordinates $\left({\mathit{px}}_{\mathit{i}},{\mathit{py}}_{\mathit{i}}\right)$, for $\mathit{i}=1,2,\dots ,m$, at which interpolated function values are sought.
9: $\mathbf{pf}\left[{\mathbf{m}}\right]$double Output
On exit: the interpolated values $F\left({\mathit{px}}_{\mathit{i}},{\mathit{py}}_{\mathit{i}}\right)$, for $\mathit{i}=1,2,\dots ,m$.
10: $\mathbf{fail}$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.
See Section 3.1.2 in the Introduction to the NAG Library CL Interface for further information.
On entry, argument $⟨\mathit{\text{value}}⟩$ had an illegal value.
NE_INT
On entry, ${\mathbf{m}}=⟨\mathit{\text{value}}⟩$.
Constraint: ${\mathbf{m}}\ge 1$.
On entry, ${\mathbf{n}}=⟨\mathit{\text{value}}⟩$.
Constraint: ${\mathbf{n}}\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.
See Section 7.5 in the Introduction to the NAG Library CL Interface for further information.
NE_NO_LICENCE
Your licence key may have expired or may not have been installed correctly.
See Section 8 in the Introduction to the NAG Library CL Interface 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 e01eac.
NW_EXTRAPOLATION
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.

Not applicable.

## 8Parallelism and Performance

The time taken for a call of e01ebc is approximately proportional to the number of interpolation points, $m$.