\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\frac{\frac{\left(4 \cdot a\right) \cdot c}{\left(-b\right) - \sqrt{\frac{\frac{{b}^{4} - \left(\left(a \cdot c\right) \cdot 4\right) \cdot \left(\left(a \cdot c\right) \cdot 4\right)}{\sqrt{b \cdot b + \left(a \cdot c\right) \cdot 4}}}{\sqrt{b \cdot b + \left(a \cdot c\right) \cdot 4}}}}}{2 \cdot a}double f(double a, double b, double c) {
double r38264 = b;
double r38265 = -r38264;
double r38266 = r38264 * r38264;
double r38267 = 4.0;
double r38268 = a;
double r38269 = r38267 * r38268;
double r38270 = c;
double r38271 = r38269 * r38270;
double r38272 = r38266 - r38271;
double r38273 = sqrt(r38272);
double r38274 = r38265 + r38273;
double r38275 = 2.0;
double r38276 = r38275 * r38268;
double r38277 = r38274 / r38276;
return r38277;
}
double f(double a, double b, double c) {
double r38278 = 4.0;
double r38279 = a;
double r38280 = r38278 * r38279;
double r38281 = c;
double r38282 = r38280 * r38281;
double r38283 = b;
double r38284 = -r38283;
double r38285 = 4.0;
double r38286 = pow(r38283, r38285);
double r38287 = r38279 * r38281;
double r38288 = r38287 * r38278;
double r38289 = r38288 * r38288;
double r38290 = r38286 - r38289;
double r38291 = r38283 * r38283;
double r38292 = r38291 + r38288;
double r38293 = sqrt(r38292);
double r38294 = r38290 / r38293;
double r38295 = r38294 / r38293;
double r38296 = sqrt(r38295);
double r38297 = r38284 - r38296;
double r38298 = r38282 / r38297;
double r38299 = 2.0;
double r38300 = r38299 * r38279;
double r38301 = r38298 / r38300;
return r38301;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
Initial program 52.6
rmApplied flip-+52.6
Simplified0.4
rmApplied flip--0.4
Simplified0.4
Simplified0.4
rmApplied add-sqr-sqrt0.4
Applied associate-/r*0.4
Final simplification0.4
herbie shell --seed 2019195
(FPCore (a b c)
:name "Quadratic roots, wide range"
:pre (and (< 4.930380657631324e-32 a 2.028240960365167e+31) (< 4.930380657631324e-32 b 2.028240960365167e+31) (< 4.930380657631324e-32 c 2.028240960365167e+31))
(/ (+ (- b) (sqrt (- (* b b) (* (* 4.0 a) c)))) (* 2.0 a)))