\sqrt{\left|\frac{a \cdot a - b \cdot b}{a \cdot a}\right|}\sqrt{\left|\frac{1}{\frac{a}{a + b}} \cdot \frac{\frac{1}{a}}{\frac{1}{a - b}}\right|}double f(double a, double b) {
double r83993 = a;
double r83994 = r83993 * r83993;
double r83995 = b;
double r83996 = r83995 * r83995;
double r83997 = r83994 - r83996;
double r83998 = r83997 / r83994;
double r83999 = fabs(r83998);
double r84000 = sqrt(r83999);
return r84000;
}
double f(double a, double b) {
double r84001 = 1.0;
double r84002 = a;
double r84003 = b;
double r84004 = r84002 + r84003;
double r84005 = r84002 / r84004;
double r84006 = r84001 / r84005;
double r84007 = r84001 / r84002;
double r84008 = r84002 - r84003;
double r84009 = r84001 / r84008;
double r84010 = r84007 / r84009;
double r84011 = r84006 * r84010;
double r84012 = fabs(r84011);
double r84013 = sqrt(r84012);
return r84013;
}



Bits error versus a



Bits error versus b
Results
Initial program 14.5
rmApplied difference-of-squares14.5
Applied times-frac0.0
rmApplied clear-num0.0
rmApplied div-inv0.0
Applied associate-/r*0.0
rmApplied clear-num0.0
Final simplification0.0
herbie shell --seed 2020002
(FPCore (a b)
:name "Eccentricity of an ellipse"
:precision binary64
:pre (<= 0.0 b a 1)
(sqrt (fabs (/ (- (* a a) (* b b)) (* a a)))))