\frac{x \cdot y}{\left(z \cdot z\right) \cdot \left(z + 1\right)}\frac{\frac{\sqrt[3]{x}}{\frac{1 + z}{\sqrt[3]{y}}} \cdot \left(\frac{\sqrt[3]{x}}{\frac{z}{\sqrt[3]{y}}} \cdot \sqrt[3]{x}\right)}{\frac{z}{\sqrt[3]{y}}}double f(double x, double y, double z) {
double r13745026 = x;
double r13745027 = y;
double r13745028 = r13745026 * r13745027;
double r13745029 = z;
double r13745030 = r13745029 * r13745029;
double r13745031 = 1.0;
double r13745032 = r13745029 + r13745031;
double r13745033 = r13745030 * r13745032;
double r13745034 = r13745028 / r13745033;
return r13745034;
}
double f(double x, double y, double z) {
double r13745035 = x;
double r13745036 = cbrt(r13745035);
double r13745037 = 1.0;
double r13745038 = z;
double r13745039 = r13745037 + r13745038;
double r13745040 = y;
double r13745041 = cbrt(r13745040);
double r13745042 = r13745039 / r13745041;
double r13745043 = r13745036 / r13745042;
double r13745044 = r13745038 / r13745041;
double r13745045 = r13745036 / r13745044;
double r13745046 = r13745045 * r13745036;
double r13745047 = r13745043 * r13745046;
double r13745048 = r13745047 / r13745044;
return r13745048;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 14.9 |
|---|---|
| Target | 3.9 |
| Herbie | 1.0 |
Initial program 14.9
rmApplied associate-/l*13.6
rmApplied add-cube-cbrt14.0
Applied times-frac12.1
Applied add-cube-cbrt12.2
Applied times-frac9.8
Simplified2.6
rmApplied associate-*l/2.6
Applied associate-*l/1.0
Final simplification1.0
herbie shell --seed 2019179 +o rules:numerics
(FPCore (x y z)
:name "Statistics.Distribution.Beta:$cvariance from math-functions-0.1.5.2"
:herbie-target
(if (< z 249.6182814532307) (/ (* y (/ x z)) (+ z (* z z))) (/ (* (/ (/ y z) (+ 1.0 z)) x) z))
(/ (* x y) (* (* z z) (+ z 1.0))))