cc [ flags ] -I/usr/local/include file(s) -L/usr/local/lib -lmcw [ ... ] #include <mathcw.h> extern float eljkf (float u, float k); extern double eljk (double u, double k); extern long double eljkl (long double u, long double k); extern __float80 eljkw (__float80 u, __float80 k); extern __float128 eljkq (__float128 u, __float128 k); extern long_long_double eljkll (long_long_double u, long_long_double k); extern decimal_float eljkdf (decimal_float u, decimal_float k); extern decimal_double eljkd (decimal_double u, decimal_double k); extern decimal_long_double eljkdl (decimal_long_double u, decimal_long_double k); extern decimal_long_long_double eljkdll (decimal_long_long_double u, decimal_long_long_double k);
NB: Functions with prototypes containing underscores in type names may be available only with certain extended compilers.
The companion function eljq(k) provides the inverse operation, such that
q = eljq(k), k = eljk(q).
For q > 1/2, we have k > 0.999995, so expressions requiring eljk(q) can be replaced by 1 + eljkm1(q) for higher effective precision.
See M. Abramowitz & I. A. Stegun, Handbook of Mathematical Functions, Chapter 16, for definitions of the Jacobian elliptic, theta, and zeta functions.