x \cdot \cos y + z \cdot \sin y
\left(x \cdot {\left(\sqrt[3]{{\left({\left({\left(\cos y\right)}^{2}\right)}^{\left(\sqrt{3}\right)}\right)}^{\left(\sqrt{3}\right)}}\right)}^{\frac{1}{3}}\right) \cdot \sqrt[3]{\cos y} + z \cdot \sin ydouble f(double x, double y, double z) {
double r181254 = x;
double r181255 = y;
double r181256 = cos(r181255);
double r181257 = r181254 * r181256;
double r181258 = z;
double r181259 = sin(r181255);
double r181260 = r181258 * r181259;
double r181261 = r181257 + r181260;
return r181261;
}
double f(double x, double y, double z) {
double r181262 = x;
double r181263 = y;
double r181264 = cos(r181263);
double r181265 = 2.0;
double r181266 = pow(r181264, r181265);
double r181267 = 3.0;
double r181268 = sqrt(r181267);
double r181269 = pow(r181266, r181268);
double r181270 = pow(r181269, r181268);
double r181271 = cbrt(r181270);
double r181272 = 0.3333333333333333;
double r181273 = pow(r181271, r181272);
double r181274 = r181262 * r181273;
double r181275 = cbrt(r181264);
double r181276 = r181274 * r181275;
double r181277 = z;
double r181278 = sin(r181263);
double r181279 = r181277 * r181278;
double r181280 = r181276 + r181279;
return r181280;
}



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/315.6
Applied pow1/315.6
Applied pow-prod-down0.2
Simplified0.2
rmApplied add-cbrt-cube0.2
Simplified0.2
rmApplied add-sqr-sqrt0.2
Applied pow-unpow0.2
Final simplification0.2
herbie shell --seed 2019209
(FPCore (x y z)
:name "Diagrams.ThreeD.Transform:aboutY from diagrams-lib-1.3.0.3"
:precision binary64
(+ (* x (cos y)) (* z (sin y))))