x \cdot \sin y + z \cdot \cos y
\sqrt[3]{\cos y} \cdot \left(z \cdot e^{\left(\log \left(\cos y \cdot \cos y\right) \cdot \left(\sqrt[3]{\frac{1}{3}} \cdot \sqrt[3]{\frac{1}{3}}\right)\right) \cdot \sqrt[3]{\frac{1}{3}}}\right) + x \cdot \sin ydouble f(double x, double y, double z) {
double r9861156 = x;
double r9861157 = y;
double r9861158 = sin(r9861157);
double r9861159 = r9861156 * r9861158;
double r9861160 = z;
double r9861161 = cos(r9861157);
double r9861162 = r9861160 * r9861161;
double r9861163 = r9861159 + r9861162;
return r9861163;
}
double f(double x, double y, double z) {
double r9861164 = y;
double r9861165 = cos(r9861164);
double r9861166 = cbrt(r9861165);
double r9861167 = z;
double r9861168 = r9861165 * r9861165;
double r9861169 = log(r9861168);
double r9861170 = 0.3333333333333333;
double r9861171 = cbrt(r9861170);
double r9861172 = r9861171 * r9861171;
double r9861173 = r9861169 * r9861172;
double r9861174 = r9861173 * r9861171;
double r9861175 = exp(r9861174);
double r9861176 = r9861167 * r9861175;
double r9861177 = r9861166 * r9861176;
double r9861178 = x;
double r9861179 = sin(r9861164);
double r9861180 = r9861178 * r9861179;
double r9861181 = r9861177 + r9861180;
return r9861181;
}



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
rmApplied add-exp-log0.3
Simplified0.2
rmApplied add-cube-cbrt0.3
Applied associate-*r*0.3
Final simplification0.3
herbie shell --seed 2019170
(FPCore (x y z)
:name "Diagrams.ThreeD.Transform:aboutX from diagrams-lib-1.3.0.3, B"
(+ (* x (sin y)) (* z (cos y))))