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 r196712 = x;
double r196713 = y;
double r196714 = cos(r196713);
double r196715 = r196712 * r196714;
double r196716 = z;
double r196717 = sin(r196713);
double r196718 = r196716 * r196717;
double r196719 = r196715 + r196718;
return r196719;
}
double f(double x, double y, double z) {
double r196720 = x;
double r196721 = y;
double r196722 = cos(r196721);
double r196723 = 2.0;
double r196724 = pow(r196722, r196723);
double r196725 = 0.3333333333333333;
double r196726 = sqrt(r196725);
double r196727 = pow(r196724, r196726);
double r196728 = pow(r196727, r196726);
double r196729 = r196720 * r196728;
double r196730 = cbrt(r196722);
double r196731 = r196729 * r196730;
double r196732 = z;
double r196733 = sin(r196721);
double r196734 = r196732 * r196733;
double r196735 = r196731 + r196734;
return r196735;
}



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 +o rules:numerics
(FPCore (x y z)
:name "Diagrams.ThreeD.Transform:aboutY from diagrams-lib-1.3.0.3"
:precision binary64
(+ (* x (cos y)) (* z (sin y))))