\frac{\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{2 \cdot a}\begin{array}{l}
\mathbf{if}\;b \le -1.869662346631121401645595393947635525169 \cdot 10^{101}:\\
\;\;\;\;-1 \cdot \frac{c}{b}\\
\mathbf{elif}\;b \le 7.455592343308264166675918758902222662503 \cdot 10^{-170}:\\
\;\;\;\;\frac{2 \cdot c}{\sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)} - b}\\
\mathbf{else}:\\
\;\;\;\;1 \cdot \left(\frac{c}{b} - \frac{b}{a}\right)\\
\end{array}double f(double a, double b, double c) {
double r57234 = b;
double r57235 = -r57234;
double r57236 = r57234 * r57234;
double r57237 = 4.0;
double r57238 = a;
double r57239 = c;
double r57240 = r57238 * r57239;
double r57241 = r57237 * r57240;
double r57242 = r57236 - r57241;
double r57243 = sqrt(r57242);
double r57244 = r57235 - r57243;
double r57245 = 2.0;
double r57246 = r57245 * r57238;
double r57247 = r57244 / r57246;
return r57247;
}
double f(double a, double b, double c) {
double r57248 = b;
double r57249 = -1.8696623466311214e+101;
bool r57250 = r57248 <= r57249;
double r57251 = -1.0;
double r57252 = c;
double r57253 = r57252 / r57248;
double r57254 = r57251 * r57253;
double r57255 = 7.455592343308264e-170;
bool r57256 = r57248 <= r57255;
double r57257 = 2.0;
double r57258 = r57257 * r57252;
double r57259 = r57248 * r57248;
double r57260 = 4.0;
double r57261 = a;
double r57262 = r57261 * r57252;
double r57263 = r57260 * r57262;
double r57264 = r57259 - r57263;
double r57265 = sqrt(r57264);
double r57266 = r57265 - r57248;
double r57267 = r57258 / r57266;
double r57268 = 1.0;
double r57269 = r57248 / r57261;
double r57270 = r57253 - r57269;
double r57271 = r57268 * r57270;
double r57272 = r57256 ? r57267 : r57271;
double r57273 = r57250 ? r57254 : r57272;
return r57273;
}




Bits error versus a




Bits error versus b




Bits error versus c
Results
| Original | 33.9 |
|---|---|
| Target | 21.1 |
| Herbie | 11.3 |
if b < -1.8696623466311214e+101Initial program 59.8
Taylor expanded around -inf 2.5
if -1.8696623466311214e+101 < b < 7.455592343308264e-170Initial program 28.9
rmApplied flip--29.1
Simplified16.7
Simplified16.7
rmApplied div-inv16.7
rmApplied associate-*l/16.1
Simplified16.1
Taylor expanded around 0 11.1
if 7.455592343308264e-170 < b Initial program 23.0
Taylor expanded around inf 17.1
Simplified17.1
Final simplification11.3
herbie shell --seed 2019323
(FPCore (a b c)
:name "quadm (p42, negative)"
:precision binary64
:herbie-target
(if (< b 0.0) (/ c (* a (/ (+ (- b) (sqrt (- (* b b) (* 4 (* a c))))) (* 2 a)))) (/ (- (- b) (sqrt (- (* b b) (* 4 (* a c))))) (* 2 a)))
(/ (- (- b) (sqrt (- (* b b) (* 4 (* a c))))) (* 2 a)))