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 r255881 = x;
double r255882 = y;
double r255883 = cos(r255882);
double r255884 = r255881 * r255883;
double r255885 = z;
double r255886 = sin(r255882);
double r255887 = r255885 * r255886;
double r255888 = r255884 - r255887;
return r255888;
}
double f(double x, double y, double z) {
double r255889 = x;
double r255890 = y;
double r255891 = cos(r255890);
double r255892 = 2.0;
double r255893 = pow(r255891, r255892);
double r255894 = 0.6666666666666666;
double r255895 = pow(r255893, r255894);
double r255896 = 0.3333333333333333;
double r255897 = pow(r255893, r255896);
double r255898 = r255895 * r255897;
double r255899 = cbrt(r255898);
double r255900 = r255889 * r255899;
double r255901 = cbrt(r255891);
double r255902 = r255900 * r255901;
double r255903 = z;
double r255904 = sin(r255890);
double r255905 = r255903 * r255904;
double r255906 = r255902 - r255905;
return r255906;
}



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 +o rules:numerics
(FPCore (x y z)
:name "Diagrams.ThreeD.Transform:aboutX from diagrams-lib-1.3.0.3, A"
:precision binary64
(- (* x (cos y)) (* z (sin y))))