\sqrt{\left|\frac{a \cdot a - b \cdot b}{a \cdot a}\right|}\sqrt{\left|1 - \frac{b \cdot \frac{b}{a}}{a}\right|}double f(double a, double b) {
double r54007 = a;
double r54008 = r54007 * r54007;
double r54009 = b;
double r54010 = r54009 * r54009;
double r54011 = r54008 - r54010;
double r54012 = r54011 / r54008;
double r54013 = fabs(r54012);
double r54014 = sqrt(r54013);
return r54014;
}
double f(double a, double b) {
double r54015 = 1.0;
double r54016 = b;
double r54017 = a;
double r54018 = r54016 / r54017;
double r54019 = r54016 * r54018;
double r54020 = r54019 / r54017;
double r54021 = r54015 - r54020;
double r54022 = fabs(r54021);
double r54023 = sqrt(r54022);
return r54023;
}



Bits error versus a



Bits error versus b
Results
Initial program 14.0
Simplified14.0
rmApplied associate-/r*0.7
Simplified0.0
rmApplied *-un-lft-identity0.0
Final simplification0.0
herbie shell --seed 2019326
(FPCore (a b)
:name "Eccentricity of an ellipse"
:precision binary64
:pre (<= 0.0 b a 1)
(sqrt (fabs (/ (- (* a a) (* b b)) (* a a)))))