\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 r121474 = b;
double r121475 = -r121474;
double r121476 = r121474 * r121474;
double r121477 = 3.0;
double r121478 = a;
double r121479 = r121477 * r121478;
double r121480 = c;
double r121481 = r121479 * r121480;
double r121482 = r121476 - r121481;
double r121483 = sqrt(r121482);
double r121484 = r121475 + r121483;
double r121485 = r121484 / r121479;
return r121485;
}
double f(double a, double b, double c) {
double r121486 = b;
double r121487 = 2.0;
double r121488 = pow(r121486, r121487);
double r121489 = r121488 - r121488;
double r121490 = 3.0;
double r121491 = a;
double r121492 = r121490 * r121491;
double r121493 = c;
double r121494 = r121492 * r121493;
double r121495 = r121489 + r121494;
double r121496 = -r121486;
double r121497 = r121486 * r121486;
double r121498 = r121497 - r121494;
double r121499 = sqrt(r121498);
double r121500 = r121496 - r121499;
double r121501 = r121495 / r121500;
double r121502 = r121501 / r121492;
return r121502;
}



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)))