\sqrt{\left|\frac{a \cdot a - b \cdot b}{a \cdot a}\right|}\sqrt{\left|e^{\mathsf{log1p}\left(\frac{b}{a} \cdot \left(-\frac{b}{a}\right)\right)}\right|}double f(double a, double b) {
double r45384 = a;
double r45385 = r45384 * r45384;
double r45386 = b;
double r45387 = r45386 * r45386;
double r45388 = r45385 - r45387;
double r45389 = r45388 / r45385;
double r45390 = fabs(r45389);
double r45391 = sqrt(r45390);
return r45391;
}
double f(double a, double b) {
double r45392 = b;
double r45393 = a;
double r45394 = r45392 / r45393;
double r45395 = -r45394;
double r45396 = r45394 * r45395;
double r45397 = log1p(r45396);
double r45398 = exp(r45397);
double r45399 = fabs(r45398);
double r45400 = sqrt(r45399);
return r45400;
}



Bits error versus a



Bits error versus b
Results
Initial program 14.7
rmApplied clear-num14.7
Simplified0.0
rmApplied add-exp-log4.1
Applied add-exp-log0.3
Applied div-exp0.3
Applied rec-exp0.3
Simplified0.0
Final simplification0.0
herbie shell --seed 2020042 +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)))))