x \cdot \cos y - z \cdot \sin y
\sqrt[3]{\cos y} \cdot \left(x \cdot {\left(\frac{1}{2} + \frac{1}{2} \cdot \cos \left(y + y\right)\right)}^{\frac{1}{3}}\right) - \sin y \cdot zdouble f(double x, double y, double z) {
double r7304513 = x;
double r7304514 = y;
double r7304515 = cos(r7304514);
double r7304516 = r7304513 * r7304515;
double r7304517 = z;
double r7304518 = sin(r7304514);
double r7304519 = r7304517 * r7304518;
double r7304520 = r7304516 - r7304519;
return r7304520;
}
double f(double x, double y, double z) {
double r7304521 = y;
double r7304522 = cos(r7304521);
double r7304523 = cbrt(r7304522);
double r7304524 = x;
double r7304525 = 0.5;
double r7304526 = r7304521 + r7304521;
double r7304527 = cos(r7304526);
double r7304528 = r7304525 * r7304527;
double r7304529 = r7304525 + r7304528;
double r7304530 = 0.3333333333333333;
double r7304531 = pow(r7304529, r7304530);
double r7304532 = r7304524 * r7304531;
double r7304533 = r7304523 * r7304532;
double r7304534 = sin(r7304521);
double r7304535 = z;
double r7304536 = r7304534 * r7304535;
double r7304537 = r7304533 - r7304536;
return r7304537;
}



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
rmApplied pow1/30.2
rmApplied sqr-cos0.3
Simplified0.3
Final simplification0.3
herbie shell --seed 2019171 +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))))