\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 r212210 = x;
double r212211 = y;
double r212212 = r212210 * r212211;
double r212213 = z;
double r212214 = r212213 * r212213;
double r212215 = 1.0;
double r212216 = r212213 + r212215;
double r212217 = r212214 * r212216;
double r212218 = r212212 / r212217;
return r212218;
}
double f(double x, double y, double z) {
double r212219 = x;
double r212220 = cbrt(r212219);
double r212221 = r212220 * r212220;
double r212222 = z;
double r212223 = r212221 / r212222;
double r212224 = r212220 / r212222;
double r212225 = y;
double r212226 = 1.0;
double r212227 = r212222 + r212226;
double r212228 = r212225 / r212227;
double r212229 = r212224 * r212228;
double r212230 = r212223 * r212229;
return r212230;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 14.7 |
|---|---|
| Target | 3.8 |
| Herbie | 1.2 |
Initial program 14.7
rmApplied times-frac10.8
Simplified10.8
rmApplied sqr-pow10.8
Applied add-cube-cbrt11.2
Applied times-frac6.2
Applied associate-*l*1.2
Simplified1.2
Final simplification1.2
herbie shell --seed 2019305 +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.618281453230708) (/ (* y (/ x z)) (+ z (* z z))) (/ (* (/ (/ y z) (+ 1 z)) x) z))
(/ (* x y) (* (* z z) (+ z 1))))