x + \frac{y \cdot y}{z}x + y \cdot \frac{y}{z}double f(double x, double y, double z) {
double r889908 = x;
double r889909 = y;
double r889910 = r889909 * r889909;
double r889911 = z;
double r889912 = r889910 / r889911;
double r889913 = r889908 + r889912;
return r889913;
}
double f(double x, double y, double z) {
double r889914 = x;
double r889915 = y;
double r889916 = z;
double r889917 = r889915 / r889916;
double r889918 = r889915 * r889917;
double r889919 = r889914 + r889918;
return r889919;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 6.5 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 6.5
rmApplied *-un-lft-identity6.5
Applied times-frac0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019354
(FPCore (x y z)
:name "Crypto.Random.Test:calculate from crypto-random-0.0.9"
:precision binary64
:herbie-target
(+ x (* y (/ y z)))
(+ x (/ (* y y) z)))