\frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{3 \cdot a}\frac{\frac{\left({b}^{2} - {b}^{2}\right) + \left(3 \cdot a\right) \cdot c}{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}{3 \cdot a}double f(double a, double b, double c) {
double r147473 = b;
double r147474 = -r147473;
double r147475 = r147473 * r147473;
double r147476 = 3.0;
double r147477 = a;
double r147478 = r147476 * r147477;
double r147479 = c;
double r147480 = r147478 * r147479;
double r147481 = r147475 - r147480;
double r147482 = sqrt(r147481);
double r147483 = r147474 + r147482;
double r147484 = r147483 / r147478;
return r147484;
}
double f(double a, double b, double c) {
double r147485 = b;
double r147486 = 2.0;
double r147487 = pow(r147485, r147486);
double r147488 = r147487 - r147487;
double r147489 = 3.0;
double r147490 = a;
double r147491 = r147489 * r147490;
double r147492 = c;
double r147493 = r147491 * r147492;
double r147494 = r147488 + r147493;
double r147495 = -r147485;
double r147496 = r147485 * r147485;
double r147497 = r147496 - r147493;
double r147498 = sqrt(r147497);
double r147499 = r147495 - r147498;
double r147500 = r147494 / r147499;
double r147501 = r147500 / r147491;
return r147501;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
Initial program 43.9
rmApplied flip-+43.9
Simplified0.5
rmApplied associate-*r*0.4
Final simplification0.4
herbie shell --seed 2019353
(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)))