cc [ flags ] -I/usr/local/include file(s) -L/usr/local/lib -lmcw [ ... ] #include <mathcw.h> extern void elwkf (float *pk, float *pkm1, float e1, float e2); extern void elwk (double *pk, double *pkm1, double e1, double e2); extern void elwkl (long double *pk, long double *pkm1, long double e1, long double e2); extern void elwkw (__float80 *pk, __float80 *pkm1, __float80 e1, __float80 e2); extern void elwkq (__float128 *pk, __float128 *pkm1, __float128 e1, __float128 e2); extern void elwkll (long_long_double *pk, long_long_double *pkm1, long_long_double e1, long_long_double e2); extern void elwkdf (decimal_float *pk, decimal_float *pkm1, decimal_float e1, decimal_float e2); extern void elwkd (decimal_double *pk, decimal_double *pkm1, decimal_double e1, decimal_double e2); extern void elwkdl (decimal_long_double *pk, decimal_long_double *pkm1, decimal_long_double e1, decimal_long_double e2); extern void elwkdll (decimal_long_long_double *pk, decimal_long_long_double *pkm1, decimal_long_long_double e1, decimal_long_long_double e2);
NB: Functions with prototypes containing underscores in type names may be available only with certain extended compilers.
This function is provided so that the smaller of k and km1 is computed accurately first, and the larger is then derived from it. This is important when the modulus is close to one.
See M. Abramowitz & I. A. Stegun, Handbook of Mathematical Functions, Chapter 18, for definitions of the Weierstrass elliptic, sigma, and zeta functions.