\frac{x}{y} + \frac{2 + \left(z \cdot 2\right) \cdot \left(1 - t\right)}{t \cdot z}\left(\left(\frac{2}{z \cdot t} - 2\right) + \frac{2}{t}\right) + \frac{x}{y}double f(double x, double y, double z, double t) {
double r36364679 = x;
double r36364680 = y;
double r36364681 = r36364679 / r36364680;
double r36364682 = 2.0;
double r36364683 = z;
double r36364684 = r36364683 * r36364682;
double r36364685 = 1.0;
double r36364686 = t;
double r36364687 = r36364685 - r36364686;
double r36364688 = r36364684 * r36364687;
double r36364689 = r36364682 + r36364688;
double r36364690 = r36364686 * r36364683;
double r36364691 = r36364689 / r36364690;
double r36364692 = r36364681 + r36364691;
return r36364692;
}
double f(double x, double y, double z, double t) {
double r36364693 = 2.0;
double r36364694 = z;
double r36364695 = t;
double r36364696 = r36364694 * r36364695;
double r36364697 = r36364693 / r36364696;
double r36364698 = r36364697 - r36364693;
double r36364699 = r36364693 / r36364695;
double r36364700 = r36364698 + r36364699;
double r36364701 = x;
double r36364702 = y;
double r36364703 = r36364701 / r36364702;
double r36364704 = r36364700 + r36364703;
return r36364704;
}




Bits error versus x




Bits error versus y




Bits error versus z




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