\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 -7.397994825724217 \cdot 10^{+150}:\\
\;\;\;\;\frac{\left(\frac{c}{b} - \frac{b}{a}\right) \cdot 2}{2}\\
\mathbf{elif}\;b \le 1.2158870426682226 \cdot 10^{-82}:\\
\;\;\;\;\frac{\frac{1}{\frac{a}{\sqrt{b \cdot b - \left(a \cdot c\right) \cdot 4}}} - \frac{b}{a}}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{-2 \cdot \frac{c}{b}}{2}\\
\end{array}double f(double a, double b, double c) {
double r1901503 = b;
double r1901504 = -r1901503;
double r1901505 = r1901503 * r1901503;
double r1901506 = 4.0;
double r1901507 = a;
double r1901508 = r1901506 * r1901507;
double r1901509 = c;
double r1901510 = r1901508 * r1901509;
double r1901511 = r1901505 - r1901510;
double r1901512 = sqrt(r1901511);
double r1901513 = r1901504 + r1901512;
double r1901514 = 2.0;
double r1901515 = r1901514 * r1901507;
double r1901516 = r1901513 / r1901515;
return r1901516;
}
double f(double a, double b, double c) {
double r1901517 = b;
double r1901518 = -7.397994825724217e+150;
bool r1901519 = r1901517 <= r1901518;
double r1901520 = c;
double r1901521 = r1901520 / r1901517;
double r1901522 = a;
double r1901523 = r1901517 / r1901522;
double r1901524 = r1901521 - r1901523;
double r1901525 = 2.0;
double r1901526 = r1901524 * r1901525;
double r1901527 = r1901526 / r1901525;
double r1901528 = 1.2158870426682226e-82;
bool r1901529 = r1901517 <= r1901528;
double r1901530 = 1.0;
double r1901531 = r1901517 * r1901517;
double r1901532 = r1901522 * r1901520;
double r1901533 = 4.0;
double r1901534 = r1901532 * r1901533;
double r1901535 = r1901531 - r1901534;
double r1901536 = sqrt(r1901535);
double r1901537 = r1901522 / r1901536;
double r1901538 = r1901530 / r1901537;
double r1901539 = r1901538 - r1901523;
double r1901540 = r1901539 / r1901525;
double r1901541 = -2.0;
double r1901542 = r1901541 * r1901521;
double r1901543 = r1901542 / r1901525;
double r1901544 = r1901529 ? r1901540 : r1901543;
double r1901545 = r1901519 ? r1901527 : r1901544;
return r1901545;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -7.397994825724217e+150Initial program 59.1
Simplified59.1
Taylor expanded around -inf 2.2
Simplified2.2
if -7.397994825724217e+150 < b < 1.2158870426682226e-82Initial program 11.8
Simplified11.7
rmApplied div-sub11.7
rmApplied clear-num11.8
if 1.2158870426682226e-82 < b Initial program 52.3
Simplified52.3
Taylor expanded around inf 9.9
Final simplification10.0
herbie shell --seed 2019162
(FPCore (a b c)
:name "Quadratic roots, full range"
(/ (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)))