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 \log \left(e^{\sqrt[3]{\cos y}}\right) - z \cdot \sin ydouble f(double x, double y, double z) {
double r213005 = x;
double r213006 = y;
double r213007 = cos(r213006);
double r213008 = r213005 * r213007;
double r213009 = z;
double r213010 = sin(r213006);
double r213011 = r213009 * r213010;
double r213012 = r213008 - r213011;
return r213012;
}
double f(double x, double y, double z) {
double r213013 = x;
double r213014 = y;
double r213015 = cos(r213014);
double r213016 = 2.0;
double r213017 = pow(r213015, r213016);
double r213018 = 0.6666666666666666;
double r213019 = pow(r213017, r213018);
double r213020 = 0.3333333333333333;
double r213021 = pow(r213017, r213020);
double r213022 = r213019 * r213021;
double r213023 = pow(r213022, r213020);
double r213024 = r213013 * r213023;
double r213025 = cbrt(r213015);
double r213026 = exp(r213025);
double r213027 = log(r213026);
double r213028 = r213024 * r213027;
double r213029 = z;
double r213030 = sin(r213014);
double r213031 = r213029 * r213030;
double r213032 = r213028 - r213031;
return r213032;
}



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
rmApplied add-log-exp0.3
Final simplification0.3
herbie shell --seed 2020060 +o rules:numerics
(FPCore (x y z)
:name "Diagrams.ThreeD.Transform:aboutX from diagrams-lib-1.3.0.3, A"
:precision binary64
(- (* x (cos y)) (* z (sin y))))