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 r185295 = x;
double r185296 = y;
double r185297 = cos(r185296);
double r185298 = r185295 * r185297;
double r185299 = z;
double r185300 = sin(r185296);
double r185301 = r185299 * r185300;
double r185302 = r185298 - r185301;
return r185302;
}
double f(double x, double y, double z) {
double r185303 = x;
double r185304 = y;
double r185305 = cos(r185304);
double r185306 = 2.0;
double r185307 = pow(r185305, r185306);
double r185308 = 0.6666666666666666;
double r185309 = pow(r185307, r185308);
double r185310 = 0.3333333333333333;
double r185311 = pow(r185307, r185310);
double r185312 = r185309 * r185311;
double r185313 = cbrt(r185312);
double r185314 = r185303 * r185313;
double r185315 = cbrt(r185305);
double r185316 = r185314 * r185315;
double r185317 = z;
double r185318 = sin(r185304);
double r185319 = r185317 * r185318;
double r185320 = r185316 - r185319;
return r185320;
}



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 +o rules:numerics
(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))))