\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 r134027 = b;
double r134028 = -r134027;
double r134029 = r134027 * r134027;
double r134030 = 3.0;
double r134031 = a;
double r134032 = r134030 * r134031;
double r134033 = c;
double r134034 = r134032 * r134033;
double r134035 = r134029 - r134034;
double r134036 = sqrt(r134035);
double r134037 = r134028 + r134036;
double r134038 = r134037 / r134032;
return r134038;
}
double f(double a, double b, double c) {
double r134039 = b;
double r134040 = 2.0;
double r134041 = pow(r134039, r134040);
double r134042 = r134041 - r134041;
double r134043 = 3.0;
double r134044 = a;
double r134045 = r134043 * r134044;
double r134046 = c;
double r134047 = r134045 * r134046;
double r134048 = r134042 + r134047;
double r134049 = -r134039;
double r134050 = r134039 * r134039;
double r134051 = r134050 - r134047;
double r134052 = sqrt(r134051);
double r134053 = r134049 - r134052;
double r134054 = r134048 / r134053;
double r134055 = r134054 / r134045;
return r134055;
}



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 2019318
(FPCore (a b c)
:name "Cubic critical, medium range"
:precision binary64
:pre (and (< 1.11022e-16 a 9.0072e15) (< 1.11022e-16 b 9.0072e15) (< 1.11022e-16 c 9.0072e15))
(/ (+ (- b) (sqrt (- (* b b) (* (* 3 a) c)))) (* 3 a)))