x \cdot \sin y + z \cdot \cos y
z \cdot \left({\left(\left(\sqrt[3]{{\left(\cos y\right)}^{2}} \cdot \sqrt[3]{{\left(\cos y\right)}^{2}}\right) \cdot \sqrt[3]{{\left(\cos y\right)}^{2}}\right)}^{\frac{1}{3}} \cdot \sqrt[3]{\cos y}\right) + x \cdot \sin ydouble f(double x, double y, double z) {
double r120601 = x;
double r120602 = y;
double r120603 = sin(r120602);
double r120604 = r120601 * r120603;
double r120605 = z;
double r120606 = cos(r120602);
double r120607 = r120605 * r120606;
double r120608 = r120604 + r120607;
return r120608;
}
double f(double x, double y, double z) {
double r120609 = z;
double r120610 = y;
double r120611 = cos(r120610);
double r120612 = 2.0;
double r120613 = pow(r120611, r120612);
double r120614 = cbrt(r120613);
double r120615 = r120614 * r120614;
double r120616 = r120615 * r120614;
double r120617 = 0.3333333333333333;
double r120618 = pow(r120616, r120617);
double r120619 = cbrt(r120611);
double r120620 = r120618 * r120619;
double r120621 = r120609 * r120620;
double r120622 = x;
double r120623 = sin(r120610);
double r120624 = r120622 * r120623;
double r120625 = r120621 + r120624;
return r120625;
}



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
Taylor expanded around inf 0.2
rmApplied add-cube-cbrt0.3
rmApplied add-log-exp0.3
Final simplification0.3
herbie shell --seed 2019291
(FPCore (x y z)
:name "Diagrams.ThreeD.Transform:aboutX from diagrams-lib-1.3.0.3, B"
:precision binary64
(+ (* x (sin y)) (* z (cos y))))