\frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{3 \cdot a}\frac{3 \cdot \left(a \cdot c\right)}{\left(a \cdot \left(\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}\right)\right) \cdot 3}double f(double a, double b, double c) {
double r65295 = b;
double r65296 = -r65295;
double r65297 = r65295 * r65295;
double r65298 = 3.0;
double r65299 = a;
double r65300 = r65298 * r65299;
double r65301 = c;
double r65302 = r65300 * r65301;
double r65303 = r65297 - r65302;
double r65304 = sqrt(r65303);
double r65305 = r65296 + r65304;
double r65306 = r65305 / r65300;
return r65306;
}
double f(double a, double b, double c) {
double r65307 = 3.0;
double r65308 = a;
double r65309 = c;
double r65310 = r65308 * r65309;
double r65311 = r65307 * r65310;
double r65312 = b;
double r65313 = -r65312;
double r65314 = r65312 * r65312;
double r65315 = r65307 * r65308;
double r65316 = r65315 * r65309;
double r65317 = r65314 - r65316;
double r65318 = sqrt(r65317);
double r65319 = r65313 - r65318;
double r65320 = r65308 * r65319;
double r65321 = r65320 * r65307;
double r65322 = r65311 / r65321;
return r65322;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
Initial program 44.1
rmApplied flip-+44.1
Simplified0.5
rmApplied div-inv0.6
Applied associate-/l*0.6
Simplified0.5
Final simplification0.5
herbie shell --seed 2019303
(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)))