x \cdot \cos y + z \cdot \sin y
\left(x \cdot \sqrt[3]{{\left({\left(\cos y\right)}^{2}\right)}^{\frac{2}{3}} \cdot {\left({\left(\cos y\right)}^{2}\right)}^{\frac{1}{3}}}\right) \cdot \sqrt[3]{\cos y} + z \cdot \sin ydouble f(double x, double y, double z) {
double r217380 = x;
double r217381 = y;
double r217382 = cos(r217381);
double r217383 = r217380 * r217382;
double r217384 = z;
double r217385 = sin(r217381);
double r217386 = r217384 * r217385;
double r217387 = r217383 + r217386;
return r217387;
}
double f(double x, double y, double z) {
double r217388 = x;
double r217389 = y;
double r217390 = cos(r217389);
double r217391 = 2.0;
double r217392 = pow(r217390, r217391);
double r217393 = 0.6666666666666666;
double r217394 = pow(r217392, r217393);
double r217395 = 0.3333333333333333;
double r217396 = pow(r217392, r217395);
double r217397 = r217394 * r217396;
double r217398 = cbrt(r217397);
double r217399 = r217388 * r217398;
double r217400 = cbrt(r217390);
double r217401 = r217399 * r217400;
double r217402 = z;
double r217403 = sin(r217389);
double r217404 = r217402 * r217403;
double r217405 = r217401 + r217404;
return r217405;
}



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
Simplified0.3
rmApplied add-cube-cbrt0.3
Simplified0.3
rmApplied pow1/30.3
Final simplification0.3
herbie shell --seed 2020047
(FPCore (x y z)
:name "Diagrams.ThreeD.Transform:aboutY from diagrams-lib-1.3.0.3"
:precision binary64
(+ (* x (cos y)) (* z (sin y))))