cc [ flags ] -I/usr/local/include file(s) -L/usr/local/lib -lmcw [ ... ] #include <mathcw.h> extern float ellref (float x, float y); extern double ellre (double x, double y); extern long double ellrel (long double x, long double y); extern __float80 ellrew (__float80 x, __float80 y); extern __float128 ellreq (__float128 x, __float128 y); extern long_long_double ellrell (long_long_double x, long_long_double y); extern decimal_float ellredf (decimal_float x, decimal_float y); extern decimal_double ellred (decimal_double x, decimal_double y); extern decimal_long_double ellredl (decimal_long_double x, decimal_long_double y); extern decimal_long_long_double ellredll (decimal_long_long_double x, decimal_long_long_double y);
NB: Functions with prototypes containing underscores in type names may be available only with certain extended compilers.
where x >= 0 and y > 0.ellre(x, y) = R(-1/2; 1/2, 1/2; x, y) = (1/pi) * integral(t=0:Infinity) t**(-1/2) * (t + x)**(-1/2) * (t + y)**(-1/2) dt = (4 / pi) * ellrg(x, y, 0)
The function is symmetric in x and y.
The integral diverges, so the ellrg() form is used.
The normalization condition satisfied is
ellre(x, x) = x**(1/2).