\frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{3 \cdot a}\frac{\frac{\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 r115090 = b;
double r115091 = -r115090;
double r115092 = r115090 * r115090;
double r115093 = 3.0;
double r115094 = a;
double r115095 = r115093 * r115094;
double r115096 = c;
double r115097 = r115095 * r115096;
double r115098 = r115092 - r115097;
double r115099 = sqrt(r115098);
double r115100 = r115091 + r115099;
double r115101 = r115100 / r115095;
return r115101;
}
double f(double a, double b, double c) {
double r115102 = 3.0;
double r115103 = a;
double r115104 = r115102 * r115103;
double r115105 = c;
double r115106 = r115104 * r115105;
double r115107 = b;
double r115108 = -r115107;
double r115109 = r115107 * r115107;
double r115110 = r115109 - r115106;
double r115111 = sqrt(r115110);
double r115112 = r115108 - r115111;
double r115113 = r115106 / r115112;
double r115114 = r115113 / r115104;
return r115114;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
Initial program 43.6
rmApplied flip-+43.6
Simplified0.4
rmApplied *-un-lft-identity0.4
Applied associate-/r*0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2019323
(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)))