\frac{x}{y} + \frac{2 + \left(z \cdot 2\right) \cdot \left(1 - t\right)}{t \cdot z}\frac{\left(1 - t\right) \cdot 2 + \frac{2}{z}}{t} + \frac{x}{y}double f(double x, double y, double z, double t) {
double r660728 = x;
double r660729 = y;
double r660730 = r660728 / r660729;
double r660731 = 2.0;
double r660732 = z;
double r660733 = r660732 * r660731;
double r660734 = 1.0;
double r660735 = t;
double r660736 = r660734 - r660735;
double r660737 = r660733 * r660736;
double r660738 = r660731 + r660737;
double r660739 = r660735 * r660732;
double r660740 = r660738 / r660739;
double r660741 = r660730 + r660740;
return r660741;
}
double f(double x, double y, double z, double t) {
double r660742 = 1.0;
double r660743 = t;
double r660744 = r660742 - r660743;
double r660745 = 2.0;
double r660746 = r660744 * r660745;
double r660747 = z;
double r660748 = r660745 / r660747;
double r660749 = r660746 + r660748;
double r660750 = r660749 / r660743;
double r660751 = x;
double r660752 = y;
double r660753 = r660751 / r660752;
double r660754 = r660750 + r660753;
return r660754;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 9.3 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 9.3
Simplified0.1
Final simplification0.1
herbie shell --seed 2019325
(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))))