\frac{x \cdot y}{\left(z \cdot z\right) \cdot \left(z + 1\right)}\frac{\sqrt[3]{x}}{\sqrt[3]{z} \cdot \sqrt[3]{z}} \cdot \left(\frac{\sqrt[3]{x}}{\sqrt[3]{z}} \cdot \left(\left(\sqrt[3]{\frac{\sqrt[3]{x}}{z}} \cdot \sqrt[3]{\frac{\sqrt[3]{x}}{z}}\right) \cdot \left(\sqrt[3]{\frac{\sqrt[3]{x}}{z}} \cdot \frac{y}{z + 1}\right)\right)\right)double f(double x, double y, double z) {
double r275464 = x;
double r275465 = y;
double r275466 = r275464 * r275465;
double r275467 = z;
double r275468 = r275467 * r275467;
double r275469 = 1.0;
double r275470 = r275467 + r275469;
double r275471 = r275468 * r275470;
double r275472 = r275466 / r275471;
return r275472;
}
double f(double x, double y, double z) {
double r275473 = x;
double r275474 = cbrt(r275473);
double r275475 = z;
double r275476 = cbrt(r275475);
double r275477 = r275476 * r275476;
double r275478 = r275474 / r275477;
double r275479 = r275474 / r275476;
double r275480 = r275474 / r275475;
double r275481 = cbrt(r275480);
double r275482 = r275481 * r275481;
double r275483 = y;
double r275484 = 1.0;
double r275485 = r275475 + r275484;
double r275486 = r275483 / r275485;
double r275487 = r275481 * r275486;
double r275488 = r275482 * r275487;
double r275489 = r275479 * r275488;
double r275490 = r275478 * r275489;
return r275490;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 15.7 |
|---|---|
| Target | 4.4 |
| Herbie | 1.5 |
Initial program 15.7
rmApplied times-frac11.8
rmApplied add-cube-cbrt12.1
Applied times-frac7.0
Applied associate-*l*1.3
rmApplied add-cube-cbrt1.5
Applied times-frac1.5
Applied associate-*l*1.4
rmApplied add-cube-cbrt1.5
Applied associate-*l*1.5
Final simplification1.5
herbie shell --seed 2020047 +o rules:numerics
(FPCore (x y z)
:name "Statistics.Distribution.Beta:$cvariance from math-functions-0.1.5.2"
:precision binary64
:herbie-target
(if (< z 249.6182814532307) (/ (* y (/ x z)) (+ z (* z z))) (/ (* (/ (/ y z) (+ 1 z)) x) z))
(/ (* x y) (* (* z z) (+ z 1))))