\frac{x}{y} + \frac{2 + \left(z \cdot 2\right) \cdot \left(1 - t\right)}{t \cdot z}\left(\frac{2}{t} + \frac{2}{t \cdot z}\right) - \left(2 - \frac{x}{y}\right)double f(double x, double y, double z, double t) {
double r799269 = x;
double r799270 = y;
double r799271 = r799269 / r799270;
double r799272 = 2.0;
double r799273 = z;
double r799274 = r799273 * r799272;
double r799275 = 1.0;
double r799276 = t;
double r799277 = r799275 - r799276;
double r799278 = r799274 * r799277;
double r799279 = r799272 + r799278;
double r799280 = r799276 * r799273;
double r799281 = r799279 / r799280;
double r799282 = r799271 + r799281;
return r799282;
}
double f(double x, double y, double z, double t) {
double r799283 = 2.0;
double r799284 = t;
double r799285 = r799283 / r799284;
double r799286 = z;
double r799287 = r799284 * r799286;
double r799288 = r799283 / r799287;
double r799289 = r799285 + r799288;
double r799290 = x;
double r799291 = y;
double r799292 = r799290 / r799291;
double r799293 = r799283 - r799292;
double r799294 = r799289 - r799293;
return r799294;
}




Bits error versus x




Bits error versus y




Bits error versus z




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