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 r257887 = x;
double r257888 = y;
double r257889 = cos(r257888);
double r257890 = r257887 * r257889;
double r257891 = z;
double r257892 = sin(r257888);
double r257893 = r257891 * r257892;
double r257894 = r257890 - r257893;
return r257894;
}
double f(double x, double y, double z) {
double r257895 = x;
double r257896 = y;
double r257897 = cos(r257896);
double r257898 = 2.0;
double r257899 = pow(r257897, r257898);
double r257900 = 0.6666666666666666;
double r257901 = pow(r257899, r257900);
double r257902 = 0.3333333333333333;
double r257903 = pow(r257899, r257902);
double r257904 = r257901 * r257903;
double r257905 = cbrt(r257904);
double r257906 = r257895 * r257905;
double r257907 = cbrt(r257897);
double r257908 = r257906 * r257907;
double r257909 = z;
double r257910 = sin(r257896);
double r257911 = r257909 * r257910;
double r257912 = r257908 - r257911;
return r257912;
}



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:aboutX from diagrams-lib-1.3.0.3, A"
:precision binary64
(- (* x (cos y)) (* z (sin y))))