cc [ flags ] -I/usr/local/include file(s) -L/usr/local/lib -lmcw [ ... ] #include <mathcw.h> extern float elwsf (float u, float e1, float e2); extern double elws (double u, double e1, double e2); extern long double elwsl (long double u, long double e1, long double e2); extern __float80 elwsw (__float80 u, __float80 e1, __float80 e2); extern __float128 elwsq (__float128 u, __float128 e1, __float128 e2); extern long_long_double elwsll (long_long_double u, long_long_double e1, long_long_double e2); extern decimal_float elwsdf (decimal_float u, decimal_float e1, decimal_float e2); extern decimal_double elwsd (decimal_double u, decimal_double e1, decimal_double e2); extern decimal_long_double elwsdl (decimal_long_double u, decimal_long_double e1, decimal_long_double e2); extern decimal_long_long_double elwsdll (decimal_long_long_double u, 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.
The argument u is unrestricted, but function accuracy deteriorates severely for u values outside the periods of the Weierstrass elliptic function. The periods can be found with elwo(3CW).
Mathematical texts commonly parameterize the Weierstrass functions with the cubic polynomial coefficents g2 and g3, instead of the roots e1 and e2. Convert between the two argument conventions with elwe(3CW) and elwg(3CW).
See M. Abramowitz & I. A. Stegun, Handbook of Mathematical Functions, Chapter 18, for definitions of the Weierstrass elliptic, sigma, and zeta functions.