x \cdot \cos y - z \cdot \sin y
\left(x \cdot {\left({\left({\left(\cos y\right)}^{2}\right)}^{\left(\sqrt[3]{\frac{1}{3}} \cdot \sqrt[3]{\frac{1}{3}}\right)}\right)}^{\left(\sqrt[3]{\frac{1}{3}}\right)}\right) \cdot \sqrt[3]{\cos y} - z \cdot \sin ydouble f(double x, double y, double z) {
double r189230 = x;
double r189231 = y;
double r189232 = cos(r189231);
double r189233 = r189230 * r189232;
double r189234 = z;
double r189235 = sin(r189231);
double r189236 = r189234 * r189235;
double r189237 = r189233 - r189236;
return r189237;
}
double f(double x, double y, double z) {
double r189238 = x;
double r189239 = y;
double r189240 = cos(r189239);
double r189241 = 2.0;
double r189242 = pow(r189240, r189241);
double r189243 = 0.3333333333333333;
double r189244 = cbrt(r189243);
double r189245 = r189244 * r189244;
double r189246 = pow(r189242, r189245);
double r189247 = pow(r189246, r189244);
double r189248 = r189238 * r189247;
double r189249 = cbrt(r189240);
double r189250 = r189248 * r189249;
double r189251 = z;
double r189252 = sin(r189239);
double r189253 = r189251 * r189252;
double r189254 = r189250 - r189253;
return r189254;
}



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
Simplified0.2
rmApplied add-cube-cbrt0.3
Applied pow-unpow0.2
Final simplification0.2
herbie shell --seed 2019235
(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))))