\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 r55485 = b;
double r55486 = -r55485;
double r55487 = r55485 * r55485;
double r55488 = 4.0;
double r55489 = a;
double r55490 = c;
double r55491 = r55489 * r55490;
double r55492 = r55488 * r55491;
double r55493 = r55487 - r55492;
double r55494 = sqrt(r55493);
double r55495 = r55486 - r55494;
double r55496 = 2.0;
double r55497 = r55496 * r55489;
double r55498 = r55495 / r55497;
return r55498;
}
double f(double a, double b, double c) {
double r55499 = b;
double r55500 = -1.8696623466311214e+101;
bool r55501 = r55499 <= r55500;
double r55502 = -1.0;
double r55503 = c;
double r55504 = r55503 / r55499;
double r55505 = r55502 * r55504;
double r55506 = 7.455592343308264e-170;
bool r55507 = r55499 <= r55506;
double r55508 = 2.0;
double r55509 = r55508 * r55503;
double r55510 = r55499 * r55499;
double r55511 = 4.0;
double r55512 = a;
double r55513 = r55512 * r55503;
double r55514 = r55511 * r55513;
double r55515 = r55510 - r55514;
double r55516 = sqrt(r55515);
double r55517 = r55516 - r55499;
double r55518 = r55509 / r55517;
double r55519 = 1.0;
double r55520 = r55499 / r55512;
double r55521 = r55504 - r55520;
double r55522 = r55519 * r55521;
double r55523 = r55507 ? r55518 : r55522;
double r55524 = r55501 ? r55505 : r55523;
return r55524;
}




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)))