\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 r85925 = b;
double r85926 = -r85925;
double r85927 = r85925 * r85925;
double r85928 = 3.0;
double r85929 = a;
double r85930 = r85928 * r85929;
double r85931 = c;
double r85932 = r85930 * r85931;
double r85933 = r85927 - r85932;
double r85934 = sqrt(r85933);
double r85935 = r85926 + r85934;
double r85936 = r85935 / r85930;
return r85936;
}
double f(double a, double b, double c) {
double r85937 = b;
double r85938 = 2.0;
double r85939 = pow(r85937, r85938);
double r85940 = r85939 - r85939;
double r85941 = 3.0;
double r85942 = a;
double r85943 = r85941 * r85942;
double r85944 = c;
double r85945 = r85943 * r85944;
double r85946 = r85940 + r85945;
double r85947 = -r85937;
double r85948 = r85937 * r85937;
double r85949 = r85948 - r85945;
double r85950 = sqrt(r85949);
double r85951 = r85947 - r85950;
double r85952 = r85946 / r85951;
double r85953 = r85952 / r85943;
return r85953;
}



Bits error versus a



Bits error versus b



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