\frac{x}{y} + \frac{2 + \left(z \cdot 2\right) \cdot \left(1 - t\right)}{t \cdot z}\frac{x}{y} + \left(1 \cdot \frac{\frac{2}{z} + 2}{t} - 2\right)double f(double x, double y, double z, double t) {
double r802312 = x;
double r802313 = y;
double r802314 = r802312 / r802313;
double r802315 = 2.0;
double r802316 = z;
double r802317 = r802316 * r802315;
double r802318 = 1.0;
double r802319 = t;
double r802320 = r802318 - r802319;
double r802321 = r802317 * r802320;
double r802322 = r802315 + r802321;
double r802323 = r802319 * r802316;
double r802324 = r802322 / r802323;
double r802325 = r802314 + r802324;
return r802325;
}
double f(double x, double y, double z, double t) {
double r802326 = x;
double r802327 = y;
double r802328 = r802326 / r802327;
double r802329 = 1.0;
double r802330 = 2.0;
double r802331 = z;
double r802332 = r802330 / r802331;
double r802333 = r802332 + r802330;
double r802334 = t;
double r802335 = r802333 / r802334;
double r802336 = r802329 * r802335;
double r802337 = r802336 - r802330;
double r802338 = r802328 + r802337;
return r802338;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 9.8 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 9.8
Taylor expanded around 0 0.1
Simplified0.1
rmApplied *-un-lft-identity0.1
Applied *-un-lft-identity0.1
Applied times-frac0.1
Applied associate-*l*0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2020047
(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))))