\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 r1644 = x;
double r1645 = y;
double r1646 = r1644 * r1645;
double r1647 = z;
double r1648 = r1647 * r1647;
double r1649 = 1.0;
double r1650 = r1647 + r1649;
double r1651 = r1648 * r1650;
double r1652 = r1646 / r1651;
return r1652;
}
double f(double x, double y, double z) {
double r1653 = x;
double r1654 = cbrt(r1653);
double r1655 = r1654 * r1654;
double r1656 = z;
double r1657 = r1655 / r1656;
double r1658 = r1654 / r1656;
double r1659 = y;
double r1660 = 1.0;
double r1661 = r1656 + r1660;
double r1662 = r1659 / r1661;
double r1663 = r1658 * r1662;
double r1664 = r1657 * r1663;
return r1664;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 14.9 |
|---|---|
| Target | 4.5 |
| Herbie | 1.2 |
Initial program 14.9
rmApplied times-frac10.8
rmApplied add-cube-cbrt11.1
Applied times-frac6.1
Applied associate-*l*1.2
Final simplification1.2
herbie shell --seed 2020025 +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))))