\sqrt{\left|\frac{a \cdot a - b \cdot b}{a \cdot a}\right|}\sqrt{\left|\mathsf{fma}\left(-\frac{b}{a}, \frac{b}{a}, 1\right)\right|}double f(double a, double b) {
double r72704 = a;
double r72705 = r72704 * r72704;
double r72706 = b;
double r72707 = r72706 * r72706;
double r72708 = r72705 - r72707;
double r72709 = r72708 / r72705;
double r72710 = fabs(r72709);
double r72711 = sqrt(r72710);
return r72711;
}
double f(double a, double b) {
double r72712 = b;
double r72713 = a;
double r72714 = r72712 / r72713;
double r72715 = -r72714;
double r72716 = 1.0;
double r72717 = fma(r72715, r72714, r72716);
double r72718 = fabs(r72717);
double r72719 = sqrt(r72718);
return r72719;
}



Bits error versus a



Bits error versus b
Initial program 30.3
Simplified8.1
Final simplification8.1
herbie shell --seed 2019179 +o rules:numerics
(FPCore (a b)
:name "Eccentricity of an ellipse"
:pre (<= 0.0 b a 1.0)
(sqrt (fabs (/ (- (* a a) (* b b)) (* a a)))))