\begin{array}{l}
\mathbf{if}\;b \ge 0:\\
\;\;\;\;\frac{2 \cdot c}{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\
\end{array}\begin{array}{l}
\mathbf{if}\;b \le -9.139254247068609 \cdot 10^{+140}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 0:\\
\;\;\;\;\frac{2 \cdot c}{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2 \cdot \left(a \cdot \frac{c}{b} - b\right)}{2 \cdot a}\\
\end{array}\\
\mathbf{elif}\;b \le 5.44913051221061 \cdot 10^{+117}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 0:\\
\;\;\;\;\frac{2 \cdot c}{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(-b\right) + \sqrt{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}} \cdot \sqrt{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}}{2 \cdot a}\\
\end{array}\\
\mathbf{elif}\;b \ge 0:\\
\;\;\;\;\frac{2 \cdot c}{2 \cdot \left(a \cdot \frac{c}{b} - b\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} + \left(-b\right)}{2 \cdot a}\\
\end{array}double f(double a, double b, double c) {
double r1171123 = b;
double r1171124 = 0.0;
bool r1171125 = r1171123 >= r1171124;
double r1171126 = 2.0;
double r1171127 = c;
double r1171128 = r1171126 * r1171127;
double r1171129 = -r1171123;
double r1171130 = r1171123 * r1171123;
double r1171131 = 4.0;
double r1171132 = a;
double r1171133 = r1171131 * r1171132;
double r1171134 = r1171133 * r1171127;
double r1171135 = r1171130 - r1171134;
double r1171136 = sqrt(r1171135);
double r1171137 = r1171129 - r1171136;
double r1171138 = r1171128 / r1171137;
double r1171139 = r1171129 + r1171136;
double r1171140 = r1171126 * r1171132;
double r1171141 = r1171139 / r1171140;
double r1171142 = r1171125 ? r1171138 : r1171141;
return r1171142;
}
double f(double a, double b, double c) {
double r1171143 = b;
double r1171144 = -9.139254247068609e+140;
bool r1171145 = r1171143 <= r1171144;
double r1171146 = 0.0;
bool r1171147 = r1171143 >= r1171146;
double r1171148 = 2.0;
double r1171149 = c;
double r1171150 = r1171148 * r1171149;
double r1171151 = -r1171143;
double r1171152 = r1171143 * r1171143;
double r1171153 = 4.0;
double r1171154 = a;
double r1171155 = r1171153 * r1171154;
double r1171156 = r1171155 * r1171149;
double r1171157 = r1171152 - r1171156;
double r1171158 = sqrt(r1171157);
double r1171159 = r1171151 - r1171158;
double r1171160 = r1171150 / r1171159;
double r1171161 = r1171149 / r1171143;
double r1171162 = r1171154 * r1171161;
double r1171163 = r1171162 - r1171143;
double r1171164 = r1171148 * r1171163;
double r1171165 = r1171148 * r1171154;
double r1171166 = r1171164 / r1171165;
double r1171167 = r1171147 ? r1171160 : r1171166;
double r1171168 = 5.44913051221061e+117;
bool r1171169 = r1171143 <= r1171168;
double r1171170 = sqrt(r1171158);
double r1171171 = r1171170 * r1171170;
double r1171172 = r1171151 + r1171171;
double r1171173 = r1171172 / r1171165;
double r1171174 = r1171147 ? r1171160 : r1171173;
double r1171175 = r1171150 / r1171164;
double r1171176 = r1171158 + r1171151;
double r1171177 = r1171176 / r1171165;
double r1171178 = r1171147 ? r1171175 : r1171177;
double r1171179 = r1171169 ? r1171174 : r1171178;
double r1171180 = r1171145 ? r1171167 : r1171179;
return r1171180;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -9.139254247068609e+140Initial program 55.8
rmApplied add-sqr-sqrt55.8
Applied sqrt-prod55.8
Taylor expanded around -inf 9.6
Simplified1.7
if -9.139254247068609e+140 < b < 5.44913051221061e+117Initial program 8.7
rmApplied add-sqr-sqrt8.7
Applied sqrt-prod8.8
if 5.44913051221061e+117 < b Initial program 30.9
Taylor expanded around inf 5.8
Simplified2.1
Final simplification6.6
herbie shell --seed 2019112
(FPCore (a b c)
:name "jeff quadratic root 2"
(if (>= b 0) (/ (* 2 c) (- (- b) (sqrt (- (* b b) (* (* 4 a) c))))) (/ (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a))))