x \cdot \cos y + z \cdot \sin y
\left(x \cdot {\left({\left(\cos y\right)}^{2}\right)}^{\frac{1}{3}}\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 r210240 = x;
double r210241 = y;
double r210242 = cos(r210241);
double r210243 = r210240 * r210242;
double r210244 = z;
double r210245 = sin(r210241);
double r210246 = r210244 * r210245;
double r210247 = r210243 + r210246;
return r210247;
}
double f(double x, double y, double z) {
double r210248 = x;
double r210249 = y;
double r210250 = cos(r210249);
double r210251 = 2.0;
double r210252 = pow(r210250, r210251);
double r210253 = 0.3333333333333333;
double r210254 = pow(r210252, r210253);
double r210255 = r210248 * r210254;
double r210256 = cbrt(r210250);
double r210257 = expm1(r210256);
double r210258 = log1p(r210257);
double r210259 = r210255 * r210258;
double r210260 = z;
double r210261 = sin(r210249);
double r210262 = r210260 * r210261;
double r210263 = r210259 + r210262;
return r210263;
}



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 pow1/316.5
Applied pow1/316.5
Applied pow-prod-down0.2
Simplified0.2
rmApplied log1p-expm1-u0.2
Final simplification0.2
herbie shell --seed 2019354 +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))))