x \cdot \cos y - z \cdot \sin y
\sqrt[3]{\cos y} \cdot \left(\left(x \cdot \sqrt{{\left(\cos y \cdot \cos y\right)}^{\frac{1}{3}}}\right) \cdot \sqrt{{\left(\cos y \cdot \cos y\right)}^{\frac{1}{3}}}\right) - z \cdot \sin ydouble f(double x, double y, double z) {
double r2927707 = x;
double r2927708 = y;
double r2927709 = cos(r2927708);
double r2927710 = r2927707 * r2927709;
double r2927711 = z;
double r2927712 = sin(r2927708);
double r2927713 = r2927711 * r2927712;
double r2927714 = r2927710 - r2927713;
return r2927714;
}
double f(double x, double y, double z) {
double r2927715 = y;
double r2927716 = cos(r2927715);
double r2927717 = cbrt(r2927716);
double r2927718 = x;
double r2927719 = r2927716 * r2927716;
double r2927720 = 0.3333333333333333;
double r2927721 = pow(r2927719, r2927720);
double r2927722 = sqrt(r2927721);
double r2927723 = r2927718 * r2927722;
double r2927724 = r2927723 * r2927722;
double r2927725 = r2927717 * r2927724;
double r2927726 = z;
double r2927727 = sin(r2927715);
double r2927728 = r2927726 * r2927727;
double r2927729 = r2927725 - r2927728;
return r2927729;
}



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.0
Applied pow1/316.0
Applied pow-prod-down0.2
rmApplied add-sqr-sqrt0.3
Applied associate-*r*0.3
Final simplification0.3
herbie shell --seed 2019156 +o rules:numerics
(FPCore (x y z)
:name "Diagrams.ThreeD.Transform:aboutX from diagrams-lib-1.3.0.3, A"
(- (* x (cos y)) (* z (sin y))))