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 r250944 = x;
double r250945 = y;
double r250946 = cos(r250945);
double r250947 = r250944 * r250946;
double r250948 = z;
double r250949 = sin(r250945);
double r250950 = r250948 * r250949;
double r250951 = r250947 - r250950;
return r250951;
}
double f(double x, double y, double z) {
double r250952 = x;
double r250953 = y;
double r250954 = cos(r250953);
double r250955 = 2.0;
double r250956 = pow(r250954, r250955);
double r250957 = 0.6666666666666666;
double r250958 = pow(r250956, r250957);
double r250959 = 0.3333333333333333;
double r250960 = pow(r250956, r250959);
double r250961 = r250958 * r250960;
double r250962 = cbrt(r250961);
double r250963 = r250952 * r250962;
double r250964 = cbrt(r250954);
double r250965 = r250963 * r250964;
double r250966 = z;
double r250967 = sin(r250953);
double r250968 = r250966 * r250967;
double r250969 = r250965 - r250968;
return r250969;
}



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