\frac{x}{y} + \frac{2 + \left(z \cdot 2\right) \cdot \left(1 - t\right)}{t \cdot z}\left(\left(\frac{\frac{2}{z}}{t} - 2\right) + \frac{2}{t}\right) + \frac{x}{y}double f(double x, double y, double z, double t) {
double r1232241 = x;
double r1232242 = y;
double r1232243 = r1232241 / r1232242;
double r1232244 = 2.0;
double r1232245 = z;
double r1232246 = r1232245 * r1232244;
double r1232247 = 1.0;
double r1232248 = t;
double r1232249 = r1232247 - r1232248;
double r1232250 = r1232246 * r1232249;
double r1232251 = r1232244 + r1232250;
double r1232252 = r1232248 * r1232245;
double r1232253 = r1232251 / r1232252;
double r1232254 = r1232243 + r1232253;
return r1232254;
}
double f(double x, double y, double z, double t) {
double r1232255 = 2.0;
double r1232256 = z;
double r1232257 = r1232255 / r1232256;
double r1232258 = t;
double r1232259 = r1232257 / r1232258;
double r1232260 = r1232259 - r1232255;
double r1232261 = r1232255 / r1232258;
double r1232262 = r1232260 + r1232261;
double r1232263 = x;
double r1232264 = y;
double r1232265 = r1232263 / r1232264;
double r1232266 = r1232262 + r1232265;
return r1232266;
}




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
Taylor expanded around 0 0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019179
(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))))