\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 -1.763315479739403460017265344144602342789 \cdot 10^{89}:\\
\;\;\;\;\frac{2 \cdot \frac{c}{b} - \frac{b}{a} \cdot 2}{2}\\
\mathbf{elif}\;b \le 9.136492990928292133394320076175633285536 \cdot 10^{-23}:\\
\;\;\;\;\frac{\frac{\sqrt{b \cdot b - \left(c \cdot a\right) \cdot 4} - b}{a}}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{-2 \cdot \frac{c}{b}}{2}\\
\end{array}double f(double a, double b, double c) {
double r1924199 = b;
double r1924200 = -r1924199;
double r1924201 = r1924199 * r1924199;
double r1924202 = 4.0;
double r1924203 = a;
double r1924204 = r1924202 * r1924203;
double r1924205 = c;
double r1924206 = r1924204 * r1924205;
double r1924207 = r1924201 - r1924206;
double r1924208 = sqrt(r1924207);
double r1924209 = r1924200 + r1924208;
double r1924210 = 2.0;
double r1924211 = r1924210 * r1924203;
double r1924212 = r1924209 / r1924211;
return r1924212;
}
double f(double a, double b, double c) {
double r1924213 = b;
double r1924214 = -1.7633154797394035e+89;
bool r1924215 = r1924213 <= r1924214;
double r1924216 = 2.0;
double r1924217 = c;
double r1924218 = r1924217 / r1924213;
double r1924219 = r1924216 * r1924218;
double r1924220 = a;
double r1924221 = r1924213 / r1924220;
double r1924222 = 2.0;
double r1924223 = r1924221 * r1924222;
double r1924224 = r1924219 - r1924223;
double r1924225 = r1924224 / r1924216;
double r1924226 = 9.136492990928292e-23;
bool r1924227 = r1924213 <= r1924226;
double r1924228 = r1924213 * r1924213;
double r1924229 = r1924217 * r1924220;
double r1924230 = 4.0;
double r1924231 = r1924229 * r1924230;
double r1924232 = r1924228 - r1924231;
double r1924233 = sqrt(r1924232);
double r1924234 = r1924233 - r1924213;
double r1924235 = r1924234 / r1924220;
double r1924236 = r1924235 / r1924216;
double r1924237 = -2.0;
double r1924238 = r1924237 * r1924218;
double r1924239 = r1924238 / r1924216;
double r1924240 = r1924227 ? r1924236 : r1924239;
double r1924241 = r1924215 ? r1924225 : r1924240;
return r1924241;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -1.7633154797394035e+89Initial program 45.7
Simplified45.7
Taylor expanded around -inf 3.9
if -1.7633154797394035e+89 < b < 9.136492990928292e-23Initial program 15.0
Simplified15.0
rmApplied div-inv15.1
rmApplied un-div-inv15.0
if 9.136492990928292e-23 < b Initial program 55.5
Simplified55.4
Taylor expanded around inf 6.7
Final simplification10.2
herbie shell --seed 2019172
(FPCore (a b c)
:name "Quadratic roots, full range"
(/ (+ (- b) (sqrt (- (* b b) (* (* 4.0 a) c)))) (* 2.0 a)))