x \cdot \cos y + z \cdot \sin y
\left(x \cdot {\left(\sqrt[3]{{\left(\cos y\right)}^{4}} \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 r278065 = x;
double r278066 = y;
double r278067 = cos(r278066);
double r278068 = r278065 * r278067;
double r278069 = z;
double r278070 = sin(r278066);
double r278071 = r278069 * r278070;
double r278072 = r278068 + r278071;
return r278072;
}
double f(double x, double y, double z) {
double r278073 = x;
double r278074 = y;
double r278075 = cos(r278074);
double r278076 = 4.0;
double r278077 = pow(r278075, r278076);
double r278078 = cbrt(r278077);
double r278079 = 2.0;
double r278080 = pow(r278075, r278079);
double r278081 = 0.3333333333333333;
double r278082 = pow(r278080, r278081);
double r278083 = r278078 * r278082;
double r278084 = pow(r278083, r278081);
double r278085 = r278073 * r278084;
double r278086 = cbrt(r278075);
double r278087 = r278085 * r278086;
double r278088 = z;
double r278089 = sin(r278074);
double r278090 = r278088 * r278089;
double r278091 = r278087 + r278090;
return r278091;
}



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