\frac{x}{y} \cdot \left(z - t\right) + t\frac{z - t}{\frac{y}{x}} + tdouble f(double x, double y, double z, double t) {
double r312492 = x;
double r312493 = y;
double r312494 = r312492 / r312493;
double r312495 = z;
double r312496 = t;
double r312497 = r312495 - r312496;
double r312498 = r312494 * r312497;
double r312499 = r312498 + r312496;
return r312499;
}
double f(double x, double y, double z, double t) {
double r312500 = z;
double r312501 = t;
double r312502 = r312500 - r312501;
double r312503 = y;
double r312504 = x;
double r312505 = r312503 / r312504;
double r312506 = r312502 / r312505;
double r312507 = r312506 + r312501;
return r312507;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 2.1 |
|---|---|
| Target | 2.4 |
| Herbie | 2.1 |
Initial program 2.1
rmApplied associate-*l/6.3
rmApplied clear-num6.3
rmApplied associate-/r*2.1
Taylor expanded around 0 6.3
Simplified2.1
Final simplification2.1
herbie shell --seed 2019308
(FPCore (x y z t)
:name "Numeric.Signal.Multichannel:$cget from hsignal-0.2.7.1"
:precision binary64
:herbie-target
(if (< z 2.7594565545626922e-282) (+ (* (/ x y) (- z t)) t) (if (< z 2.326994450874436e-110) (+ (* x (/ (- z t) y)) t) (+ (* (/ x y) (- z t)) t)))
(+ (* (/ x y) (- z t)) t))