\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 -1.3307746224770355 \cdot 10^{+154}:\\
\;\;\;\;\frac{\left(\frac{3}{2} \cdot \frac{a \cdot c}{b} - b\right) - b}{3 \cdot a}\\
\mathbf{elif}\;b \le 1.502588793204478 \cdot 10^{-55}:\\
\;\;\;\;\frac{\sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c} - b}{3 \cdot a}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{-3}{2} \cdot \frac{a \cdot c}{b}}{3 \cdot a}\\
\end{array}double f(double a, double b, double c) {
double r2032158 = b;
double r2032159 = -r2032158;
double r2032160 = r2032158 * r2032158;
double r2032161 = 3.0;
double r2032162 = a;
double r2032163 = r2032161 * r2032162;
double r2032164 = c;
double r2032165 = r2032163 * r2032164;
double r2032166 = r2032160 - r2032165;
double r2032167 = sqrt(r2032166);
double r2032168 = r2032159 + r2032167;
double r2032169 = r2032168 / r2032163;
return r2032169;
}
double f(double a, double b, double c) {
double r2032170 = b;
double r2032171 = -1.3307746224770355e+154;
bool r2032172 = r2032170 <= r2032171;
double r2032173 = 1.5;
double r2032174 = a;
double r2032175 = c;
double r2032176 = r2032174 * r2032175;
double r2032177 = r2032176 / r2032170;
double r2032178 = r2032173 * r2032177;
double r2032179 = r2032178 - r2032170;
double r2032180 = r2032179 - r2032170;
double r2032181 = 3.0;
double r2032182 = r2032181 * r2032174;
double r2032183 = r2032180 / r2032182;
double r2032184 = 1.502588793204478e-55;
bool r2032185 = r2032170 <= r2032184;
double r2032186 = r2032170 * r2032170;
double r2032187 = r2032182 * r2032175;
double r2032188 = r2032186 - r2032187;
double r2032189 = sqrt(r2032188);
double r2032190 = r2032189 - r2032170;
double r2032191 = r2032190 / r2032182;
double r2032192 = -1.5;
double r2032193 = r2032192 * r2032177;
double r2032194 = r2032193 / r2032182;
double r2032195 = r2032185 ? r2032191 : r2032194;
double r2032196 = r2032172 ? r2032183 : r2032195;
return r2032196;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < -1.3307746224770355e+154Initial program 60.9
Simplified60.9
Taylor expanded around -inf 10.0
if -1.3307746224770355e+154 < b < 1.502588793204478e-55Initial program 12.8
Simplified12.8
if 1.502588793204478e-55 < b Initial program 52.9
Simplified52.9
Taylor expanded around inf 18.8
Final simplification14.8
herbie shell --seed 2019155
(FPCore (a b c)
:name "Cubic critical"
(/ (+ (- b) (sqrt (- (* b b) (* (* 3 a) c)))) (* 3 a)))