\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\frac{\frac{\frac{\left(4 \cdot a\right) \cdot c}{2}}{\left(-b\right) - \sqrt{\sqrt[3]{\left(\left(b \cdot b - \left(4 \cdot a\right) \cdot c\right) \cdot \left(b \cdot b - \left(4 \cdot a\right) \cdot c\right)\right) \cdot \left(b \cdot b - \left(4 \cdot a\right) \cdot c\right)}}}}{a}double f(double a, double b, double c) {
double r38715 = b;
double r38716 = -r38715;
double r38717 = r38715 * r38715;
double r38718 = 4.0;
double r38719 = a;
double r38720 = r38718 * r38719;
double r38721 = c;
double r38722 = r38720 * r38721;
double r38723 = r38717 - r38722;
double r38724 = sqrt(r38723);
double r38725 = r38716 + r38724;
double r38726 = 2.0;
double r38727 = r38726 * r38719;
double r38728 = r38725 / r38727;
return r38728;
}
double f(double a, double b, double c) {
double r38729 = 4.0;
double r38730 = a;
double r38731 = r38729 * r38730;
double r38732 = c;
double r38733 = r38731 * r38732;
double r38734 = 2.0;
double r38735 = r38733 / r38734;
double r38736 = b;
double r38737 = -r38736;
double r38738 = r38736 * r38736;
double r38739 = r38738 - r38733;
double r38740 = r38739 * r38739;
double r38741 = r38740 * r38739;
double r38742 = cbrt(r38741);
double r38743 = sqrt(r38742);
double r38744 = r38737 - r38743;
double r38745 = r38735 / r38744;
double r38746 = r38745 / r38730;
return r38746;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
Initial program 28.5
rmApplied flip-+28.5
Simplified0.5
rmApplied div-inv0.5
Applied times-frac0.5
Simplified0.5
rmApplied *-un-lft-identity0.5
Applied *-un-lft-identity0.5
Applied times-frac0.5
Applied associate-*l*0.5
Simplified0.5
rmApplied add-cbrt-cube0.5
Final simplification0.5
herbie shell --seed 2020047
(FPCore (a b c)
:name "Quadratic roots, narrow range"
:precision binary64
:pre (and (< 1.0536712127723509e-08 a 94906265.62425156) (< 1.0536712127723509e-08 b 94906265.62425156) (< 1.0536712127723509e-08 c 94906265.62425156))
(/ (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)))