\frac{x}{y} + \frac{2 + \left(z \cdot 2\right) \cdot \left(1 - t\right)}{t \cdot z}\frac{\frac{2}{z} + 1 \cdot 2}{t} - \left(2 - \frac{x}{y}\right)double f(double x, double y, double z, double t) {
double r935930 = x;
double r935931 = y;
double r935932 = r935930 / r935931;
double r935933 = 2.0;
double r935934 = z;
double r935935 = r935934 * r935933;
double r935936 = 1.0;
double r935937 = t;
double r935938 = r935936 - r935937;
double r935939 = r935935 * r935938;
double r935940 = r935933 + r935939;
double r935941 = r935937 * r935934;
double r935942 = r935940 / r935941;
double r935943 = r935932 + r935942;
return r935943;
}
double f(double x, double y, double z, double t) {
double r935944 = 2.0;
double r935945 = z;
double r935946 = r935944 / r935945;
double r935947 = 1.0;
double r935948 = r935947 * r935944;
double r935949 = r935946 + r935948;
double r935950 = t;
double r935951 = r935949 / r935950;
double r935952 = x;
double r935953 = y;
double r935954 = r935952 / r935953;
double r935955 = r935944 - r935954;
double r935956 = r935951 - r935955;
return r935956;
}




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
Final simplification0.1
herbie shell --seed 2020046
(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))))