\frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{3 \cdot a}\begin{array}{l}
\mathbf{if}\;b \le -4.898678560179045 \cdot 10^{+152}:\\
\;\;\;\;\frac{\left(\left(\frac{3}{2} \cdot c\right) \cdot \frac{a}{b} - b\right) - b}{a \cdot 3}\\
\mathbf{elif}\;b \le 1.487621333916267 \cdot 10^{+25}:\\
\;\;\;\;\frac{\sqrt{b \cdot b - \sqrt{3} \cdot \left(\sqrt{3} \cdot \left(a \cdot c\right)\right)} - b}{a \cdot 3}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{-3}{2} \cdot \frac{a \cdot c}{b}}{a \cdot 3}\\
\end{array}double f(double a, double b, double c) {
double r4215754 = b;
double r4215755 = -r4215754;
double r4215756 = r4215754 * r4215754;
double r4215757 = 3.0;
double r4215758 = a;
double r4215759 = r4215757 * r4215758;
double r4215760 = c;
double r4215761 = r4215759 * r4215760;
double r4215762 = r4215756 - r4215761;
double r4215763 = sqrt(r4215762);
double r4215764 = r4215755 + r4215763;
double r4215765 = r4215764 / r4215759;
return r4215765;
}
double f(double a, double b, double c) {
double r4215766 = b;
double r4215767 = -4.898678560179045e+152;
bool r4215768 = r4215766 <= r4215767;
double r4215769 = 1.5;
double r4215770 = c;
double r4215771 = r4215769 * r4215770;
double r4215772 = a;
double r4215773 = r4215772 / r4215766;
double r4215774 = r4215771 * r4215773;
double r4215775 = r4215774 - r4215766;
double r4215776 = r4215775 - r4215766;
double r4215777 = 3.0;
double r4215778 = r4215772 * r4215777;
double r4215779 = r4215776 / r4215778;
double r4215780 = 1.487621333916267e+25;
bool r4215781 = r4215766 <= r4215780;
double r4215782 = r4215766 * r4215766;
double r4215783 = sqrt(r4215777);
double r4215784 = r4215772 * r4215770;
double r4215785 = r4215783 * r4215784;
double r4215786 = r4215783 * r4215785;
double r4215787 = r4215782 - r4215786;
double r4215788 = sqrt(r4215787);
double r4215789 = r4215788 - r4215766;
double r4215790 = r4215789 / r4215778;
double r4215791 = -1.5;
double r4215792 = r4215784 / r4215766;
double r4215793 = r4215791 * r4215792;
double r4215794 = r4215793 / r4215778;
double r4215795 = r4215781 ? r4215790 : r4215794;
double r4215796 = r4215768 ? r4215779 : r4215795;
return r4215796;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -4.898678560179045e+152Initial program 60.5
Simplified60.5
Taylor expanded around 0 60.5
Simplified60.5
rmApplied add-sqr-sqrt60.5
Applied associate-*r*60.5
Taylor expanded around -inf 9.7
Simplified2.0
if -4.898678560179045e+152 < b < 1.487621333916267e+25Initial program 16.2
Simplified16.2
Taylor expanded around 0 16.3
Simplified16.3
rmApplied add-sqr-sqrt16.3
Applied associate-*r*16.3
if 1.487621333916267e+25 < b Initial program 55.6
Simplified55.6
Taylor expanded around inf 16.1
Final simplification14.7
herbie shell --seed 2019144
(FPCore (a b c)
:name "Cubic critical"
(/ (+ (- b) (sqrt (- (* b b) (* (* 3 a) c)))) (* 3 a)))