\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 r1054277 = b;
double r1054278 = -r1054277;
double r1054279 = r1054277 * r1054277;
double r1054280 = 4.0;
double r1054281 = a;
double r1054282 = r1054280 * r1054281;
double r1054283 = c;
double r1054284 = r1054282 * r1054283;
double r1054285 = r1054279 - r1054284;
double r1054286 = sqrt(r1054285);
double r1054287 = r1054278 + r1054286;
double r1054288 = 2.0;
double r1054289 = r1054288 * r1054281;
double r1054290 = r1054287 / r1054289;
return r1054290;
}
double f(double __attribute__((unused)) a, double b, double c) {
double r1054291 = c;
double r1054292 = b;
double r1054293 = r1054291 / r1054292;
double r1054294 = -r1054293;
return r1054294;
}



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
(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)))