x \cdot \cos y - z \cdot \sin y
\left(x \cdot \sqrt[3]{{\left(\cos y\right)}^{2}}\right) \cdot \mathsf{expm1}\left(\mathsf{log1p}\left(\sqrt[3]{\cos y}\right)\right) - z \cdot \sin ydouble f(double x, double y, double z) {
double r127957 = x;
double r127958 = y;
double r127959 = cos(r127958);
double r127960 = r127957 * r127959;
double r127961 = z;
double r127962 = sin(r127958);
double r127963 = r127961 * r127962;
double r127964 = r127960 - r127963;
return r127964;
}
double f(double x, double y, double z) {
double r127965 = x;
double r127966 = y;
double r127967 = cos(r127966);
double r127968 = 2.0;
double r127969 = pow(r127967, r127968);
double r127970 = cbrt(r127969);
double r127971 = r127965 * r127970;
double r127972 = cbrt(r127967);
double r127973 = log1p(r127972);
double r127974 = expm1(r127973);
double r127975 = r127971 * r127974;
double r127976 = z;
double r127977 = sin(r127966);
double r127978 = r127976 * r127977;
double r127979 = r127975 - r127978;
return r127979;
}



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 cbrt-unprod0.3
Simplified0.3
rmApplied expm1-log1p-u0.3
Final simplification0.3
herbie shell --seed 2019304 +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))))