\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 r113868 = b;
double r113869 = -r113868;
double r113870 = r113868 * r113868;
double r113871 = 3.0;
double r113872 = a;
double r113873 = r113871 * r113872;
double r113874 = c;
double r113875 = r113873 * r113874;
double r113876 = r113870 - r113875;
double r113877 = sqrt(r113876);
double r113878 = r113869 + r113877;
double r113879 = r113878 / r113873;
return r113879;
}
double f(double a, double b, double c) {
double r113880 = b;
double r113881 = 2.0;
double r113882 = pow(r113880, r113881);
double r113883 = r113882 - r113882;
double r113884 = 3.0;
double r113885 = a;
double r113886 = r113884 * r113885;
double r113887 = c;
double r113888 = r113886 * r113887;
double r113889 = r113883 + r113888;
double r113890 = -r113880;
double r113891 = r113880 * r113880;
double r113892 = r113891 - r113888;
double r113893 = sqrt(r113892);
double r113894 = r113890 - r113893;
double r113895 = r113889 / r113894;
double r113896 = r113895 / r113886;
return r113896;
}



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
Final simplification0.4
herbie shell --seed 2020060
(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)))