x \cdot \cos y + z \cdot \sin y
\mathsf{fma}\left(z, \sin y, \left(x \cdot \sqrt[3]{{\left(\cos y\right)}^{2}}\right) \cdot \log \left(e^{\sqrt[3]{\cos y}}\right)\right)double f(double x, double y, double z) {
double r204771 = x;
double r204772 = y;
double r204773 = cos(r204772);
double r204774 = r204771 * r204773;
double r204775 = z;
double r204776 = sin(r204772);
double r204777 = r204775 * r204776;
double r204778 = r204774 + r204777;
return r204778;
}
double f(double x, double y, double z) {
double r204779 = z;
double r204780 = y;
double r204781 = sin(r204780);
double r204782 = x;
double r204783 = cos(r204780);
double r204784 = 2.0;
double r204785 = pow(r204783, r204784);
double r204786 = cbrt(r204785);
double r204787 = r204782 * r204786;
double r204788 = cbrt(r204783);
double r204789 = exp(r204788);
double r204790 = log(r204789);
double r204791 = r204787 * r204790;
double r204792 = fma(r204779, r204781, r204791);
return r204792;
}



Bits error versus x



Bits error versus y



Bits error versus z
Initial program 0.1
Simplified0.1
Taylor expanded around inf 0.1
Simplified0.1
rmApplied add-cube-cbrt0.4
Applied associate-*r*0.4
rmApplied cbrt-unprod0.3
Simplified0.3
rmApplied add-log-exp0.3
Final simplification0.3
herbie shell --seed 2019209 +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))))