\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 0.1273142573446926772984255649134865961969:\\
\;\;\;\;\frac{\frac{\left(b \cdot b - \left(4 \cdot a\right) \cdot c\right) - b \cdot b}{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} + b}}{2 \cdot a}\\
\mathbf{else}:\\
\;\;\;\;-1 \cdot \frac{c}{b}\\
\end{array}double f(double a, double b, double c) {
double r30642 = b;
double r30643 = -r30642;
double r30644 = r30642 * r30642;
double r30645 = 4.0;
double r30646 = a;
double r30647 = r30645 * r30646;
double r30648 = c;
double r30649 = r30647 * r30648;
double r30650 = r30644 - r30649;
double r30651 = sqrt(r30650);
double r30652 = r30643 + r30651;
double r30653 = 2.0;
double r30654 = r30653 * r30646;
double r30655 = r30652 / r30654;
return r30655;
}
double f(double a, double b, double c) {
double r30656 = b;
double r30657 = 0.12731425734469268;
bool r30658 = r30656 <= r30657;
double r30659 = r30656 * r30656;
double r30660 = 4.0;
double r30661 = a;
double r30662 = r30660 * r30661;
double r30663 = c;
double r30664 = r30662 * r30663;
double r30665 = r30659 - r30664;
double r30666 = r30665 - r30659;
double r30667 = sqrt(r30665);
double r30668 = r30667 + r30656;
double r30669 = r30666 / r30668;
double r30670 = 2.0;
double r30671 = r30670 * r30661;
double r30672 = r30669 / r30671;
double r30673 = -1.0;
double r30674 = r30663 / r30656;
double r30675 = r30673 * r30674;
double r30676 = r30658 ? r30672 : r30675;
return r30676;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < 0.12731425734469268Initial program 23.3
Simplified23.3
rmApplied flip--23.3
Simplified22.3
if 0.12731425734469268 < b Initial program 46.7
Simplified46.7
Taylor expanded around inf 9.9
Final simplification11.5
herbie shell --seed 2019209
(FPCore (a b c)
:name "Quadratic roots, medium range"
:precision binary64
:pre (and (< 1.11022e-16 a 9.0072e15) (< 1.11022e-16 b 9.0072e15) (< 1.11022e-16 c 9.0072e15))
(/ (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)))