x \cdot \sin y + z \cdot \cos y
x \cdot \sin y + \left(z \cdot \left(\sqrt[3]{\cos y} \cdot \mathsf{log1p}\left(\mathsf{expm1}\left(\sqrt[3]{\cos y}\right)\right)\right)\right) \cdot \sqrt[3]{\cos y}double f(double x, double y, double z) {
double r184182 = x;
double r184183 = y;
double r184184 = sin(r184183);
double r184185 = r184182 * r184184;
double r184186 = z;
double r184187 = cos(r184183);
double r184188 = r184186 * r184187;
double r184189 = r184185 + r184188;
return r184189;
}
double f(double x, double y, double z) {
double r184190 = x;
double r184191 = y;
double r184192 = sin(r184191);
double r184193 = r184190 * r184192;
double r184194 = z;
double r184195 = cos(r184191);
double r184196 = cbrt(r184195);
double r184197 = expm1(r184196);
double r184198 = log1p(r184197);
double r184199 = r184196 * r184198;
double r184200 = r184194 * r184199;
double r184201 = r184200 * r184196;
double r184202 = r184193 + r184201;
return r184202;
}



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 2020065 +o rules:numerics
(FPCore (x y z)
:name "Diagrams.ThreeD.Transform:aboutX from diagrams-lib-1.3.0.3, B"
:precision binary64
(+ (* x (sin y)) (* z (cos y))))