\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\begin{array}{l}
\mathbf{if}\;b \le 53.72772989939689125549193704500794410706:\\
\;\;\;\;\frac{\frac{\frac{\left(b \cdot b - \left(a \cdot c\right) \cdot 4\right) \cdot \sqrt{b \cdot b - \left(a \cdot c\right) \cdot 4} - \left(b \cdot b\right) \cdot b}{\mathsf{fma}\left(\sqrt{b \cdot b - \left(a \cdot c\right) \cdot 4}, b, b \cdot b - \left(a \cdot c\right) \cdot 4\right) + b \cdot b}}{a}}{2}\\
\mathbf{elif}\;b \le 250.8081548127311179996468126773834228516:\\
\;\;\;\;\frac{\frac{c}{b} \cdot -2}{2}\\
\mathbf{elif}\;b \le 2125.07914601017046152264811098575592041:\\
\;\;\;\;\frac{\frac{\frac{\left(b \cdot b - \left(a \cdot c\right) \cdot 4\right) \cdot \sqrt{b \cdot b - \left(a \cdot c\right) \cdot 4} - \left(b \cdot b\right) \cdot b}{\mathsf{fma}\left(\sqrt{b \cdot b - \left(a \cdot c\right) \cdot 4}, b, b \cdot b - \left(a \cdot c\right) \cdot 4\right) + b \cdot b}}{a}}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{c}{b} \cdot -2}{2}\\
\end{array}double f(double a, double b, double c) {
double r1788583 = b;
double r1788584 = -r1788583;
double r1788585 = r1788583 * r1788583;
double r1788586 = 4.0;
double r1788587 = a;
double r1788588 = r1788586 * r1788587;
double r1788589 = c;
double r1788590 = r1788588 * r1788589;
double r1788591 = r1788585 - r1788590;
double r1788592 = sqrt(r1788591);
double r1788593 = r1788584 + r1788592;
double r1788594 = 2.0;
double r1788595 = r1788594 * r1788587;
double r1788596 = r1788593 / r1788595;
return r1788596;
}
double f(double a, double b, double c) {
double r1788597 = b;
double r1788598 = 53.72772989939689;
bool r1788599 = r1788597 <= r1788598;
double r1788600 = r1788597 * r1788597;
double r1788601 = a;
double r1788602 = c;
double r1788603 = r1788601 * r1788602;
double r1788604 = 4.0;
double r1788605 = r1788603 * r1788604;
double r1788606 = r1788600 - r1788605;
double r1788607 = sqrt(r1788606);
double r1788608 = r1788606 * r1788607;
double r1788609 = r1788600 * r1788597;
double r1788610 = r1788608 - r1788609;
double r1788611 = fma(r1788607, r1788597, r1788606);
double r1788612 = r1788611 + r1788600;
double r1788613 = r1788610 / r1788612;
double r1788614 = r1788613 / r1788601;
double r1788615 = 2.0;
double r1788616 = r1788614 / r1788615;
double r1788617 = 250.80815481273112;
bool r1788618 = r1788597 <= r1788617;
double r1788619 = r1788602 / r1788597;
double r1788620 = -2.0;
double r1788621 = r1788619 * r1788620;
double r1788622 = r1788621 / r1788615;
double r1788623 = 2125.0791460101705;
bool r1788624 = r1788597 <= r1788623;
double r1788625 = r1788624 ? r1788616 : r1788622;
double r1788626 = r1788618 ? r1788622 : r1788625;
double r1788627 = r1788599 ? r1788616 : r1788626;
return r1788627;
}



Bits error versus a



Bits error versus b



Bits error versus c
if b < 53.72772989939689 or 250.80815481273112 < b < 2125.0791460101705Initial program 17.3
Simplified17.3
rmApplied flip3--17.4
Simplified16.6
Simplified16.6
if 53.72772989939689 < b < 250.80815481273112 or 2125.0791460101705 < b Initial program 35.0
Simplified35.0
Taylor expanded around inf 17.3
Final simplification17.0
herbie shell --seed 2019174 +o rules:numerics
(FPCore (a b c)
:name "Quadratic roots, narrow range"
:pre (and (< 1.0536712127723509e-08 a 94906265.62425156) (< 1.0536712127723509e-08 b 94906265.62425156) (< 1.0536712127723509e-08 c 94906265.62425156))
(/ (+ (- b) (sqrt (- (* b b) (* (* 4.0 a) c)))) (* 2.0 a)))