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 r135339 = x;
double r135340 = y;
double r135341 = cos(r135340);
double r135342 = r135339 * r135341;
double r135343 = z;
double r135344 = sin(r135340);
double r135345 = r135343 * r135344;
double r135346 = r135342 - r135345;
return r135346;
}
double f(double x, double y, double z) {
double r135347 = x;
double r135348 = y;
double r135349 = cos(r135348);
double r135350 = 2.0;
double r135351 = pow(r135349, r135350);
double r135352 = 0.3333333333333333;
double r135353 = cbrt(r135352);
double r135354 = r135353 * r135353;
double r135355 = pow(r135351, r135354);
double r135356 = pow(r135355, r135353);
double r135357 = r135347 * r135356;
double r135358 = cbrt(r135349);
double r135359 = r135357 * r135358;
double r135360 = z;
double r135361 = sin(r135348);
double r135362 = r135360 * r135361;
double r135363 = r135359 - r135362;
return r135363;
}



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 +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))))