\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\frac{1}{2} \cdot \frac{\frac{4 \cdot \left(a \cdot c\right)}{a}}{-\left(b + \sqrt{\frac{{\left(b \cdot b\right)}^{3} - {\left(\left(4 \cdot a\right) \cdot c\right)}^{3}}{\left(\left(4 \cdot a\right) \cdot c\right) \cdot \left(\left(4 \cdot a\right) \cdot c + {b}^{2}\right) + \left(b \cdot b\right) \cdot \left(b \cdot b\right)}}\right)}double f(double a, double b, double c) {
double r48125 = b;
double r48126 = -r48125;
double r48127 = r48125 * r48125;
double r48128 = 4.0;
double r48129 = a;
double r48130 = r48128 * r48129;
double r48131 = c;
double r48132 = r48130 * r48131;
double r48133 = r48127 - r48132;
double r48134 = sqrt(r48133);
double r48135 = r48126 + r48134;
double r48136 = 2.0;
double r48137 = r48136 * r48129;
double r48138 = r48135 / r48137;
return r48138;
}
double f(double a, double b, double c) {
double r48139 = 1.0;
double r48140 = 2.0;
double r48141 = r48139 / r48140;
double r48142 = 4.0;
double r48143 = a;
double r48144 = c;
double r48145 = r48143 * r48144;
double r48146 = r48142 * r48145;
double r48147 = r48146 / r48143;
double r48148 = b;
double r48149 = r48148 * r48148;
double r48150 = 3.0;
double r48151 = pow(r48149, r48150);
double r48152 = r48142 * r48143;
double r48153 = r48152 * r48144;
double r48154 = pow(r48153, r48150);
double r48155 = r48151 - r48154;
double r48156 = 2.0;
double r48157 = pow(r48148, r48156);
double r48158 = r48153 + r48157;
double r48159 = r48153 * r48158;
double r48160 = r48149 * r48149;
double r48161 = r48159 + r48160;
double r48162 = r48155 / r48161;
double r48163 = sqrt(r48162);
double r48164 = r48148 + r48163;
double r48165 = -r48164;
double r48166 = r48147 / r48165;
double r48167 = r48141 * r48166;
return r48167;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
Initial program 43.9
rmApplied flip-+43.9
Simplified0.4
rmApplied add-cbrt-cube0.5
Simplified0.4
rmApplied *-un-lft-identity0.4
Applied *-un-lft-identity0.4
Applied times-frac0.4
Applied times-frac0.4
Simplified0.4
Simplified0.2
rmApplied flip3--0.3
Simplified0.3
Final simplification0.3
herbie shell --seed 2019346
(FPCore (a b c)
:name "Quadratic roots, medium range"
:precision binary64
:pre (and (< 1.11022e-16 a 9.0072e+15) (< 1.11022e-16 b 9.0072e+15) (< 1.11022e-16 c 9.0072e+15))
(/ (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)))