\frac{x \cdot y}{\left(z \cdot z\right) \cdot \left(z + 1\right)}\frac{1}{z} \cdot \left(\left(\frac{\sqrt[3]{x}}{z} \cdot \frac{y}{z + 1}\right) \cdot \left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right)\right)double f(double x, double y, double z) {
double r901502 = x;
double r901503 = y;
double r901504 = r901502 * r901503;
double r901505 = z;
double r901506 = r901505 * r901505;
double r901507 = 1.0;
double r901508 = r901505 + r901507;
double r901509 = r901506 * r901508;
double r901510 = r901504 / r901509;
return r901510;
}
double f(double x, double y, double z) {
double r901511 = 1.0;
double r901512 = z;
double r901513 = r901511 / r901512;
double r901514 = x;
double r901515 = cbrt(r901514);
double r901516 = r901515 / r901512;
double r901517 = y;
double r901518 = 1.0;
double r901519 = r901512 + r901518;
double r901520 = r901517 / r901519;
double r901521 = r901516 * r901520;
double r901522 = r901515 * r901515;
double r901523 = r901521 * r901522;
double r901524 = r901513 * r901523;
return r901524;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 15.3 |
|---|---|
| Target | 4.2 |
| Herbie | 2.2 |
Initial program 15.3
rmApplied times-frac11.3
rmApplied *-un-lft-identity11.3
Applied times-frac6.0
Applied associate-*l*2.6
rmApplied *-un-lft-identity2.6
Applied add-cube-cbrt3.1
Applied times-frac3.1
Applied associate-*l*2.2
Final simplification2.2
herbie shell --seed 2019303
(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))))