\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\frac{\frac{\left(c \cdot a\right) \cdot 4}{a}}{-\left(\sqrt{b \cdot b - \left(c \cdot a\right) \cdot 4} + b\right)} \cdot \frac{1}{2}double f(double a, double b, double c) {
double r26995 = b;
double r26996 = -r26995;
double r26997 = r26995 * r26995;
double r26998 = 4.0;
double r26999 = a;
double r27000 = r26998 * r26999;
double r27001 = c;
double r27002 = r27000 * r27001;
double r27003 = r26997 - r27002;
double r27004 = sqrt(r27003);
double r27005 = r26996 + r27004;
double r27006 = 2.0;
double r27007 = r27006 * r26999;
double r27008 = r27005 / r27007;
return r27008;
}
double f(double a, double b, double c) {
double r27009 = c;
double r27010 = a;
double r27011 = r27009 * r27010;
double r27012 = 4.0;
double r27013 = r27011 * r27012;
double r27014 = r27013 / r27010;
double r27015 = b;
double r27016 = r27015 * r27015;
double r27017 = r27016 - r27013;
double r27018 = sqrt(r27017);
double r27019 = r27018 + r27015;
double r27020 = -r27019;
double r27021 = r27014 / r27020;
double r27022 = 1.0;
double r27023 = 2.0;
double r27024 = r27022 / r27023;
double r27025 = r27021 * r27024;
return r27025;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
Initial program 52.6
rmApplied flip-+52.6
Simplified0.4
rmApplied *-un-lft-identity0.4
Applied *-un-lft-identity0.4
Applied times-frac0.4
Applied times-frac0.4
Simplified0.4
Simplified0.2
Final simplification0.2
herbie shell --seed 2019179
(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)))