\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 r234152 = x;
double r234153 = y;
double r234154 = r234152 * r234153;
double r234155 = z;
double r234156 = r234155 * r234155;
double r234157 = 1.0;
double r234158 = r234155 + r234157;
double r234159 = r234156 * r234158;
double r234160 = r234154 / r234159;
return r234160;
}
double f(double x, double y, double z) {
double r234161 = x;
double r234162 = cbrt(r234161);
double r234163 = r234162 * r234162;
double r234164 = z;
double r234165 = r234163 / r234164;
double r234166 = r234162 / r234164;
double r234167 = y;
double r234168 = 1.0;
double r234169 = r234164 + r234168;
double r234170 = r234167 / r234169;
double r234171 = r234166 * r234170;
double r234172 = r234165 * r234171;
return r234172;
}




Bits error versus x




Bits error versus y




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