\sqrt{\left|\frac{a \cdot a - b \cdot b}{a \cdot a}\right|}\sqrt{\left|1 - \frac{\frac{b}{a} \cdot b}{a}\right|}double f(double a, double b) {
double r1830226 = a;
double r1830227 = r1830226 * r1830226;
double r1830228 = b;
double r1830229 = r1830228 * r1830228;
double r1830230 = r1830227 - r1830229;
double r1830231 = r1830230 / r1830227;
double r1830232 = fabs(r1830231);
double r1830233 = sqrt(r1830232);
return r1830233;
}
double f(double a, double b) {
double r1830234 = 1.0;
double r1830235 = b;
double r1830236 = a;
double r1830237 = r1830235 / r1830236;
double r1830238 = r1830237 * r1830235;
double r1830239 = r1830238 / r1830236;
double r1830240 = r1830234 - r1830239;
double r1830241 = fabs(r1830240);
double r1830242 = sqrt(r1830241);
return r1830242;
}



Bits error versus a



Bits error versus b
Results
Initial program 29.6
Simplified7.5
rmApplied associate-*r/7.5
Final simplification7.5
herbie shell --seed 2019153 +o rules:numerics
(FPCore (a b)
:name "Eccentricity of an ellipse"
:pre (<= 0 b a 1)
(sqrt (fabs (/ (- (* a a) (* b b)) (* a a)))))