\frac{x}{y} + \frac{2 + \left(z \cdot 2\right) \cdot \left(1 - t\right)}{t \cdot z}\frac{\left(1 - t\right) \cdot 2 + \frac{2}{z}}{t} + \frac{x}{y}double f(double x, double y, double z, double t) {
double r603714 = x;
double r603715 = y;
double r603716 = r603714 / r603715;
double r603717 = 2.0;
double r603718 = z;
double r603719 = r603718 * r603717;
double r603720 = 1.0;
double r603721 = t;
double r603722 = r603720 - r603721;
double r603723 = r603719 * r603722;
double r603724 = r603717 + r603723;
double r603725 = r603721 * r603718;
double r603726 = r603724 / r603725;
double r603727 = r603716 + r603726;
return r603727;
}
double f(double x, double y, double z, double t) {
double r603728 = 1.0;
double r603729 = t;
double r603730 = r603728 - r603729;
double r603731 = 2.0;
double r603732 = r603730 * r603731;
double r603733 = z;
double r603734 = r603731 / r603733;
double r603735 = r603732 + r603734;
double r603736 = r603735 / r603729;
double r603737 = x;
double r603738 = y;
double r603739 = r603737 / r603738;
double r603740 = r603736 + r603739;
return r603740;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 8.8 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 8.8
Simplified0.1
Final simplification0.1
herbie shell --seed 2019304
(FPCore (x y z t)
:name "Data.HashTable.ST.Basic:computeOverhead from hashtables-1.2.0.2"
:precision binary64
:herbie-target
(- (/ (+ (/ 2 z) 2) t) (- 2 (/ x y)))
(+ (/ x y) (/ (+ 2 (* (* z 2) (- 1 t))) (* t z))))