\sqrt{\left|\frac{a \cdot a - b \cdot b}{a \cdot a}\right|}\sqrt{\left|\mathsf{expm1}\left(\mathsf{log1p}\left(1 - \frac{b}{a} \cdot \frac{b}{a}\right)\right)\right|}double f(double a, double b) {
double r58173 = a;
double r58174 = r58173 * r58173;
double r58175 = b;
double r58176 = r58175 * r58175;
double r58177 = r58174 - r58176;
double r58178 = r58177 / r58174;
double r58179 = fabs(r58178);
double r58180 = sqrt(r58179);
return r58180;
}
double f(double a, double b) {
double r58181 = 1.0;
double r58182 = b;
double r58183 = a;
double r58184 = r58182 / r58183;
double r58185 = r58184 * r58184;
double r58186 = r58181 - r58185;
double r58187 = log1p(r58186);
double r58188 = expm1(r58187);
double r58189 = fabs(r58188);
double r58190 = sqrt(r58189);
return r58190;
}



Bits error versus a



Bits error versus b
Results
Initial program 14.3
rmApplied clear-num14.3
Simplified0.0
rmApplied expm1-log1p-u0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019350 +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)))))