\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.939122797387644981598378751450729435399 \cdot 10^{59}:\\
\;\;\;\;1 \cdot \left(\frac{c}{b} - \frac{b}{a}\right)\\
\mathbf{elif}\;b \le \frac{7249572029462281}{1.38034926935811275748695117245540509049 \cdot 10^{70}}:\\
\;\;\;\;\left(\left(-b\right) + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}\right) \cdot \frac{1}{2 \cdot a}\\
\mathbf{else}:\\
\;\;\;\;-1 \cdot \frac{c}{b}\\
\end{array}double f(double a, double b, double c) {
double r271256 = b;
double r271257 = -r271256;
double r271258 = r271256 * r271256;
double r271259 = 4.0;
double r271260 = a;
double r271261 = c;
double r271262 = r271260 * r271261;
double r271263 = r271259 * r271262;
double r271264 = r271258 - r271263;
double r271265 = sqrt(r271264);
double r271266 = r271257 + r271265;
double r271267 = 2.0;
double r271268 = r271267 * r271260;
double r271269 = r271266 / r271268;
return r271269;
}
double f(double a, double b, double c) {
double r271270 = b;
double r271271 = -1.939122797387645e+59;
bool r271272 = r271270 <= r271271;
double r271273 = 1.0;
double r271274 = c;
double r271275 = r271274 / r271270;
double r271276 = a;
double r271277 = r271270 / r271276;
double r271278 = r271275 - r271277;
double r271279 = r271273 * r271278;
double r271280 = 7249572029462281.0;
double r271281 = 1.3803492693581128e+70;
double r271282 = r271280 / r271281;
bool r271283 = r271270 <= r271282;
double r271284 = -r271270;
double r271285 = r271270 * r271270;
double r271286 = 4.0;
double r271287 = r271276 * r271274;
double r271288 = r271286 * r271287;
double r271289 = r271285 - r271288;
double r271290 = sqrt(r271289);
double r271291 = r271284 + r271290;
double r271292 = 1.0;
double r271293 = 2.0;
double r271294 = r271293 * r271276;
double r271295 = r271292 / r271294;
double r271296 = r271291 * r271295;
double r271297 = -1.0;
double r271298 = r271297 * r271275;
double r271299 = r271283 ? r271296 : r271298;
double r271300 = r271272 ? r271279 : r271299;
return r271300;
}




Bits error versus a




Bits error versus b




Bits error versus c
Results
| Original | 34.0 |
|---|---|
| Target | 21.0 |
| Herbie | 9.8 |
if b < -1.939122797387645e+59Initial program 37.8
Taylor expanded around -inf 5.1
Simplified5.1
if -1.939122797387645e+59 < b < 5.251983820611911e-55Initial program 13.9
rmApplied div-inv14.0
if 5.251983820611911e-55 < b Initial program 54.9
Taylor expanded around inf 7.3
Final simplification9.8
herbie shell --seed 350497007
(FPCore (a b c)
:name "quadp (p42, positive)"
:precision binary64
:herbie-target
(if (< b 0.0) (/ (+ (- b) (sqrt (- (* b b) (* 4 (* a c))))) (* 2 a)) (/ c (* a (/ (- (- b) (sqrt (- (* b b) (* 4 (* a c))))) (* 2 a)))))
(/ (+ (- b) (sqrt (- (* b b) (* 4 (* a c))))) (* 2 a)))