\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 r498481 = b;
double r498482 = -r498481;
double r498483 = r498481 * r498481;
double r498484 = 4.0;
double r498485 = a;
double r498486 = r498484 * r498485;
double r498487 = c;
double r498488 = r498486 * r498487;
double r498489 = r498483 - r498488;
double r498490 = sqrt(r498489);
double r498491 = r498482 + r498490;
double r498492 = 2.0;
double r498493 = r498492 * r498485;
double r498494 = r498491 / r498493;
return r498494;
}
double f(double __attribute__((unused)) a, double b, double c) {
double r498495 = c;
double r498496 = -r498495;
double r498497 = b;
double r498498 = r498496 / r498497;
return r498498;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
Initial program 52.1
Simplified52.1
Taylor expanded around inf 6.5
Simplified6.5
Final simplification6.5
herbie shell --seed 2019135
(FPCore (a b c)
:name "Quadratic roots, wide range"
:pre (and (< 4.930380657631324e-32 a 2.028240960365167e+31) (< 4.930380657631324e-32 b 2.028240960365167e+31) (< 4.930380657631324e-32 c 2.028240960365167e+31))
(/ (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)))