\frac{x}{y} + \frac{2 + \left(z \cdot 2\right) \cdot \left(1 - t\right)}{t \cdot z}\left(\frac{\frac{2}{t}}{z} + \left(\frac{2}{t} - 2\right)\right) + \frac{x}{y}double f(double x, double y, double z, double t) {
double r35678023 = x;
double r35678024 = y;
double r35678025 = r35678023 / r35678024;
double r35678026 = 2.0;
double r35678027 = z;
double r35678028 = r35678027 * r35678026;
double r35678029 = 1.0;
double r35678030 = t;
double r35678031 = r35678029 - r35678030;
double r35678032 = r35678028 * r35678031;
double r35678033 = r35678026 + r35678032;
double r35678034 = r35678030 * r35678027;
double r35678035 = r35678033 / r35678034;
double r35678036 = r35678025 + r35678035;
return r35678036;
}
double f(double x, double y, double z, double t) {
double r35678037 = 2.0;
double r35678038 = t;
double r35678039 = r35678037 / r35678038;
double r35678040 = z;
double r35678041 = r35678039 / r35678040;
double r35678042 = r35678039 - r35678037;
double r35678043 = r35678041 + r35678042;
double r35678044 = x;
double r35678045 = y;
double r35678046 = r35678044 / r35678045;
double r35678047 = r35678043 + r35678046;
return r35678047;
}




Bits error versus x




Bits error versus y




Bits error versus z




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