x \cdot \cos y - z \cdot \sin y
\left(x \cdot \left(\sqrt[3]{\cos y} \cdot \sqrt[3]{\cos y}\right)\right) \cdot \mathsf{log1p}\left(\mathsf{expm1}\left(\sqrt[3]{\cos y}\right)\right) - z \cdot \sin ydouble f(double x, double y, double z) {
double r122935 = x;
double r122936 = y;
double r122937 = cos(r122936);
double r122938 = r122935 * r122937;
double r122939 = z;
double r122940 = sin(r122936);
double r122941 = r122939 * r122940;
double r122942 = r122938 - r122941;
return r122942;
}
double f(double x, double y, double z) {
double r122943 = x;
double r122944 = y;
double r122945 = cos(r122944);
double r122946 = cbrt(r122945);
double r122947 = r122946 * r122946;
double r122948 = r122943 * r122947;
double r122949 = expm1(r122946);
double r122950 = log1p(r122949);
double r122951 = r122948 * r122950;
double r122952 = z;
double r122953 = sin(r122944);
double r122954 = r122952 * r122953;
double r122955 = r122951 - r122954;
return r122955;
}



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 log1p-expm1-u0.4
Final simplification0.4
herbie shell --seed 2019199 +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))))