\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 r355203 = x;
double r355204 = y;
double r355205 = r355203 * r355204;
double r355206 = z;
double r355207 = r355206 * r355206;
double r355208 = 1.0;
double r355209 = r355206 + r355208;
double r355210 = r355207 * r355209;
double r355211 = r355205 / r355210;
return r355211;
}
double f(double x, double y, double z) {
double r355212 = x;
double r355213 = cbrt(r355212);
double r355214 = r355213 * r355213;
double r355215 = z;
double r355216 = r355214 / r355215;
double r355217 = r355213 / r355215;
double r355218 = y;
double r355219 = 1.0;
double r355220 = r355215 + r355219;
double r355221 = r355218 / r355220;
double r355222 = r355217 * r355221;
double r355223 = r355216 * r355222;
return r355223;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 14.6 |
|---|---|
| Target | 4.1 |
| Herbie | 1.2 |
Initial program 14.6
rmApplied times-frac10.9
rmApplied add-cube-cbrt11.3
Applied times-frac6.4
Applied associate-*l*1.2
Final simplification1.2
herbie shell --seed 2019351 +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))))