x \cdot \cos y - z \cdot \sin y
\mathsf{expm1}\left(\mathsf{log1p}\left(\sqrt[3]{\cos y}\right)\right) \cdot \left(\left(\sqrt[3]{\cos y} \cdot \sqrt[3]{\cos y}\right) \cdot x\right) - z \cdot \sin ydouble f(double x, double y, double z) {
double r5599734 = x;
double r5599735 = y;
double r5599736 = cos(r5599735);
double r5599737 = r5599734 * r5599736;
double r5599738 = z;
double r5599739 = sin(r5599735);
double r5599740 = r5599738 * r5599739;
double r5599741 = r5599737 - r5599740;
return r5599741;
}
double f(double x, double y, double z) {
double r5599742 = y;
double r5599743 = cos(r5599742);
double r5599744 = cbrt(r5599743);
double r5599745 = log1p(r5599744);
double r5599746 = expm1(r5599745);
double r5599747 = r5599744 * r5599744;
double r5599748 = x;
double r5599749 = r5599747 * r5599748;
double r5599750 = r5599746 * r5599749;
double r5599751 = z;
double r5599752 = sin(r5599742);
double r5599753 = r5599751 * r5599752;
double r5599754 = r5599750 - r5599753;
return r5599754;
}



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 expm1-log1p-u0.4
Final simplification0.4
herbie shell --seed 2019170 +o rules:numerics
(FPCore (x y z)
:name "Diagrams.ThreeD.Transform:aboutX from diagrams-lib-1.3.0.3, A"
(- (* x (cos y)) (* z (sin y))))