x \cdot \cos y - z \cdot \sin y
\sqrt[3]{\cos y} \cdot \left({\left(\sqrt[3]{\sqrt[3]{\left(\cos y \cdot \left(\cos y \cdot \cos y\right)\right) \cdot \left(\cos y \cdot \left(\cos y \cdot \cos y\right)\right)}} \cdot \left(\sqrt[3]{\sqrt[3]{\left(\cos y \cdot \left(\cos y \cdot \cos y\right)\right) \cdot \left(\cos y \cdot \left(\cos y \cdot \cos y\right)\right)}} \cdot \sqrt[3]{\sqrt[3]{\left(\cos y \cdot \left(\cos y \cdot \cos y\right)\right) \cdot \left(\cos y \cdot \left(\cos y \cdot \cos y\right)\right)}}\right)\right)}^{\frac{1}{3}} \cdot x\right) - z \cdot \sin ydouble f(double x, double y, double z) {
double r10983955 = x;
double r10983956 = y;
double r10983957 = cos(r10983956);
double r10983958 = r10983955 * r10983957;
double r10983959 = z;
double r10983960 = sin(r10983956);
double r10983961 = r10983959 * r10983960;
double r10983962 = r10983958 - r10983961;
return r10983962;
}
double f(double x, double y, double z) {
double r10983963 = y;
double r10983964 = cos(r10983963);
double r10983965 = cbrt(r10983964);
double r10983966 = r10983964 * r10983964;
double r10983967 = r10983964 * r10983966;
double r10983968 = r10983967 * r10983967;
double r10983969 = cbrt(r10983968);
double r10983970 = cbrt(r10983969);
double r10983971 = r10983970 * r10983970;
double r10983972 = r10983970 * r10983971;
double r10983973 = 0.3333333333333333;
double r10983974 = pow(r10983972, r10983973);
double r10983975 = x;
double r10983976 = r10983974 * r10983975;
double r10983977 = r10983965 * r10983976;
double r10983978 = z;
double r10983979 = sin(r10983963);
double r10983980 = r10983978 * r10983979;
double r10983981 = r10983977 - r10983980;
return r10983981;
}



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 pow1/316.1
Applied pow1/316.0
Applied pow-prod-down0.2
rmApplied add-cbrt-cube0.2
Applied add-cbrt-cube0.3
Applied cbrt-unprod0.2
rmApplied add-cube-cbrt0.3
Final simplification0.3
herbie shell --seed 2019170
(FPCore (x y z)
:name "Diagrams.ThreeD.Transform:aboutX from diagrams-lib-1.3.0.3, A"
(- (* x (cos y)) (* z (sin y))))