\frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{3 \cdot a}\frac{\frac{c \cdot \left(3 \cdot a\right)}{3 \cdot a}}{\left(-b\right) - \sqrt{\frac{{b}^{6} - {\left(\left(3 \cdot a\right) \cdot c\right)}^{3}}{{b}^{4} + \left(\left(3 \cdot a\right) \cdot c\right) \cdot \left(b \cdot b + \left(3 \cdot a\right) \cdot c\right)}}}double f(double a, double b, double c) {
double r95296 = b;
double r95297 = -r95296;
double r95298 = r95296 * r95296;
double r95299 = 3.0;
double r95300 = a;
double r95301 = r95299 * r95300;
double r95302 = c;
double r95303 = r95301 * r95302;
double r95304 = r95298 - r95303;
double r95305 = sqrt(r95304);
double r95306 = r95297 + r95305;
double r95307 = r95306 / r95301;
return r95307;
}
double f(double a, double b, double c) {
double r95308 = c;
double r95309 = 3.0;
double r95310 = a;
double r95311 = r95309 * r95310;
double r95312 = r95308 * r95311;
double r95313 = r95312 / r95311;
double r95314 = b;
double r95315 = -r95314;
double r95316 = 6.0;
double r95317 = pow(r95314, r95316);
double r95318 = r95311 * r95308;
double r95319 = 3.0;
double r95320 = pow(r95318, r95319);
double r95321 = r95317 - r95320;
double r95322 = 4.0;
double r95323 = pow(r95314, r95322);
double r95324 = r95314 * r95314;
double r95325 = r95324 + r95318;
double r95326 = r95318 * r95325;
double r95327 = r95323 + r95326;
double r95328 = r95321 / r95327;
double r95329 = sqrt(r95328);
double r95330 = r95315 - r95329;
double r95331 = r95313 / r95330;
return r95331;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
Initial program 28.8
rmApplied flip-+28.8
Simplified0.5
rmApplied div-inv0.5
rmApplied *-un-lft-identity0.5
Applied *-un-lft-identity0.5
Applied times-frac0.5
Applied associate-*l*0.5
Simplified0.3
rmApplied flip3--0.4
Simplified0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2019304
(FPCore (a b c)
:name "Cubic critical, narrow range"
:precision binary64
:pre (and (< 1.05367121277235087e-8 a 94906265.6242515594) (< 1.05367121277235087e-8 b 94906265.6242515594) (< 1.05367121277235087e-8 c 94906265.6242515594))
(/ (+ (- b) (sqrt (- (* b b) (* (* 3 a) c)))) (* 3 a)))