\frac{x}{y} \cdot \left(z - t\right) + tt + \left(z - t\right) \cdot \frac{x}{y}double f(double x, double y, double z, double t) {
double r26720553 = x;
double r26720554 = y;
double r26720555 = r26720553 / r26720554;
double r26720556 = z;
double r26720557 = t;
double r26720558 = r26720556 - r26720557;
double r26720559 = r26720555 * r26720558;
double r26720560 = r26720559 + r26720557;
return r26720560;
}
double f(double x, double y, double z, double t) {
double r26720561 = t;
double r26720562 = z;
double r26720563 = r26720562 - r26720561;
double r26720564 = x;
double r26720565 = y;
double r26720566 = r26720564 / r26720565;
double r26720567 = r26720563 * r26720566;
double r26720568 = r26720561 + r26720567;
return r26720568;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 1.8 |
|---|---|
| Target | 2.1 |
| Herbie | 1.8 |
Initial program 1.8
rmApplied *-commutative1.8
Final simplification1.8
herbie shell --seed 2019165
(FPCore (x y z t)
:name "Numeric.Signal.Multichannel:$cget from hsignal-0.2.7.1"
:herbie-target
(if (< z 2.759456554562692e-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))