x + \frac{y \cdot y}{z}\frac{y}{z} \cdot y + xdouble f(double x, double y, double z) {
double r751246 = x;
double r751247 = y;
double r751248 = r751247 * r751247;
double r751249 = z;
double r751250 = r751248 / r751249;
double r751251 = r751246 + r751250;
return r751251;
}
double f(double x, double y, double z) {
double r751252 = y;
double r751253 = z;
double r751254 = r751252 / r751253;
double r751255 = r751254 * r751252;
double r751256 = x;
double r751257 = r751255 + r751256;
return r751257;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 6.4 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 6.4
Simplified0.1
rmApplied fma-udef0.1
Final simplification0.1
herbie shell --seed 2020024 +o rules:numerics
(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)))