\frac{x}{y} + \frac{2 + \left(z \cdot 2\right) \cdot \left(1 - t\right)}{t \cdot z}\left(\left(\frac{\frac{2}{z}}{t} - 2\right) + \frac{2}{t}\right) + \frac{x}{y}double f(double x, double y, double z, double t) {
double r42068003 = x;
double r42068004 = y;
double r42068005 = r42068003 / r42068004;
double r42068006 = 2.0;
double r42068007 = z;
double r42068008 = r42068007 * r42068006;
double r42068009 = 1.0;
double r42068010 = t;
double r42068011 = r42068009 - r42068010;
double r42068012 = r42068008 * r42068011;
double r42068013 = r42068006 + r42068012;
double r42068014 = r42068010 * r42068007;
double r42068015 = r42068013 / r42068014;
double r42068016 = r42068005 + r42068015;
return r42068016;
}
double f(double x, double y, double z, double t) {
double r42068017 = 2.0;
double r42068018 = z;
double r42068019 = r42068017 / r42068018;
double r42068020 = t;
double r42068021 = r42068019 / r42068020;
double r42068022 = r42068021 - r42068017;
double r42068023 = r42068017 / r42068020;
double r42068024 = r42068022 + r42068023;
double r42068025 = x;
double r42068026 = y;
double r42068027 = r42068025 / r42068026;
double r42068028 = r42068024 + r42068027;
return r42068028;
}




Bits error versus x




Bits error versus y




Bits error versus z




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