cc [ flags ] -I/usr/local/include file(s) -L/usr/local/lib -lmcw [ ... ]
#include <mathcw.h>
extern float ellrjf (float x, float y, float z, float rho);
extern double ellrj (double x, double y, double z, double rho);
extern long double ellrjl (long double x, long double y, long double z, long double rho);
extern __float80 ellrjw (__float80 x, __float80 y, __float80 z, __float80 rho);
extern __float128 ellrjq (__float128 x, __float128 y, __float128 z, __float128 rho);
extern long_long_double ellrjll (long_long_double x, long_long_double y,
long_long_double z, long_long_double rho);
extern decimal_float ellrjdf (decimal_float x, decimal_float y, decimal_float z, decimal_float rho);
extern decimal_double ellrjd (decimal_double x, decimal_double y, decimal_double z, decimal_double rho);
extern decimal_long_double ellrjdl (decimal_long_double x, decimal_long_double y,
decimal_long_double z, decimal_long_double rho);
extern decimal_long_long_double ellrjdll (decimal_long_long_double x, decimal_long_long_double y,
decimal_long_long_double z, decimal_long_long_double rho);
NB: Functions with prototypes containing underscores in type names may be available only with certain extended compilers.
where x >= 0, y > 0, z > 0, and rho > 0.ellrj(x, y, z, rho) = R(3/2; 1/2, 1/2, 1/2, 1; x, y, z, rho) = (3/2) * integral(t=0:Infinity) (t + x)**(-1/2) * (t + y)**(-1/2) * (t + z)**(-1/2) * (t + rho)**(-1) dt
The function is symmetric in x, y, and z.
The normalization condition satisfied is
ellrj(x, x, x, x) = x**(-3/2).