x \cdot \cos y + z \cdot \sin y
\left(x \cdot {\left({\left({\left(\cos y\right)}^{2}\right)}^{\left(\sqrt{\frac{1}{3}}\right)}\right)}^{\left(\sqrt{\frac{1}{3}}\right)}\right) \cdot \sqrt[3]{\cos y} + z \cdot \sin ydouble f(double x, double y, double z) {
double r212148 = x;
double r212149 = y;
double r212150 = cos(r212149);
double r212151 = r212148 * r212150;
double r212152 = z;
double r212153 = sin(r212149);
double r212154 = r212152 * r212153;
double r212155 = r212151 + r212154;
return r212155;
}
double f(double x, double y, double z) {
double r212156 = x;
double r212157 = y;
double r212158 = cos(r212157);
double r212159 = 2.0;
double r212160 = pow(r212158, r212159);
double r212161 = 0.3333333333333333;
double r212162 = sqrt(r212161);
double r212163 = pow(r212160, r212162);
double r212164 = pow(r212163, r212162);
double r212165 = r212156 * r212164;
double r212166 = cbrt(r212158);
double r212167 = r212165 * r212166;
double r212168 = z;
double r212169 = sin(r212157);
double r212170 = r212168 * r212169;
double r212171 = r212167 + r212170;
return r212171;
}



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