\left(x + \sin y\right) + z \cdot \cos y
\left(x + \sin y\right) + \left(z \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)double f(double x, double y, double z) {
double r166793 = x;
double r166794 = y;
double r166795 = sin(r166794);
double r166796 = r166793 + r166795;
double r166797 = z;
double r166798 = cos(r166794);
double r166799 = r166797 * r166798;
double r166800 = r166796 + r166799;
return r166800;
}
double f(double x, double y, double z) {
double r166801 = x;
double r166802 = y;
double r166803 = sin(r166802);
double r166804 = r166801 + r166803;
double r166805 = z;
double r166806 = cos(r166802);
double r166807 = 2.0;
double r166808 = pow(r166806, r166807);
double r166809 = 0.3333333333333333;
double r166810 = pow(r166808, r166809);
double r166811 = r166805 * r166810;
double r166812 = cbrt(r166806);
double r166813 = expm1(r166812);
double r166814 = log1p(r166813);
double r166815 = r166811 * r166814;
double r166816 = r166804 + r166815;
return r166816;
}



Bits error versus x



Bits error versus y



Bits error versus z
Results
Initial program 0.1
rmApplied add-cube-cbrt0.2
Applied associate-*r*0.2
rmApplied pow1/316.0
Applied pow1/316.0
Applied pow-prod-down0.1
Simplified0.1
rmApplied log1p-expm1-u0.1
Final simplification0.1
herbie shell --seed 2020034 +o rules:numerics
(FPCore (x y z)
:name "Graphics.Rasterific.Svg.PathConverter:segmentToBezier from rasterific-svg-0.2.3.1, C"
:precision binary64
(+ (+ x (sin y)) (* z (cos y))))