\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 r841332 = b;
double r841333 = -r841332;
double r841334 = r841332 * r841332;
double r841335 = 4.0;
double r841336 = a;
double r841337 = r841335 * r841336;
double r841338 = c;
double r841339 = r841337 * r841338;
double r841340 = r841334 - r841339;
double r841341 = sqrt(r841340);
double r841342 = r841333 + r841341;
double r841343 = 2.0;
double r841344 = r841343 * r841336;
double r841345 = r841342 / r841344;
return r841345;
}
double f(double __attribute__((unused)) a, double b, double c) {
double r841346 = c;
double r841347 = b;
double r841348 = r841346 / r841347;
double r841349 = -r841348;
return r841349;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
Initial program 44.2
Simplified44.2
Taylor expanded around inf 11.7
Simplified11.7
Final simplification11.7
herbie shell --seed 2019128
(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)))