\frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{3 \cdot a}\frac{\left({b}^{2} - {b}^{2}\right) + \left(3 \cdot a\right) \cdot c}{\left(3 \cdot a\right) \cdot \left(\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}\right)}double f(double a, double b, double c) {
double r179232 = b;
double r179233 = -r179232;
double r179234 = r179232 * r179232;
double r179235 = 3.0;
double r179236 = a;
double r179237 = r179235 * r179236;
double r179238 = c;
double r179239 = r179237 * r179238;
double r179240 = r179234 - r179239;
double r179241 = sqrt(r179240);
double r179242 = r179233 + r179241;
double r179243 = r179242 / r179237;
return r179243;
}
double f(double a, double b, double c) {
double r179244 = b;
double r179245 = 2.0;
double r179246 = pow(r179244, r179245);
double r179247 = r179246 - r179246;
double r179248 = 3.0;
double r179249 = a;
double r179250 = r179248 * r179249;
double r179251 = c;
double r179252 = r179250 * r179251;
double r179253 = r179247 + r179252;
double r179254 = -r179244;
double r179255 = r179244 * r179244;
double r179256 = r179255 - r179252;
double r179257 = sqrt(r179256);
double r179258 = r179254 - r179257;
double r179259 = r179250 * r179258;
double r179260 = r179253 / r179259;
return r179260;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
Initial program 43.8
rmApplied flip-+43.8
Simplified0.5
rmApplied associate-*r*0.4
rmApplied div-inv0.5
Applied associate-/l*0.5
Simplified0.4
Final simplification0.4
herbie shell --seed 2020027
(FPCore (a b c)
:name "Cubic critical, medium range"
:precision binary64
:pre (and (< 1.11022e-16 a 9.0072e+15) (< 1.11022e-16 b 9.0072e+15) (< 1.11022e-16 c 9.0072e+15))
(/ (+ (- b) (sqrt (- (* b b) (* (* 3 a) c)))) (* 3 a)))