\frac{x}{y} + \frac{2 + \left(z \cdot 2\right) \cdot \left(1 - t\right)}{t \cdot z}\frac{x}{y} + \left(\left(\frac{2}{t \cdot z} + \frac{2}{t}\right) - 2\right)double f(double x, double y, double z, double t) {
double r494531 = x;
double r494532 = y;
double r494533 = r494531 / r494532;
double r494534 = 2.0;
double r494535 = z;
double r494536 = r494535 * r494534;
double r494537 = 1.0;
double r494538 = t;
double r494539 = r494537 - r494538;
double r494540 = r494536 * r494539;
double r494541 = r494534 + r494540;
double r494542 = r494538 * r494535;
double r494543 = r494541 / r494542;
double r494544 = r494533 + r494543;
return r494544;
}
double f(double x, double y, double z, double t) {
double r494545 = x;
double r494546 = y;
double r494547 = r494545 / r494546;
double r494548 = 2.0;
double r494549 = t;
double r494550 = z;
double r494551 = r494549 * r494550;
double r494552 = r494548 / r494551;
double r494553 = r494548 / r494549;
double r494554 = r494552 + r494553;
double r494555 = r494554 - r494548;
double r494556 = r494547 + r494555;
return r494556;
}




Bits error versus x




Bits error versus y




Bits error versus z




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