x \cdot \cos y + z \cdot \sin y
x \cdot \cos y + \left(z \cdot \left(\sqrt[3]{\sin y} \cdot \sqrt[3]{\sin y}\right)\right) \cdot \mathsf{log1p}\left(\mathsf{expm1}\left(\sqrt[3]{\sin y}\right)\right)double f(double x, double y, double z) {
double r209644 = x;
double r209645 = y;
double r209646 = cos(r209645);
double r209647 = r209644 * r209646;
double r209648 = z;
double r209649 = sin(r209645);
double r209650 = r209648 * r209649;
double r209651 = r209647 + r209650;
return r209651;
}
double f(double x, double y, double z) {
double r209652 = x;
double r209653 = y;
double r209654 = cos(r209653);
double r209655 = r209652 * r209654;
double r209656 = z;
double r209657 = sin(r209653);
double r209658 = cbrt(r209657);
double r209659 = r209658 * r209658;
double r209660 = r209656 * r209659;
double r209661 = expm1(r209658);
double r209662 = log1p(r209661);
double r209663 = r209660 * r209662;
double r209664 = r209655 + r209663;
return r209664;
}



Bits error versus x



Bits error versus y



Bits error versus z
Results
Initial program 0.1
rmApplied add-cube-cbrt0.6
Applied associate-*r*0.6
rmApplied log1p-expm1-u0.6
Final simplification0.6
herbie shell --seed 2019362 +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))))