# NAG CL Interfacee01bhc (dim1_​monotonic_​intg)

Settings help

CL Name Style:

## 1Purpose

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

## 2Specification

 #include
 void e01bhc (Integer n, const double x[], const double f[], const double d[], double a, double b, double *integral, NagError *fail)
The function may be called by the names: e01bhc, nag_interp_dim1_monotonic_intg or nag_monotonic_intg.

## 3Description

e01bhc evaluates the definite integral of a piecewise cubic Hermite interpolant, as computed by 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).

## 4References

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

## 5Arguments

1: $\mathbf{n}$Integer Input
On entry: n must be unchanged from the previous call of e01bec.
2: $\mathbf{x}\left[{\mathbf{n}}\right]$const double Input
3: $\mathbf{f}\left[{\mathbf{n}}\right]$const double Input
4: $\mathbf{d}\left[{\mathbf{n}}\right]$const double Input
On entry: x, f and d must be unchanged from the previous call of e01bec.
5: $\mathbf{a}$double Input
6: $\mathbf{b}$double Input
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 7 in the Introduction to the NAG Library CL Interface).

## 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

e01bhc is not threaded in any implementation.

The time taken by 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)