## ▸▿ Contents

Settings help

FL Name Style:

FL Specification Language:

## 1Purpose

s13adf returns the value of the sine integral
 $Si(x)=∫0xsin⁡uudu,$
via the function name.

## 2Specification

Fortran Interface
 Real (Kind=nag_wp) :: s13adf Integer, Intent (Inout) :: ifail Real (Kind=nag_wp), Intent (In) :: x
#include <nag.h>
 double s13adf_ (const double *x, Integer *ifail)
The routine may be called by the names s13adf or nagf_specfun_integral_sin.

## 3Description

s13adf calculates an approximate value for $\mathrm{Si}\left(x\right)$.
For $|x|\le 16.0$ it is based on the Chebyshev expansion
 $Si(x)=x∑r=0′arTr(t),t=2 (x16) 2-1.$
For $16<|x|<{x}_{\mathrm{hi}}$, where ${x}_{\mathrm{hi}}$ is an implementation-dependent number,
 $Si(x)=sign(x) {π2-f(x)cos⁡xx-g(x)sin⁡xx2}$
where $f\left(x\right)=\underset{r=0}{{\sum }^{\prime }}\phantom{\rule{0.25em}{0ex}}{f}_{r}{T}_{r}\left(t\right)$ and $g\left(x\right)=\underset{r=0}{{\sum }^{\prime }}\phantom{\rule{0.25em}{0ex}}{g}_{r}{T}_{r}\left(t\right)$, $t=2{\left(\frac{16}{x}\right)}^{2}-1$.
For $|x|\ge {x}_{\mathrm{hi}}$, $\mathrm{Si}\left(x\right)=\frac{1}{2}\pi \mathrm{sign}x$ to within machine precision.

## 4References

NIST Digital Library of Mathematical Functions

## 5Arguments

1: $\mathbf{x}$Real (Kind=nag_wp) Input
On entry: the argument $x$ of the function.
2: $\mathbf{ifail}$Integer Input/Output
On entry: ifail must be set to $0$, $-1$ or $1$ to set behaviour on detection of an error; these values have no effect when no error is detected.
A value of $0$ causes the printing of an error message and program execution will be halted; otherwise program execution continues. A value of $-1$ means that an error message is printed while a value of $1$ means that it is not.
If halting is not appropriate, the value $-1$ or $1$ is recommended. If message printing is undesirable, then the value $1$ is recommended. Otherwise, the value $0$ is recommended. When the value $-\mathbf{1}$ or $\mathbf{1}$ is used it is essential to test the value of ifail on exit.
On exit: ${\mathbf{ifail}}={\mathbf{0}}$ unless the routine detects an error or a warning has been flagged (see Section 6).

## 6Error Indicators and Warnings

There are no failure exits from s13adf. The argument ifail has been included for consistency with other routines in this chapter.

## 7Accuracy

If $\delta$ and $\epsilon$ are the relative errors in the argument and result, respectively, then in principle
 $|ε|≃ | δ sin⁡x Si(x) | .$
The equality may hold if $\delta$ is greater than the machine precision ($\delta$ due to data errors etc.) but if $\delta$ is simply due to round-off in the machine representation, then since the factor relating $\delta$ to $\epsilon$ is always less than $1$, the accuracy will be limited by machine precision.

None.

## 10Example

This example reads values of the argument $x$ from a file, evaluates the function at each value of $x$ and prints the results.