x \cdot \sin y + z \cdot \cos y
x \cdot \sin y + z \cdot \left(\left({\left({\left(\cos y\right)}^{2}\right)}^{\frac{1}{3}} \cdot \sqrt[3]{{\left(\sqrt[3]{\cos y}\right)}^{2}}\right) \cdot \sqrt[3]{\sqrt[3]{\cos y}}\right)double f(double x, double y, double z) {
double r185940 = x;
double r185941 = y;
double r185942 = sin(r185941);
double r185943 = r185940 * r185942;
double r185944 = z;
double r185945 = cos(r185941);
double r185946 = r185944 * r185945;
double r185947 = r185943 + r185946;
return r185947;
}
double f(double x, double y, double z) {
double r185948 = x;
double r185949 = y;
double r185950 = sin(r185949);
double r185951 = r185948 * r185950;
double r185952 = z;
double r185953 = cos(r185949);
double r185954 = 2.0;
double r185955 = pow(r185953, r185954);
double r185956 = 0.3333333333333333;
double r185957 = pow(r185955, r185956);
double r185958 = cbrt(r185953);
double r185959 = pow(r185958, r185954);
double r185960 = cbrt(r185959);
double r185961 = r185957 * r185960;
double r185962 = cbrt(r185958);
double r185963 = r185961 * r185962;
double r185964 = r185952 * r185963;
double r185965 = r185951 + r185964;
return r185965;
}



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