NAG Library Function Document

nag_2d_triang_eval (e01skc)


    1  Purpose
    7  Accuracy
    10  Example


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


#include <nag.h>
#include <nage01.h>
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)


nag_2d_triang_eval (e01skc) takes as input the arguments defining the interpolant Fx,y of a set of scattered data points xr,yr,fr, for r=1,2,,m, as computed by nag_2d_shep_interp (e01sgc), and evaluates the interpolant at the point px,py.
If px,py is equal to xr,yr for some value of r, the returned value will be equal to fr.
If px,py is not equal to xr,yr for any r, the derivatives in grads will be used to compute the interpolant. A triangle is sought which contains the point px,py, and the vertices of the triangle along with the partial derivatives and fr values at the vertices are used to compute the value Fpx,py. If the point px,py lies outside the triangulation defined by the input arguments, the returned value is obtained by extrapolation. In this case, the interpolating function 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).


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 C1 interpolation method Rocky Mountain J. Math. 14 223–237


1:     m IntegerInput
2:     x[m] const doubleInput
3:     y[m] const doubleInput
4:     f[m] const doubleInput
5:     triang[7×m] const IntegerInput
6:     grads[2×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:     px doubleInput
8:     py doubleInput
On entry: the point px,py at which the interpolant is to be evaluated.
9:     pf double *Output
On exit: the value of the interpolant evaluated at the point px,py.
10:   fail NagError *Input/Output
The NAG error argument (see Section 3.7 in How to Use the NAG Library and its Documentation).

Error Indicators and Warnings

Dynamic memory allocation failed.
See Section in How to Use the NAG Library and its Documentation for further information.
On entry, argument value had an illegal value.
On entry, m=value.
Constraint: m3.
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.
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.
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).
Warning – the evaluation point value,value lies outside the triangulation boundary. The returned value was computed by extrapolation.


Computational errors should be negligible in most practical situations.

Parallelism and Performance

nag_2d_triang_eval (e01skc) is not threaded in any implementation.

Further Comments

The time taken for a call of nag_2d_triang_eval (e01skc) is approximately proportional to the number of data points, m.
The results returned by this function are particularly suitable for applications such as graph plotting, producing a smooth surface from a number of scattered points.


See Section 10 in nag_2d_shep_interp (e01sgc).
© The Numerical Algorithms Group Ltd, Oxford, UK. 2017