\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 r387928 = x;
double r387929 = y;
double r387930 = r387928 * r387929;
double r387931 = z;
double r387932 = r387931 * r387931;
double r387933 = 1.0;
double r387934 = r387931 + r387933;
double r387935 = r387932 * r387934;
double r387936 = r387930 / r387935;
return r387936;
}
double f(double x, double y, double z) {
double r387937 = x;
double r387938 = cbrt(r387937);
double r387939 = z;
double r387940 = cbrt(r387939);
double r387941 = r387940 * r387940;
double r387942 = r387938 / r387941;
double r387943 = r387938 / r387940;
double r387944 = r387938 / r387939;
double r387945 = cbrt(r387944);
double r387946 = r387945 * r387945;
double r387947 = y;
double r387948 = 1.0;
double r387949 = r387939 + r387948;
double r387950 = r387947 / r387949;
double r387951 = r387945 * r387950;
double r387952 = r387946 * r387951;
double r387953 = r387943 * r387952;
double r387954 = r387942 * r387953;
return r387954;
}




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
(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))))