s Chapter Contents
s Chapter Introduction
NAG C Library Manual

# NAG Library Function Documentnag_general_elliptic_integral_f  (s21dac)

## 1  Purpose

nag_general_elliptic_integral_f  (s21dac) returns the value of the general elliptic integral of the second kind $F\left(z,{k}^{\prime },a,b\right)$ for a complex argument $z$.

## 2  Specification

 #include #include
 Complex nag_general_elliptic_integral_f  (Complex z, double akp, double a, double b, NagError *fail)

## 3  Description

nag_general_elliptic_integral_f  (s21dac) evaluates an approximation to the general elliptic integral of the second kind $F\left(z,{k}^{\prime },a,b\right)$ given by
 $F z, k ′ ,a,b = ∫ 0 z a + b ζ 2 1 + ζ 2 1 + ζ 2 1 + k ′2 ζ 2 d ζ ,$
where $a$ and $b$ are real arguments, $z$ is a complex argument whose real part is non-negative and ${k}^{\prime }$ is a real argument (the complementary modulus). The evaluation of $F$ is based on the Gauss transformation. Further details, in particular for the conformal mapping provided by $F$, can be found in Bulirsch (1960).
Special values include
 $F z, k ′ ,1,1 = ∫ 0 z dζ 1 + ζ 2 1 + k ′2 ζ 2 ,$
or ${F}_{1}\left(z,{k}^{\prime }\right)$ (the elliptic integral of the first kind) and
 $F z, k ′ ,1, k ′2 = ∫ 0 z 1 + k ′2 ζ 2 1 + ζ 2 1 + ζ 2 d ζ ,$
or ${F}_{2}\left(z,{k}^{\prime }\right)$ (the elliptic integral of the second kind). Note that the values of ${F}_{1}\left(z,{k}^{\prime }\right)$ and ${F}_{2}\left(z,{k}^{\prime }\right)$ are equal to ${\mathrm{tan}}^{-1}\left(z\right)$ in the trivial case ${k}^{\prime }=1$.
nag_general_elliptic_integral_f  (s21dac) is derived from a procedure given by Bulirsch (1960).
Constraints are placed on the values of $z$ and ${k}^{\prime }$ in order to avoid the possibility of machine overflow.

## 4  References

Bulirsch R (1960) Numerical calculation of elliptic integrals and elliptic functions Numer. Math. 7 76–90

## 5  Arguments

1:     zComplexInput
On entry: the argument $z$ of the function.
Constraints:
• $0.0\le {\mathbf{z}}\mathbf{.}\mathbf{re}\le \lambda$;
• $\left|{\mathbf{z}}\mathbf{.}\mathbf{im}\right|\le \lambda$, where ${\lambda }^{6}=1/{\mathbf{nag_real_safe_small_number}}$.
2:     akpdoubleInput
On entry: the argument ${k}^{\prime }$ of the function.
Constraint: $\left|{\mathbf{akp}}\right|\le \lambda$, where ${\lambda }^{6}=1/{\mathbf{nag_real_safe_small_number}}$.
On entry: the argument $a$ of the function.
4:     bdoubleInput
On entry: the argument $b$ of the function.
5:     failNagError *Input/Output
The NAG error argument (see Section 3.6 in the Essential Introduction).

## 6  Error Indicators and Warnings

NE_COMPLEX
On entry, ${\mathbf{z}}=\left(〈\mathit{\text{value}}〉,〈\mathit{\text{value}}〉\right)$.
Constraints:
$0.0\le {\mathbf{z}}\mathbf{.}\mathbf{re}\le \lambda$;
$\left|{\mathbf{z}}\mathbf{.}\mathbf{im}\right|\le \lambda$, where ${\lambda }^{6}=1/{\mathbf{nag_real_safe_small_number}}$.
NE_INTERNAL_ERROR
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.
NE_REAL
On entry, ${\mathbf{akp}}=〈\mathit{\text{value}}〉$.
Constraint: $\left|{\mathbf{akp}}\right|\le \lambda$, where ${\lambda }^{6}=1/{\mathbf{nag_real_safe_small_number}}$.
NE_S21_CONV
The iterative procedure used to evaluate the integral has failed to converge. The result is returned as zero.

## 7  Accuracy

In principle nag_general_elliptic_integral_f  (s21dac) is capable of achieving full relative precision in the computed values. However, the accuracy obtainable in practice depends on the accuracy of the C standard library elementary functions such as atan2 and log.

None.

## 9  Example

The example program evaluates the elliptic integral of the first kind ${F}_{1}\left(z,{k}^{\prime }\right)$ given by
 $F 1 z, k ′ = ∫ 0 z dζ 1 + ζ 2 1 + k ′2 ζ 2 ,$
where $z=1.2+3.7i$ and ${k}^{\prime }=0.5$, and prints the results.

### 9.1  Program Text

Program Text (s21dace.c)

### 9.2  Program Data

Program Data (s21dace.d)

### 9.3  Program Results

Program Results (s21dace.r)