\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 434.5586936141062892602349165827035903931:\\
\;\;\;\;\frac{\frac{\left(b \cdot b - \left(4 \cdot a\right) \cdot c\right) - b \cdot b}{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} + b}}{2 \cdot a}\\
\mathbf{else}:\\
\;\;\;\;-1 \cdot \frac{c}{b}\\
\end{array}double f(double a, double b, double c) {
double r28134 = b;
double r28135 = -r28134;
double r28136 = r28134 * r28134;
double r28137 = 4.0;
double r28138 = a;
double r28139 = r28137 * r28138;
double r28140 = c;
double r28141 = r28139 * r28140;
double r28142 = r28136 - r28141;
double r28143 = sqrt(r28142);
double r28144 = r28135 + r28143;
double r28145 = 2.0;
double r28146 = r28145 * r28138;
double r28147 = r28144 / r28146;
return r28147;
}
double f(double a, double b, double c) {
double r28148 = b;
double r28149 = 434.5586936141063;
bool r28150 = r28148 <= r28149;
double r28151 = r28148 * r28148;
double r28152 = 4.0;
double r28153 = a;
double r28154 = r28152 * r28153;
double r28155 = c;
double r28156 = r28154 * r28155;
double r28157 = r28151 - r28156;
double r28158 = r28157 - r28151;
double r28159 = sqrt(r28157);
double r28160 = r28159 + r28148;
double r28161 = r28158 / r28160;
double r28162 = 2.0;
double r28163 = r28162 * r28153;
double r28164 = r28161 / r28163;
double r28165 = -1.0;
double r28166 = r28155 / r28148;
double r28167 = r28165 * r28166;
double r28168 = r28150 ? r28164 : r28167;
return r28168;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < 434.5586936141063Initial program 16.4
Simplified16.4
rmApplied flip--16.4
Simplified15.4
if 434.5586936141063 < b Initial program 35.0
Simplified35.0
Taylor expanded around inf 17.3
Final simplification16.6
herbie shell --seed 2019323
(FPCore (a b c)
:name "Quadratic roots, narrow range"
:precision binary64
: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 a) c)))) (* 2 a)))