\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\frac{2 \cdot c}{\left(-b\right) - \sqrt{(c \cdot \left(-4 \cdot a\right) + \left(b \cdot b\right))_*}}double f(double a, double b, double c) {
double r11428748 = b;
double r11428749 = -r11428748;
double r11428750 = r11428748 * r11428748;
double r11428751 = 4.0;
double r11428752 = a;
double r11428753 = r11428751 * r11428752;
double r11428754 = c;
double r11428755 = r11428753 * r11428754;
double r11428756 = r11428750 - r11428755;
double r11428757 = sqrt(r11428756);
double r11428758 = r11428749 + r11428757;
double r11428759 = 2.0;
double r11428760 = r11428759 * r11428752;
double r11428761 = r11428758 / r11428760;
return r11428761;
}
double f(double a, double b, double c) {
double r11428762 = 2.0;
double r11428763 = c;
double r11428764 = r11428762 * r11428763;
double r11428765 = b;
double r11428766 = -r11428765;
double r11428767 = -4.0;
double r11428768 = a;
double r11428769 = r11428767 * r11428768;
double r11428770 = r11428765 * r11428765;
double r11428771 = fma(r11428763, r11428769, r11428770);
double r11428772 = sqrt(r11428771);
double r11428773 = r11428766 - r11428772;
double r11428774 = r11428764 / r11428773;
return r11428774;
}



Bits error versus a



Bits error versus b



Bits error versus c
Initial program 43.8
rmApplied flip-+43.8
Applied associate-/l/43.8
Simplified0.4
rmApplied associate-/r*0.2
Simplified0.2
Taylor expanded around inf 0.2
Final simplification0.2
herbie shell --seed 2019119 +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)))