x \cdot \cos y + z \cdot \sin y
\mathsf{fma}\left(\sin y, z, \left(x \cdot {\left(e^{\log \left(\cos y \cdot \cos y\right)}\right)}^{\frac{1}{3}}\right) \cdot \sqrt[3]{\cos y}\right)double f(double x, double y, double z) {
double r6152050 = x;
double r6152051 = y;
double r6152052 = cos(r6152051);
double r6152053 = r6152050 * r6152052;
double r6152054 = z;
double r6152055 = sin(r6152051);
double r6152056 = r6152054 * r6152055;
double r6152057 = r6152053 + r6152056;
return r6152057;
}
double f(double x, double y, double z) {
double r6152058 = y;
double r6152059 = sin(r6152058);
double r6152060 = z;
double r6152061 = x;
double r6152062 = cos(r6152058);
double r6152063 = r6152062 * r6152062;
double r6152064 = log(r6152063);
double r6152065 = exp(r6152064);
double r6152066 = 0.3333333333333333;
double r6152067 = pow(r6152065, r6152066);
double r6152068 = r6152061 * r6152067;
double r6152069 = cbrt(r6152062);
double r6152070 = r6152068 * r6152069;
double r6152071 = fma(r6152059, r6152060, r6152070);
return r6152071;
}



Bits error versus x



Bits error versus y



Bits error versus z
Initial program 0.1
Simplified0.1
rmApplied add-cube-cbrt0.4
Applied associate-*r*0.4
rmApplied pow1/316.8
Applied pow1/316.8
Applied pow-prod-down0.2
rmApplied add-exp-log0.2
Final simplification0.2
herbie shell --seed 2019165 +o rules:numerics
(FPCore (x y z)
:name "Diagrams.ThreeD.Transform:aboutY from diagrams-lib-1.3.0.3"
(+ (* x (cos y)) (* z (sin y))))