\begin{array}{l}
\mathbf{if}\;b \ge 0.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 -7.943482039519133630405882994043698433958 \cdot 10^{75}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 0.0:\\
\;\;\;\;\frac{2 \cdot c}{b \cdot -2 + \frac{\frac{2}{\frac{\sqrt[3]{\frac{b}{c}} \cdot \sqrt[3]{\frac{b}{c}}}{a}}}{\sqrt[3]{\frac{b}{c}}}}\\
\mathbf{else}:\\
\;\;\;\;1 \cdot \left(\frac{c}{b} - \frac{b}{a}\right)\\
\end{array}\\
\mathbf{elif}\;b \le 2.620543139740264315993856298302188165155 \cdot 10^{84}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 0.0:\\
\;\;\;\;\frac{2 \cdot c}{\left(-b\right) - \sqrt{\sqrt{b \cdot b - \left(a \cdot c\right) \cdot 4}} \cdot \sqrt{\sqrt{b \cdot b - \left(a \cdot c\right) \cdot 4}}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{b \cdot b - \left(a \cdot c\right) \cdot 4} - b}{2 \cdot a}\\
\end{array}\\
\mathbf{elif}\;b \ge 0.0:\\
\;\;\;\;\frac{2 \cdot c}{\frac{2 \cdot a}{\frac{b}{c}} + b \cdot -2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\sqrt{{b}^{6} - {\left(c \cdot \left(4 \cdot a\right)\right)}^{3}}}{\sqrt{\left(b \cdot b + c \cdot \left(4 \cdot a\right)\right) \cdot \left(c \cdot \left(4 \cdot a\right)\right) + {b}^{4}}} - b}{2 \cdot a}\\
\end{array}double f(double a, double b, double c) {
double r35141 = b;
double r35142 = 0.0;
bool r35143 = r35141 >= r35142;
double r35144 = 2.0;
double r35145 = c;
double r35146 = r35144 * r35145;
double r35147 = -r35141;
double r35148 = r35141 * r35141;
double r35149 = 4.0;
double r35150 = a;
double r35151 = r35149 * r35150;
double r35152 = r35151 * r35145;
double r35153 = r35148 - r35152;
double r35154 = sqrt(r35153);
double r35155 = r35147 - r35154;
double r35156 = r35146 / r35155;
double r35157 = r35147 + r35154;
double r35158 = r35144 * r35150;
double r35159 = r35157 / r35158;
double r35160 = r35143 ? r35156 : r35159;
return r35160;
}
double f(double a, double b, double c) {
double r35161 = b;
double r35162 = -7.943482039519134e+75;
bool r35163 = r35161 <= r35162;
double r35164 = 0.0;
bool r35165 = r35161 >= r35164;
double r35166 = 2.0;
double r35167 = c;
double r35168 = r35166 * r35167;
double r35169 = -2.0;
double r35170 = r35161 * r35169;
double r35171 = r35161 / r35167;
double r35172 = cbrt(r35171);
double r35173 = r35172 * r35172;
double r35174 = a;
double r35175 = r35173 / r35174;
double r35176 = r35166 / r35175;
double r35177 = r35176 / r35172;
double r35178 = r35170 + r35177;
double r35179 = r35168 / r35178;
double r35180 = 1.0;
double r35181 = r35167 / r35161;
double r35182 = r35161 / r35174;
double r35183 = r35181 - r35182;
double r35184 = r35180 * r35183;
double r35185 = r35165 ? r35179 : r35184;
double r35186 = 2.6205431397402643e+84;
bool r35187 = r35161 <= r35186;
double r35188 = -r35161;
double r35189 = r35161 * r35161;
double r35190 = r35174 * r35167;
double r35191 = 4.0;
double r35192 = r35190 * r35191;
double r35193 = r35189 - r35192;
double r35194 = sqrt(r35193);
double r35195 = sqrt(r35194);
double r35196 = r35195 * r35195;
double r35197 = r35188 - r35196;
double r35198 = r35168 / r35197;
double r35199 = r35194 - r35161;
double r35200 = r35166 * r35174;
double r35201 = r35199 / r35200;
double r35202 = r35165 ? r35198 : r35201;
double r35203 = r35200 / r35171;
double r35204 = r35203 + r35170;
double r35205 = r35168 / r35204;
double r35206 = 6.0;
double r35207 = pow(r35161, r35206);
double r35208 = r35191 * r35174;
double r35209 = r35167 * r35208;
double r35210 = 3.0;
double r35211 = pow(r35209, r35210);
double r35212 = r35207 - r35211;
double r35213 = sqrt(r35212);
double r35214 = r35189 + r35209;
double r35215 = r35214 * r35209;
double r35216 = 4.0;
double r35217 = pow(r35161, r35216);
double r35218 = r35215 + r35217;
double r35219 = sqrt(r35218);
double r35220 = r35213 / r35219;
double r35221 = r35220 - r35161;
double r35222 = r35221 / r35200;
double r35223 = r35165 ? r35205 : r35222;
double r35224 = r35187 ? r35202 : r35223;
double r35225 = r35163 ? r35185 : r35224;
return r35225;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -7.943482039519134e+75Initial program 42.7
Simplified42.7
Taylor expanded around inf 42.7
Simplified42.7
Taylor expanded around -inf 9.5
Simplified4.3
Taylor expanded around 0 4.2
Simplified4.2
rmApplied add-cube-cbrt4.2
Applied associate-/r*4.2
Simplified4.2
if -7.943482039519134e+75 < b < 2.6205431397402643e+84Initial program 9.0
Simplified9.0
rmApplied add-sqr-sqrt9.0
Applied sqrt-prod9.1
Simplified9.1
Simplified9.1
if 2.6205431397402643e+84 < b Initial program 27.7
Simplified27.7
Taylor expanded around inf 5.8
Simplified2.5
rmApplied flip3--2.5
Applied sqrt-div2.5
Simplified2.5
Simplified2.5
Final simplification6.6
herbie shell --seed 2019194
(FPCore (a b c)
:name "jeff quadratic root 2"
(if (>= b 0.0) (/ (* 2.0 c) (- (- b) (sqrt (- (* b b) (* (* 4.0 a) c))))) (/ (+ (- b) (sqrt (- (* b b) (* (* 4.0 a) c)))) (* 2.0 a))))