x + \frac{y \cdot y}{z}x + \frac{y}{\frac{z}{y}}double f(double x, double y, double z) {
double r829198 = x;
double r829199 = y;
double r829200 = r829199 * r829199;
double r829201 = z;
double r829202 = r829200 / r829201;
double r829203 = r829198 + r829202;
return r829203;
}
double f(double x, double y, double z) {
double r829204 = x;
double r829205 = y;
double r829206 = z;
double r829207 = r829206 / r829205;
double r829208 = r829205 / r829207;
double r829209 = r829204 + r829208;
return r829209;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 6.3 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 6.3
rmApplied associate-/l*0.1
Final simplification0.1
herbie shell --seed 2020018
(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)))