\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 -3.5940112039867074 \cdot 10^{100}:\\
\;\;\;\;1 \cdot \left(\frac{c}{b} - \frac{b}{a}\right)\\
\mathbf{elif}\;b \le 2.267195199467958 \cdot 10^{-82}:\\
\;\;\;\;\frac{1}{\frac{2 \cdot a}{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}}\\
\mathbf{else}:\\
\;\;\;\;-1 \cdot \frac{c}{b}\\
\end{array}double f(double a, double b, double c) {
double r57560 = b;
double r57561 = -r57560;
double r57562 = r57560 * r57560;
double r57563 = 4.0;
double r57564 = a;
double r57565 = r57563 * r57564;
double r57566 = c;
double r57567 = r57565 * r57566;
double r57568 = r57562 - r57567;
double r57569 = sqrt(r57568);
double r57570 = r57561 + r57569;
double r57571 = 2.0;
double r57572 = r57571 * r57564;
double r57573 = r57570 / r57572;
return r57573;
}
double f(double a, double b, double c) {
double r57574 = b;
double r57575 = -3.5940112039867074e+100;
bool r57576 = r57574 <= r57575;
double r57577 = 1.0;
double r57578 = c;
double r57579 = r57578 / r57574;
double r57580 = a;
double r57581 = r57574 / r57580;
double r57582 = r57579 - r57581;
double r57583 = r57577 * r57582;
double r57584 = 2.267195199467958e-82;
bool r57585 = r57574 <= r57584;
double r57586 = 1.0;
double r57587 = 2.0;
double r57588 = r57587 * r57580;
double r57589 = -r57574;
double r57590 = r57574 * r57574;
double r57591 = 4.0;
double r57592 = r57591 * r57580;
double r57593 = r57592 * r57578;
double r57594 = r57590 - r57593;
double r57595 = sqrt(r57594);
double r57596 = r57589 + r57595;
double r57597 = r57588 / r57596;
double r57598 = r57586 / r57597;
double r57599 = -1.0;
double r57600 = r57599 * r57579;
double r57601 = r57585 ? r57598 : r57600;
double r57602 = r57576 ? r57583 : r57601;
return r57602;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -3.5940112039867074e+100Initial program 47.3
Taylor expanded around -inf 3.8
Simplified3.8
if -3.5940112039867074e+100 < b < 2.267195199467958e-82Initial program 12.0
rmApplied clear-num12.1
if 2.267195199467958e-82 < b Initial program 52.9
Taylor expanded around inf 9.0
Final simplification9.6
herbie shell --seed 2020057
(FPCore (a b c)
:name "Quadratic roots, full range"
:precision binary64
(/ (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)))