NAG C Library Function Document

nag_monotonic_evaluate (e01bfc)

1
Purpose

nag_monotonic_evaluate (e01bfc) evaluates a piecewise cubic Hermite interpolant at a set of points.

2
Specification

#include <nag.h>
#include <nage01.h>
void  nag_monotonic_evaluate (Integer n, const double x[], const double f[], const double d[], Integer m, const double px[], double pf[], NagError *fail)

3
Description

A piecewise cubic Hermite interpolant, as computed by nag_monotonic_interpolant (e01bec), is evaluated at the points px[i] , for i=0,1,,m-1. If any point lies outside the interval from x[0]  to x[n-1] , a value is extrapolated from the nearest extreme cubic, and a warning is returned.
The algorithm is derived from routine PCHFE in Fritsch (1982).

4
References

Fritsch F N (1982) PCHIP final specifications Report UCID-30194 Lawrence Livermore National Laboratory

5
Arguments

1:     n IntegerInput
On entry: n must be unchanged from the previous call of nag_monotonic_interpolant (e01bec).
2:     x[n] const doubleInput
3:     f[n] const doubleInput
4:     d[n] const doubleInput
On entry: x, f and d must be unchanged from the previous call of nag_monotonic_interpolant (e01bec).
5:     m IntegerInput
On entry: m , the number of points at which the interpolant is to be evaluated.
Constraint: m1 .
6:     px[m] const doubleInput
On entry: the m  values of x  at which the interpolant is to be evaluated.
7:     pf[m] doubleOutput
On exit: pf[i]  contains the value of the interpolant evaluated at the point px[i] , for i=0,1,,m-1.
8:     fail 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_INT_ARG_LT
On entry, m=value.
Constraint: m1.
On entry, n=value.
Constraint: n2.
NE_NOT_MONOTONIC
On entry, x[r-1] x[r]  for r=value : x[r-1] , x[r] = values .
The values of x[r] , for r=0,1,,n - 1, are not in strictly increasing order.
NW_EXTRAPOLATE
Warning – some points in array PX lie outside the range x[0] x[n-1] . Values at these points are unreliable as they have been computed by extrapolation.

7
Accuracy

The computational errors in the array pf should be negligible in most practical situations.

8
Parallelism and Performance

nag_monotonic_evaluate (e01bfc) is not threaded in any implementation.

9
Further Comments

The time taken by nag_monotonic_evaluate (e01bfc) is approximately proportional to the number of evaluation points, m . The evaluation will be most efficient if the elements of px are in nondecreasing order (or, more generally, if they are grouped in increasing order of the intervals x r-1 , x r ). A single call of nag_monotonic_evaluate (e01bfc) with m>1  is more efficient than several calls with m=1 .

10
Example

This example program reads in values of n, x, f, d and m, and then calls nag_monotonic_evaluate (e01bfc) to evaluate the interpolant at equally spaced points.

10.1
Program Text

Program Text (e01bfce.c)

10.2
Program Data

Program Data (e01bfce.d)

10.3
Program Results

Program Results (e01bfce.r)