cc [ flags ] -I/usr/local/include file(s) -L/usr/local/lib -lmcw [ ... ] #include <mathcw.h> extern float ellpif (float n, float phi, float k); extern double ellpi (double n, double phi, double k); extern long double ellpil (long double n, long double phi, long double k); extern __float80 ellpiw (__float80 n, __float80 phi, __float80 k); extern __float128 ellpiq (__float128 n, __float128 phi, __float128 k); extern long_long_double ellpill (long_long_double n, long_long_double phi, long_long_double k); extern decimal_float ellpidf (decimal_float n, decimal_float phi, decimal_float k); extern decimal_double ellpid (decimal_double n, decimal_double phi, decimal_double k); extern decimal_long_double ellpidl (decimal_long_double n, decimal_long_double phi, decimal_long_double k); extern decimal_long_long_double ellpidll (decimal_long_long_double n, decimal_long_long_double phi, decimal_long_long_double k);
NB: Functions with prototypes containing underscores in type names may be available only with certain extended compilers.
ellpi(n,phi,k) = integral(t=0:phi) (1 - n * (sin(t))**2)**(-1) * (1 - (k * sin(t))**2)**(-1/2) dtwhere n is a nonnegative real number, phi is an angle in radians in [0, 2*pi], and k is in [-1,+1].
The Legendre incomplete elliptic function of the third kind in Abramowitz and Stegun's Handbook of Mathematical Functions (Chapter 17 and Table 17.9) can be computed like this:
\(*P(n; phi \ alpha) = ellpi(n, phi, sin(alpha)).
Equivalents in other systems are:
Maple: \(*P(n; phi \ alpha) = EllipticPi(sin(phi), n, sin(alpha)) Mathematica: \(*P(n; phi \ alpha) = EllipticPi[n, phi, (Sin[alpha])^2]