\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 r95557 = b;
double r95558 = -r95557;
double r95559 = r95557 * r95557;
double r95560 = 3.0;
double r95561 = a;
double r95562 = r95560 * r95561;
double r95563 = c;
double r95564 = r95562 * r95563;
double r95565 = r95559 - r95564;
double r95566 = sqrt(r95565);
double r95567 = r95558 + r95566;
double r95568 = r95567 / r95562;
return r95568;
}
double f(double a, double b, double c) {
double r95569 = b;
double r95570 = 2.0;
double r95571 = pow(r95569, r95570);
double r95572 = r95571 - r95571;
double r95573 = 3.0;
double r95574 = a;
double r95575 = r95573 * r95574;
double r95576 = c;
double r95577 = r95575 * r95576;
double r95578 = r95572 + r95577;
double r95579 = -r95569;
double r95580 = r95569 * r95569;
double r95581 = r95580 - r95577;
double r95582 = sqrt(r95581);
double r95583 = r95579 - r95582;
double r95584 = r95578 / r95583;
double r95585 = r95584 / r95575;
return r95585;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
Initial program 52.9
rmApplied flip-+52.9
Simplified0.5
rmApplied associate-*r*0.4
Final simplification0.4
herbie shell --seed 2020065
(FPCore (a b c)
:name "Cubic critical, wide range"
:precision binary64
:pre (and (< 4.9303800000000003e-32 a 2.02824e+31) (< 4.9303800000000003e-32 b 2.02824e+31) (< 4.9303800000000003e-32 c 2.02824e+31))
(/ (+ (- b) (sqrt (- (* b b) (* (* 3 a) c)))) (* 3 a)))