\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\frac{0 + 4 \cdot \left(a \cdot c\right)}{\left(2 \cdot a\right) \cdot \left(\left(-b\right) - \sqrt{\frac{\mathsf{fma}\left(b, b, \left(4 \cdot a\right) \cdot c\right) \cdot \left(b \cdot b - \left(4 \cdot a\right) \cdot c\right)}{\mathsf{fma}\left(b, b, \left(4 \cdot a\right) \cdot c\right)}}\right)}double f(double a, double b, double c) {
double r34159 = b;
double r34160 = -r34159;
double r34161 = r34159 * r34159;
double r34162 = 4.0;
double r34163 = a;
double r34164 = r34162 * r34163;
double r34165 = c;
double r34166 = r34164 * r34165;
double r34167 = r34161 - r34166;
double r34168 = sqrt(r34167);
double r34169 = r34160 + r34168;
double r34170 = 2.0;
double r34171 = r34170 * r34163;
double r34172 = r34169 / r34171;
return r34172;
}
double f(double a, double b, double c) {
double r34173 = 0.0;
double r34174 = 4.0;
double r34175 = a;
double r34176 = c;
double r34177 = r34175 * r34176;
double r34178 = r34174 * r34177;
double r34179 = r34173 + r34178;
double r34180 = 2.0;
double r34181 = r34180 * r34175;
double r34182 = b;
double r34183 = -r34182;
double r34184 = r34174 * r34175;
double r34185 = r34184 * r34176;
double r34186 = fma(r34182, r34182, r34185);
double r34187 = r34182 * r34182;
double r34188 = r34187 - r34185;
double r34189 = r34186 * r34188;
double r34190 = r34189 / r34186;
double r34191 = sqrt(r34190);
double r34192 = r34183 - r34191;
double r34193 = r34181 * r34192;
double r34194 = r34179 / r34193;
return r34194;
}



Bits error versus a



Bits error versus b



Bits error versus c
Initial program 44.0
rmApplied flip-+44.0
Simplified0.4
rmApplied div-inv0.5
Applied associate-/l*0.5
Simplified0.4
rmApplied flip--0.4
Simplified0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2020018 +o rules:numerics
(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)))