x \cdot \sin y + z \cdot \cos y
\sqrt[3]{\cos y} \cdot \left(z \cdot \left({\left({\left(\cos y\right)}^{2}\right)}^{\frac{1}{9}} \cdot \sqrt[3]{{\left({\left(\cos y\right)}^{2}\right)}^{\frac{2}{3}}}\right)\right) + x \cdot \sin ydouble f(double x, double y, double z) {
double r181462 = x;
double r181463 = y;
double r181464 = sin(r181463);
double r181465 = r181462 * r181464;
double r181466 = z;
double r181467 = cos(r181463);
double r181468 = r181466 * r181467;
double r181469 = r181465 + r181468;
return r181469;
}
double f(double x, double y, double z) {
double r181470 = y;
double r181471 = cos(r181470);
double r181472 = cbrt(r181471);
double r181473 = z;
double r181474 = 2.0;
double r181475 = pow(r181471, r181474);
double r181476 = 0.1111111111111111;
double r181477 = pow(r181475, r181476);
double r181478 = 0.6666666666666666;
double r181479 = pow(r181475, r181478);
double r181480 = cbrt(r181479);
double r181481 = r181477 * r181480;
double r181482 = r181473 * r181481;
double r181483 = r181472 * r181482;
double r181484 = x;
double r181485 = sin(r181470);
double r181486 = r181484 * r181485;
double r181487 = r181483 + r181486;
return r181487;
}



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
Simplified0.4
rmApplied cbrt-unprod0.3
Simplified0.3
rmApplied add-cube-cbrt0.3
Applied cbrt-prod0.4
Simplified0.3
Taylor expanded around inf 0.3
Final simplification0.3
herbie shell --seed 2019174
(FPCore (x y z)
:name "Diagrams.ThreeD.Transform:aboutX from diagrams-lib-1.3.0.3, B"
(+ (* x (sin y)) (* z (cos y))))