x \cdot \cos y + z \cdot \sin y
\left(x \cdot {\left({\left({\left(\cos y\right)}^{2}\right)}^{\frac{2}{3}} \cdot {\left({\left(\cos y\right)}^{2}\right)}^{\frac{1}{3}}\right)}^{\frac{1}{3}}\right) \cdot \sqrt[3]{\cos y} + z \cdot \sin ydouble f(double x, double y, double z) {
double r163872 = x;
double r163873 = y;
double r163874 = cos(r163873);
double r163875 = r163872 * r163874;
double r163876 = z;
double r163877 = sin(r163873);
double r163878 = r163876 * r163877;
double r163879 = r163875 + r163878;
return r163879;
}
double f(double x, double y, double z) {
double r163880 = x;
double r163881 = y;
double r163882 = cos(r163881);
double r163883 = 2.0;
double r163884 = pow(r163882, r163883);
double r163885 = 0.6666666666666666;
double r163886 = pow(r163884, r163885);
double r163887 = 0.3333333333333333;
double r163888 = pow(r163884, r163887);
double r163889 = r163886 * r163888;
double r163890 = pow(r163889, r163887);
double r163891 = r163880 * r163890;
double r163892 = cbrt(r163882);
double r163893 = r163891 * r163892;
double r163894 = z;
double r163895 = sin(r163881);
double r163896 = r163894 * r163895;
double r163897 = r163893 + r163896;
return r163897;
}



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