\sqrt{\left|\frac{a \cdot a - b \cdot b}{a \cdot a}\right|}\mathsf{expm1}\left(\mathsf{log1p}\left(\sqrt{\left|\frac{a + b}{a} \cdot \frac{a - b}{a}\right|}\right)\right)double f(double a, double b) {
double r68887 = a;
double r68888 = r68887 * r68887;
double r68889 = b;
double r68890 = r68889 * r68889;
double r68891 = r68888 - r68890;
double r68892 = r68891 / r68888;
double r68893 = fabs(r68892);
double r68894 = sqrt(r68893);
return r68894;
}
double f(double a, double b) {
double r68895 = a;
double r68896 = b;
double r68897 = r68895 + r68896;
double r68898 = r68897 / r68895;
double r68899 = r68895 - r68896;
double r68900 = r68899 / r68895;
double r68901 = r68898 * r68900;
double r68902 = fabs(r68901);
double r68903 = sqrt(r68902);
double r68904 = log1p(r68903);
double r68905 = expm1(r68904);
return r68905;
}



Bits error versus a



Bits error versus b
Results
Initial program 14.2
rmApplied difference-of-squares14.2
Applied times-frac0.0
rmApplied expm1-log1p-u0.0
Final simplification0.0
herbie shell --seed 2020039 +o rules:numerics
(FPCore (a b)
:name "Eccentricity of an ellipse"
:precision binary64
:pre (<= 0.0 b a 1)
(sqrt (fabs (/ (- (* a a) (* b b)) (* a a)))))