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 r9502560 = x;
double r9502561 = y;
double r9502562 = cos(r9502561);
double r9502563 = r9502560 * r9502562;
double r9502564 = z;
double r9502565 = sin(r9502561);
double r9502566 = r9502564 * r9502565;
double r9502567 = r9502563 - r9502566;
return r9502567;
}
double f(double x, double y, double z) {
double r9502568 = x;
double r9502569 = y;
double r9502570 = cos(r9502569);
double r9502571 = r9502570 * r9502570;
double r9502572 = r9502571 * r9502571;
double r9502573 = r9502571 * r9502572;
double r9502574 = cbrt(r9502573);
double r9502575 = 0.3333333333333333;
double r9502576 = pow(r9502574, r9502575);
double r9502577 = r9502568 * r9502576;
double r9502578 = cbrt(r9502570);
double r9502579 = r9502577 * r9502578;
double r9502580 = sin(r9502569);
double r9502581 = z;
double r9502582 = r9502580 * r9502581;
double r9502583 = r9502579 - r9502582;
return r9502583;
}



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