\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\frac{c}{b} \cdot -1double f(double a, double b, double c) {
double r1823267 = b;
double r1823268 = -r1823267;
double r1823269 = r1823267 * r1823267;
double r1823270 = 4.0;
double r1823271 = a;
double r1823272 = r1823270 * r1823271;
double r1823273 = c;
double r1823274 = r1823272 * r1823273;
double r1823275 = r1823269 - r1823274;
double r1823276 = sqrt(r1823275);
double r1823277 = r1823268 + r1823276;
double r1823278 = 2.0;
double r1823279 = r1823278 * r1823271;
double r1823280 = r1823277 / r1823279;
return r1823280;
}
double f(double __attribute__((unused)) a, double b, double c) {
double r1823281 = c;
double r1823282 = b;
double r1823283 = r1823281 / r1823282;
double r1823284 = -1.0;
double r1823285 = r1823283 * r1823284;
return r1823285;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
Initial program 44.1
Simplified44.1
Taylor expanded around inf 11.8
Final simplification11.8
herbie shell --seed 2019169 +o rules:numerics
(FPCore (a b c)
:name "Quadratic roots, medium range"
:pre (and (< 1.1102230246251565e-16 a 9007199254740992.0) (< 1.1102230246251565e-16 b 9007199254740992.0) (< 1.1102230246251565e-16 c 9007199254740992.0))
(/ (+ (- b) (sqrt (- (* b b) (* (* 4.0 a) c)))) (* 2.0 a)))