x + \frac{y \cdot y}{z}x + y \cdot \frac{y}{z}double f(double x, double y, double z) {
double r911008 = x;
double r911009 = y;
double r911010 = r911009 * r911009;
double r911011 = z;
double r911012 = r911010 / r911011;
double r911013 = r911008 + r911012;
return r911013;
}
double f(double x, double y, double z) {
double r911014 = x;
double r911015 = y;
double r911016 = z;
double r911017 = r911015 / r911016;
double r911018 = r911015 * r911017;
double r911019 = r911014 + r911018;
return r911019;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 6.7 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 6.7
rmApplied *-un-lft-identity6.7
Applied times-frac0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2020027
(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)))