\frac{x}{y} + \frac{2 + \left(z \cdot 2\right) \cdot \left(1 - t\right)}{t \cdot z}\frac{x}{y} + \left(\frac{2}{t} + \left(\frac{2}{t \cdot z} - 2\right)\right)double f(double x, double y, double z, double t) {
double r1083739 = x;
double r1083740 = y;
double r1083741 = r1083739 / r1083740;
double r1083742 = 2.0;
double r1083743 = z;
double r1083744 = r1083743 * r1083742;
double r1083745 = 1.0;
double r1083746 = t;
double r1083747 = r1083745 - r1083746;
double r1083748 = r1083744 * r1083747;
double r1083749 = r1083742 + r1083748;
double r1083750 = r1083746 * r1083743;
double r1083751 = r1083749 / r1083750;
double r1083752 = r1083741 + r1083751;
return r1083752;
}
double f(double x, double y, double z, double t) {
double r1083753 = x;
double r1083754 = y;
double r1083755 = r1083753 / r1083754;
double r1083756 = 2.0;
double r1083757 = t;
double r1083758 = r1083756 / r1083757;
double r1083759 = z;
double r1083760 = r1083757 * r1083759;
double r1083761 = r1083756 / r1083760;
double r1083762 = r1083761 - r1083756;
double r1083763 = r1083758 + r1083762;
double r1083764 = r1083755 + r1083763;
return r1083764;
}




Bits error versus x




Bits error versus y




Bits error versus z




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