\frac{x}{y} + \frac{2.0 + \left(z \cdot 2.0\right) \cdot \left(1.0 - t\right)}{t \cdot z}\left(\left(\frac{\frac{2.0}{z}}{t} - 2.0\right) + \frac{2.0}{t}\right) + \frac{x}{y}double f(double x, double y, double z, double t) {
double r38631167 = x;
double r38631168 = y;
double r38631169 = r38631167 / r38631168;
double r38631170 = 2.0;
double r38631171 = z;
double r38631172 = r38631171 * r38631170;
double r38631173 = 1.0;
double r38631174 = t;
double r38631175 = r38631173 - r38631174;
double r38631176 = r38631172 * r38631175;
double r38631177 = r38631170 + r38631176;
double r38631178 = r38631174 * r38631171;
double r38631179 = r38631177 / r38631178;
double r38631180 = r38631169 + r38631179;
return r38631180;
}
double f(double x, double y, double z, double t) {
double r38631181 = 2.0;
double r38631182 = z;
double r38631183 = r38631181 / r38631182;
double r38631184 = t;
double r38631185 = r38631183 / r38631184;
double r38631186 = r38631185 - r38631181;
double r38631187 = r38631181 / r38631184;
double r38631188 = r38631186 + r38631187;
double r38631189 = x;
double r38631190 = y;
double r38631191 = r38631189 / r38631190;
double r38631192 = r38631188 + r38631191;
return r38631192;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 9.1 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 9.1
Taylor expanded around 0 0.1
Simplified0.1
rmApplied associate-/r*0.1
Final simplification0.1
herbie shell --seed 2019163
(FPCore (x y z t)
:name "Data.HashTable.ST.Basic:computeOverhead from hashtables-1.2.0.2"
:herbie-target
(- (/ (+ (/ 2.0 z) 2.0) t) (- 2.0 (/ x y)))
(+ (/ x y) (/ (+ 2.0 (* (* z 2.0) (- 1.0 t))) (* t z))))