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 r346902 = x;
double r346903 = y;
double r346904 = cos(r346903);
double r346905 = r346902 * r346904;
double r346906 = z;
double r346907 = sin(r346903);
double r346908 = r346906 * r346907;
double r346909 = r346905 - r346908;
return r346909;
}
double f(double x, double y, double z) {
double r346910 = x;
double r346911 = y;
double r346912 = cos(r346911);
double r346913 = 2.0;
double r346914 = pow(r346912, r346913);
double r346915 = 0.6666666666666666;
double r346916 = pow(r346914, r346915);
double r346917 = 0.3333333333333333;
double r346918 = pow(r346914, r346917);
double r346919 = r346916 * r346918;
double r346920 = cbrt(r346919);
double r346921 = r346910 * r346920;
double r346922 = cbrt(r346912);
double r346923 = r346921 * r346922;
double r346924 = z;
double r346925 = sin(r346911);
double r346926 = r346924 * r346925;
double r346927 = r346923 - r346926;
return r346927;
}



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))))