\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}-\frac{c}{b}double f(double a, double b, double c) {
double r1139268 = b;
double r1139269 = -r1139268;
double r1139270 = r1139268 * r1139268;
double r1139271 = 4.0;
double r1139272 = a;
double r1139273 = r1139271 * r1139272;
double r1139274 = c;
double r1139275 = r1139273 * r1139274;
double r1139276 = r1139270 - r1139275;
double r1139277 = sqrt(r1139276);
double r1139278 = r1139269 + r1139277;
double r1139279 = 2.0;
double r1139280 = r1139279 * r1139272;
double r1139281 = r1139278 / r1139280;
return r1139281;
}
double f(double __attribute__((unused)) a, double b, double c) {
double r1139282 = c;
double r1139283 = b;
double r1139284 = r1139282 / r1139283;
double r1139285 = -r1139284;
return r1139285;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
Initial program 43.7
Simplified43.7
Taylor expanded around inf 12.1
Simplified12.1
Final simplification12.1
herbie shell --seed 2019129 +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 a) c)))) (* 2 a)))