\frac{x \cdot y}{\left(z \cdot z\right) \cdot \left(z + 1\right)}\frac{\sqrt[3]{x} \cdot \sqrt[3]{x}}{z} \cdot \left(\frac{\sqrt[3]{x}}{z} \cdot \frac{y}{z + 1}\right)double f(double x, double y, double z) {
double r220456 = x;
double r220457 = y;
double r220458 = r220456 * r220457;
double r220459 = z;
double r220460 = r220459 * r220459;
double r220461 = 1.0;
double r220462 = r220459 + r220461;
double r220463 = r220460 * r220462;
double r220464 = r220458 / r220463;
return r220464;
}
double f(double x, double y, double z) {
double r220465 = x;
double r220466 = cbrt(r220465);
double r220467 = r220466 * r220466;
double r220468 = z;
double r220469 = r220467 / r220468;
double r220470 = r220466 / r220468;
double r220471 = y;
double r220472 = 1.0;
double r220473 = r220468 + r220472;
double r220474 = r220471 / r220473;
double r220475 = r220470 * r220474;
double r220476 = r220469 * r220475;
return r220476;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 14.7 |
|---|---|
| Target | 3.8 |
| Herbie | 1.2 |
Initial program 14.7
rmApplied times-frac10.8
rmApplied add-cube-cbrt11.2
Applied times-frac6.2
Applied associate-*l*1.2
Final simplification1.2
herbie shell --seed 2019305
(FPCore (x y z)
:name "Statistics.Distribution.Beta:$cvariance from math-functions-0.1.5.2"
:precision binary64
:herbie-target
(if (< z 249.618281453230708) (/ (* y (/ x z)) (+ z (* z z))) (/ (* (/ (/ y z) (+ 1 z)) x) z))
(/ (* x y) (* (* z z) (+ z 1))))