\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 r8447771 = b;
double r8447772 = -r8447771;
double r8447773 = r8447771 * r8447771;
double r8447774 = 4.0;
double r8447775 = a;
double r8447776 = r8447774 * r8447775;
double r8447777 = c;
double r8447778 = r8447776 * r8447777;
double r8447779 = r8447773 - r8447778;
double r8447780 = sqrt(r8447779);
double r8447781 = r8447772 + r8447780;
double r8447782 = 2.0;
double r8447783 = r8447782 * r8447775;
double r8447784 = r8447781 / r8447783;
return r8447784;
}
double f(double __attribute__((unused)) a, double b, double c) {
double r8447785 = c;
double r8447786 = b;
double r8447787 = r8447785 / r8447786;
double r8447788 = -r8447787;
return r8447788;
}



Bits error versus a



Bits error versus b



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