\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}-\frac{\frac{a}{a} \cdot \frac{4 \cdot c}{\mathsf{fma}\left(\sqrt{\sqrt{\mathsf{fma}\left(-a, 4 \cdot c, b \cdot b\right)}}, \sqrt{\sqrt{\mathsf{fma}\left(-a, 4 \cdot c, b \cdot b\right)}}, b\right)}}{2}double f(double a, double b, double c) {
double r50146 = b;
double r50147 = -r50146;
double r50148 = r50146 * r50146;
double r50149 = 4.0;
double r50150 = a;
double r50151 = r50149 * r50150;
double r50152 = c;
double r50153 = r50151 * r50152;
double r50154 = r50148 - r50153;
double r50155 = sqrt(r50154);
double r50156 = r50147 + r50155;
double r50157 = 2.0;
double r50158 = r50157 * r50150;
double r50159 = r50156 / r50158;
return r50159;
}
double f(double a, double b, double c) {
double r50160 = a;
double r50161 = r50160 / r50160;
double r50162 = 4.0;
double r50163 = c;
double r50164 = r50162 * r50163;
double r50165 = -r50160;
double r50166 = b;
double r50167 = r50166 * r50166;
double r50168 = fma(r50165, r50164, r50167);
double r50169 = sqrt(r50168);
double r50170 = sqrt(r50169);
double r50171 = fma(r50170, r50170, r50166);
double r50172 = r50164 / r50171;
double r50173 = r50161 * r50172;
double r50174 = 2.0;
double r50175 = r50173 / r50174;
double r50176 = -r50175;
return r50176;
}



Bits error versus a



Bits error versus b



Bits error versus c
Initial program 43.1
Simplified43.1
rmApplied flip--43.1
Simplified0.4
Simplified0.4
rmApplied add-sqr-sqrt0.5
Applied fma-def0.4
rmApplied *-un-lft-identity0.4
Applied *-un-lft-identity0.4
Applied *-un-lft-identity0.4
Applied times-frac0.4
Applied times-frac0.4
Simplified0.4
Simplified0.2
rmApplied add-sqr-sqrt0.2
Applied sqrt-prod0.3
Applied fma-def0.2
Final simplification0.2
herbie shell --seed 2019194 +o rules:numerics
(FPCore (a b c)
:name "Quadratic roots, medium range"
:pre (and (< 1.1102230246251565e-16 a 9007199254740992.0) (< 1.1102230246251565e-16 b 9007199254740992.0) (< 1.1102230246251565e-16 c 9007199254740992.0))
(/ (+ (- b) (sqrt (- (* b b) (* (* 4.0 a) c)))) (* 2.0 a)))