x \cdot \sin y + z \cdot \cos y
\mathsf{fma}\left(x, \sin y, z \cdot \cos y\right)double f(double x, double y, double z) {
double r171903 = x;
double r171904 = y;
double r171905 = sin(r171904);
double r171906 = r171903 * r171905;
double r171907 = z;
double r171908 = cos(r171904);
double r171909 = r171907 * r171908;
double r171910 = r171906 + r171909;
return r171910;
}
double f(double x, double y, double z) {
double r171911 = x;
double r171912 = y;
double r171913 = sin(r171912);
double r171914 = z;
double r171915 = cos(r171912);
double r171916 = r171914 * r171915;
double r171917 = fma(r171911, r171913, r171916);
return r171917;
}



Bits error versus x



Bits error versus y



Bits error versus z
Initial program 0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2020046 +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))))