NAG Library Function Document

1Purpose

nag_monotonic_intg (e01bhc) evaluates the definite integral of a piecewise cubic Hermite interpolant over the interval $\left[a,b\right]$.

2Specification

 #include #include
 void nag_monotonic_intg (Integer n, const double x[], const double f[], const double d[], double a, double b, double *integral, NagError *fail)

3Description

nag_monotonic_intg (e01bhc) evaluates the definite integral of a piecewise cubic Hermite interpolant, as computed by nag_monotonic_interpolant (e01bec), over the interval $\left[a,b\right]$.
If either $a$ or $b$ lies outside the interval from ${\mathbf{x}}\left[0\right]$ to ${\mathbf{x}}\left[n-1\right]$, computation of the integral involves extrapolation and a warning is returned.
The function is derived from routine PCHIA in Fritsch (1982).
Fritsch F N (1982) PCHIP final specifications Report UCID-30194 Lawrence Livermore National Laboratory

5Arguments

1:    $\mathbf{n}$IntegerInput
On entry: n must be unchanged from the previous call of nag_monotonic_interpolant (e01bec).
2:    $\mathbf{x}\left[{\mathbf{n}}\right]$const doubleInput
3:    $\mathbf{f}\left[{\mathbf{n}}\right]$const doubleInput
4:    $\mathbf{d}\left[{\mathbf{n}}\right]$const doubleInput
On entry: x, f and d must be unchanged from the previous call of nag_monotonic_interpolant (e01bec).
5:    $\mathbf{a}$doubleInput
6:    $\mathbf{b}$doubleInput
On entry: the interval $\left[a,b\right]$ over which integration is to be performed.
7:    $\mathbf{integral}$double *Output
On exit: the value of the definite integral of the interpolant over the interval $\left[a,b\right]$.
8:    $\mathbf{fail}$NagError *Input/Output
The NAG error argument (see Section 3.7 in How to Use the NAG Library and its Documentation).

6Error Indicators and Warnings

NE_INT_ARG_LT
On entry, ${\mathbf{n}}=〈\mathit{\text{value}}〉$.
Constraint: ${\mathbf{n}}\ge 2$.
NE_NOT_MONOTONIC
On entry, ${\mathbf{x}}\left[r-1\right]\ge {\mathbf{x}}\left[r\right]$ for $r=〈\mathit{\text{value}}〉$ : ${\mathbf{x}}\left[r-1\right]=〈\mathit{\text{value}}〉$, ${\mathbf{x}}\left[r\right]=〈\mathit{\text{value}}〉$.
The values of ${\mathbf{x}}\left[\mathit{r}\right]$, for $\mathit{r}=0,1,\dots ,n-1$, are not in strictly increasing order.
NW_INTERVAL_EXTRAPOLATE
On entry, limits a, b must not be outside interval $\left[{\mathbf{x}}\left[0\right],{\mathbf{x}}\left[n-1\right]\right]$, ${\mathbf{a}}=〈\mathit{\text{value}}〉$, ${\mathbf{b}}=〈\mathit{\text{value}}〉$, ${\mathbf{x}}\left[0\right]=〈\mathit{\text{value}}〉$, ${\mathbf{x}}\left[〈\mathit{\text{value}}〉\right]=〈\mathit{\text{value}}〉$. Extrapolation was performed to compute the integral. The value returned is therefore unreliable.

7Accuracy

The computational error in the value returned for integral should be negligible in most practical situations.

8Parallelism and Performance

nag_monotonic_intg (e01bhc) is not threaded in any implementation.

The time taken by nag_monotonic_intg (e01bhc) is approximately proportional to the number of data points included within the interval $\left[a,b\right]$.

10Example

This example program reads in values of n, x, f and d. It then reads in pairs of values for a and b, and evaluates the definite integral of the interpolant over the interval $\left({\mathbf{a}},{\mathbf{b}}\right)$ until end-of-file is reached.

10.1Program Text

Program Text (e01bhce.c)

10.2Program Data

Program Data (e01bhce.d)

10.3Program Results

Program Results (e01bhce.r)

© The Numerical Algorithms Group Ltd, Oxford, UK. 2017