\frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{3 \cdot a}\frac{\frac{1}{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}} \cdot \left(\left(3 \cdot a\right) \cdot c\right)}{3 \cdot a}double f(double a, double b, double c) {
double r100465 = b;
double r100466 = -r100465;
double r100467 = r100465 * r100465;
double r100468 = 3.0;
double r100469 = a;
double r100470 = r100468 * r100469;
double r100471 = c;
double r100472 = r100470 * r100471;
double r100473 = r100467 - r100472;
double r100474 = sqrt(r100473);
double r100475 = r100466 + r100474;
double r100476 = r100475 / r100470;
return r100476;
}
double f(double a, double b, double c) {
double r100477 = 1.0;
double r100478 = b;
double r100479 = -r100478;
double r100480 = r100478 * r100478;
double r100481 = 3.0;
double r100482 = a;
double r100483 = r100481 * r100482;
double r100484 = c;
double r100485 = r100483 * r100484;
double r100486 = r100480 - r100485;
double r100487 = sqrt(r100486);
double r100488 = r100479 - r100487;
double r100489 = r100477 / r100488;
double r100490 = r100489 * r100485;
double r100491 = r100490 / r100483;
return r100491;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
Initial program 43.9
rmApplied flip-+44.0
Simplified0.4
rmApplied div-inv0.5
Final simplification0.5
herbie shell --seed 2019199
(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)))