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 r133593 = x;
double r133594 = y;
double r133595 = cos(r133594);
double r133596 = r133593 * r133595;
double r133597 = z;
double r133598 = sin(r133594);
double r133599 = r133597 * r133598;
double r133600 = r133596 + r133599;
return r133600;
}
double f(double x, double y, double z) {
double r133601 = x;
double r133602 = y;
double r133603 = cos(r133602);
double r133604 = 2.0;
double r133605 = pow(r133603, r133604);
double r133606 = cbrt(r133605);
double r133607 = r133601 * r133606;
double r133608 = cbrt(r133603);
double r133609 = log1p(r133608);
double r133610 = expm1(r133609);
double r133611 = r133607 * r133610;
double r133612 = z;
double r133613 = sin(r133602);
double r133614 = r133612 * r133613;
double r133615 = r133611 + r133614;
return r133615;
}



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:aboutY from diagrams-lib-1.3.0.3"
:precision binary64
(+ (* x (cos y)) (* z (sin y))))