x \cdot \cos y + z \cdot \sin y
\left(x \cdot \sqrt[3]{{\left({\left(\cos y\right)}^{2}\right)}^{\frac{2}{3}} \cdot {\left({\left(\cos y\right)}^{2}\right)}^{\frac{1}{3}}}\right) \cdot \sqrt[3]{\cos y} + z \cdot \sin ydouble f(double x, double y, double z) {
double r216831 = x;
double r216832 = y;
double r216833 = cos(r216832);
double r216834 = r216831 * r216833;
double r216835 = z;
double r216836 = sin(r216832);
double r216837 = r216835 * r216836;
double r216838 = r216834 + r216837;
return r216838;
}
double f(double x, double y, double z) {
double r216839 = x;
double r216840 = y;
double r216841 = cos(r216840);
double r216842 = 2.0;
double r216843 = pow(r216841, r216842);
double r216844 = 0.6666666666666666;
double r216845 = pow(r216843, r216844);
double r216846 = 0.3333333333333333;
double r216847 = pow(r216843, r216846);
double r216848 = r216845 * r216847;
double r216849 = cbrt(r216848);
double r216850 = r216839 * r216849;
double r216851 = cbrt(r216841);
double r216852 = r216850 * r216851;
double r216853 = z;
double r216854 = sin(r216840);
double r216855 = r216853 * r216854;
double r216856 = r216852 + r216855;
return r216856;
}



Bits error versus x



Bits error versus y



Bits error versus z
Results
Initial program 0.1
rmApplied add-cube-cbrt0.4
Applied associate-*r*0.4
rmApplied cbrt-unprod0.3
Simplified0.3
rmApplied add-cube-cbrt0.3
Simplified0.3
rmApplied pow1/30.3
Final simplification0.3
herbie shell --seed 2020047
(FPCore (x y z)
:name "Diagrams.ThreeD.Transform:aboutY from diagrams-lib-1.3.0.3"
:precision binary64
(+ (* x (cos y)) (* z (sin y))))