\sqrt{\left|\frac{a \cdot a - b \cdot b}{a \cdot a}\right|}\sqrt{\left|\frac{a + b}{a} \cdot \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{1}{\frac{a}{a - b}}\right)\right)\right|}double f(double a, double b) {
double r67315 = a;
double r67316 = r67315 * r67315;
double r67317 = b;
double r67318 = r67317 * r67317;
double r67319 = r67316 - r67318;
double r67320 = r67319 / r67316;
double r67321 = fabs(r67320);
double r67322 = sqrt(r67321);
return r67322;
}
double f(double a, double b) {
double r67323 = a;
double r67324 = b;
double r67325 = r67323 + r67324;
double r67326 = r67325 / r67323;
double r67327 = 1.0;
double r67328 = r67323 - r67324;
double r67329 = r67323 / r67328;
double r67330 = r67327 / r67329;
double r67331 = log1p(r67330);
double r67332 = expm1(r67331);
double r67333 = r67326 * r67332;
double r67334 = fabs(r67333);
double r67335 = sqrt(r67334);
return r67335;
}



Bits error versus a



Bits error versus b
Results
Initial program 14.7
rmApplied difference-of-squares14.7
Applied times-frac0.0
rmApplied clear-num0.0
rmApplied expm1-log1p-u0.0
Final simplification0.0
herbie shell --seed 2020056 +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)))))