x \cdot \cos y - z \cdot \sin y
\left(x \cdot {\left(\sqrt[3]{\left(\cos y \cdot \cos y\right) \cdot \left(\left(\cos y \cdot \cos y\right) \cdot \left(\cos y \cdot \cos y\right)\right)}\right)}^{\frac{1}{3}}\right) \cdot \sqrt[3]{\cos y} - \sin y \cdot zdouble f(double x, double y, double z) {
double r8218720 = x;
double r8218721 = y;
double r8218722 = cos(r8218721);
double r8218723 = r8218720 * r8218722;
double r8218724 = z;
double r8218725 = sin(r8218721);
double r8218726 = r8218724 * r8218725;
double r8218727 = r8218723 - r8218726;
return r8218727;
}
double f(double x, double y, double z) {
double r8218728 = x;
double r8218729 = y;
double r8218730 = cos(r8218729);
double r8218731 = r8218730 * r8218730;
double r8218732 = r8218731 * r8218731;
double r8218733 = r8218731 * r8218732;
double r8218734 = cbrt(r8218733);
double r8218735 = 0.3333333333333333;
double r8218736 = pow(r8218734, r8218735);
double r8218737 = r8218728 * r8218736;
double r8218738 = cbrt(r8218730);
double r8218739 = r8218737 * r8218738;
double r8218740 = sin(r8218729);
double r8218741 = z;
double r8218742 = r8218740 * r8218741;
double r8218743 = r8218739 - r8218742;
return r8218743;
}



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