\left(x \cdot 2 - \left(\left(y \cdot 9\right) \cdot z\right) \cdot t\right) + \left(a \cdot 27\right) \cdot b
\begin{array}{l}
\mathbf{if}\;y \cdot 9 \le 4.168917714154861757771572877486206993919 \cdot 10^{-90}:\\
\;\;\;\;\left(x \cdot 2 + \left(-9 \cdot \left(t \cdot \left(z \cdot y\right)\right)\right)\right) + \left(a \cdot 27\right) \cdot b\\
\mathbf{else}:\\
\;\;\;\;\left(x \cdot 2 - \left(y \cdot 9\right) \cdot \left(z \cdot t\right)\right) + a \cdot \left(27 \cdot b\right)\\
\end{array}double f(double x, double y, double z, double t, double a, double b) {
double r484421 = x;
double r484422 = 2.0;
double r484423 = r484421 * r484422;
double r484424 = y;
double r484425 = 9.0;
double r484426 = r484424 * r484425;
double r484427 = z;
double r484428 = r484426 * r484427;
double r484429 = t;
double r484430 = r484428 * r484429;
double r484431 = r484423 - r484430;
double r484432 = a;
double r484433 = 27.0;
double r484434 = r484432 * r484433;
double r484435 = b;
double r484436 = r484434 * r484435;
double r484437 = r484431 + r484436;
return r484437;
}
double f(double x, double y, double z, double t, double a, double b) {
double r484438 = y;
double r484439 = 9.0;
double r484440 = r484438 * r484439;
double r484441 = 4.168917714154862e-90;
bool r484442 = r484440 <= r484441;
double r484443 = x;
double r484444 = 2.0;
double r484445 = r484443 * r484444;
double r484446 = t;
double r484447 = z;
double r484448 = r484447 * r484438;
double r484449 = r484446 * r484448;
double r484450 = r484439 * r484449;
double r484451 = -r484450;
double r484452 = r484445 + r484451;
double r484453 = a;
double r484454 = 27.0;
double r484455 = r484453 * r484454;
double r484456 = b;
double r484457 = r484455 * r484456;
double r484458 = r484452 + r484457;
double r484459 = r484447 * r484446;
double r484460 = r484440 * r484459;
double r484461 = r484445 - r484460;
double r484462 = r484454 * r484456;
double r484463 = r484453 * r484462;
double r484464 = r484461 + r484463;
double r484465 = r484442 ? r484458 : r484464;
return r484465;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a




Bits error versus b
Results
| Original | 3.6 |
|---|---|
| Target | 2.6 |
| Herbie | 2.3 |
if (* y 9.0) < 4.168917714154862e-90Initial program 2.7
rmApplied associate-*l*2.8
Simplified2.8
rmApplied associate-*l*4.4
rmApplied sub-neg4.4
Simplified2.6
if 4.168917714154862e-90 < (* y 9.0) Initial program 5.9
rmApplied associate-*l*1.4
rmApplied associate-*l*1.4
Final simplification2.3
herbie shell --seed 2019326
(FPCore (x y z t a b)
:name "Diagrams.Solve.Polynomial:cubForm from diagrams-solve-0.1, A"
:precision binary64
:herbie-target
(if (< y 7.590524218811189e-161) (+ (- (* x 2) (* (* (* y 9) z) t)) (* a (* 27 b))) (+ (- (* x 2) (* 9 (* y (* t z)))) (* (* a 27) b)))
(+ (- (* x 2) (* (* (* y 9) z) t)) (* (* a 27) b)))