\frac{x}{y} + \frac{2 + \left(z \cdot 2\right) \cdot \left(1 - t\right)}{t \cdot z}\frac{x}{y} + \left(\frac{1}{t} \cdot \left(\frac{2}{z} + 2\right) - 2\right)double f(double x, double y, double z, double t) {
double r1022362 = x;
double r1022363 = y;
double r1022364 = r1022362 / r1022363;
double r1022365 = 2.0;
double r1022366 = z;
double r1022367 = r1022366 * r1022365;
double r1022368 = 1.0;
double r1022369 = t;
double r1022370 = r1022368 - r1022369;
double r1022371 = r1022367 * r1022370;
double r1022372 = r1022365 + r1022371;
double r1022373 = r1022369 * r1022366;
double r1022374 = r1022372 / r1022373;
double r1022375 = r1022364 + r1022374;
return r1022375;
}
double f(double x, double y, double z, double t) {
double r1022376 = x;
double r1022377 = y;
double r1022378 = r1022376 / r1022377;
double r1022379 = 1.0;
double r1022380 = t;
double r1022381 = r1022379 / r1022380;
double r1022382 = 2.0;
double r1022383 = z;
double r1022384 = r1022382 / r1022383;
double r1022385 = r1022384 + r1022382;
double r1022386 = r1022381 * r1022385;
double r1022387 = r1022386 - r1022382;
double r1022388 = r1022378 + r1022387;
return r1022388;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 9.7 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 9.7
Taylor expanded around 0 0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019353
(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))))