\frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{3 \cdot a}\frac{c \cdot \left(a \cdot 3\right) + \left(b \cdot b - b \cdot b\right)}{\left(\sqrt{b \cdot b - c \cdot \left(a \cdot 3\right)} + b\right) \cdot \left(\left(-a\right) \cdot 3\right)}double f(double a, double b, double c) {
double r171443 = b;
double r171444 = -r171443;
double r171445 = r171443 * r171443;
double r171446 = 3.0;
double r171447 = a;
double r171448 = r171446 * r171447;
double r171449 = c;
double r171450 = r171448 * r171449;
double r171451 = r171445 - r171450;
double r171452 = sqrt(r171451);
double r171453 = r171444 + r171452;
double r171454 = r171453 / r171448;
return r171454;
}
double f(double a, double b, double c) {
double r171455 = c;
double r171456 = a;
double r171457 = 3.0;
double r171458 = r171456 * r171457;
double r171459 = r171455 * r171458;
double r171460 = b;
double r171461 = r171460 * r171460;
double r171462 = r171461 - r171461;
double r171463 = r171459 + r171462;
double r171464 = r171461 - r171459;
double r171465 = sqrt(r171464);
double r171466 = r171465 + r171460;
double r171467 = -r171456;
double r171468 = r171467 * r171457;
double r171469 = r171466 * r171468;
double r171470 = r171463 / r171469;
return r171470;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
Initial program 43.2
rmApplied flip-+43.2
Simplified0.4
Simplified0.4
Taylor expanded around 0 0.4
Simplified0.4
rmApplied div-inv0.5
Applied associate-/l*0.5
Simplified0.4
Final simplification0.4
herbie shell --seed 2019194
(FPCore (a b c)
:name "Cubic critical, medium range"
:pre (and (< 1.1102230246251565e-16 a 9007199254740992.0) (< 1.1102230246251565e-16 b 9007199254740992.0) (< 1.1102230246251565e-16 c 9007199254740992.0))
(/ (+ (- b) (sqrt (- (* b b) (* (* 3.0 a) c)))) (* 3.0 a)))