elliptic_integral_RD
Evaluates Carlson’s elliptic integral of the second kind RD(x, y, z).
Synopsis
#include <imsl.h>
float imsl_f_elliptic_integral_RD (float x, float y, float z)
The type double function is imsl_d_elliptic_integral_RD.
Required Arguments
float x (Input)
First variable of the incomplete elliptic integral. It must be nonnegative.
float y (Input)
Second variable of the incomplete elliptic integral. It must be nonnegative.
float z (Input)
Third variable of the incomplete elliptic integral. It must be positive.
Return Value
The complete elliptic integral RD(x, y, z)
Description
Carlson’s elliptic integral of the first kind is defined to be
The arguments must be nonnegative and less than or equal to 0.69(
-lnɛ)
1/9s-2/3 where
ɛ =
imsl_f_machine(4) is the machine precision,
s =
imsl_f_machine(1) is the smallest representable positive number. Furthermore,
x +
y and
z must be greater than
max{3
s2/3, 3/
b2/3}, where
b =
imsl_f_machine(2) is the largest floating point number. If any of these conditions are false, then
imsl_f_elliptic_integral_RD returns
b. For more information, see the description for
imsl_f_machine.
The function imsl_f_elliptic_integral_RD is based on the code by Carlson and Notis (1981) and the work of Carlson (1979).
Example
The integral RD(0, 2, 1) is computed.
#include <imsl.h>
#include <stdio.h>
int main()
{
float x = 0.0;
float y = 2.0;
float z = 1.0;
float ans;
x = imsl_f_elliptic_integral_RD (x, y, z);
printf ("RD(0, 2, 1) = %f\n", x);
}
Output
RD(0, 2, 1) = 1.797210