\frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{3 \cdot a}\frac{\frac{3 \cdot a}{\frac{b + \sqrt{\mathsf{fma}\left(3, \left(-c\right) \cdot a, b \cdot b\right)}}{-c}}}{3 \cdot a}double f(double a, double b, double c) {
double r112565 = b;
double r112566 = -r112565;
double r112567 = r112565 * r112565;
double r112568 = 3.0;
double r112569 = a;
double r112570 = r112568 * r112569;
double r112571 = c;
double r112572 = r112570 * r112571;
double r112573 = r112567 - r112572;
double r112574 = sqrt(r112573);
double r112575 = r112566 + r112574;
double r112576 = r112575 / r112570;
return r112576;
}
double f(double a, double b, double c) {
double r112577 = 3.0;
double r112578 = a;
double r112579 = r112577 * r112578;
double r112580 = b;
double r112581 = c;
double r112582 = -r112581;
double r112583 = r112582 * r112578;
double r112584 = r112580 * r112580;
double r112585 = fma(r112577, r112583, r112584);
double r112586 = sqrt(r112585);
double r112587 = r112580 + r112586;
double r112588 = r112587 / r112582;
double r112589 = r112579 / r112588;
double r112590 = r112589 / r112579;
return r112590;
}



Bits error versus a



Bits error versus b



Bits error versus c
Initial program 43.9
rmApplied flip-+43.9
Simplified0.5
Simplified0.5
rmApplied frac-2neg0.5
Simplified0.4
Simplified0.4
rmApplied associate-/l*0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2019179 +o rules:numerics
(FPCore (a b c)
:name "Cubic critical, medium range"
:pre (and (< 1.1102230246251565e-16 a 9007199254740992.0) (< 1.1102230246251565e-16 b 9007199254740992.0) (< 1.1102230246251565e-16 c 9007199254740992.0))
(/ (+ (- b) (sqrt (- (* b b) (* (* 3.0 a) c)))) (* 3.0 a)))