\left(x \cdot y + z \cdot t\right) + a \cdot b
\mathsf{fma}\left(a, b, \mathsf{fma}\left(x, y, z \cdot t\right)\right)double f(double x, double y, double z, double t, double a, double b) {
double r143901 = x;
double r143902 = y;
double r143903 = r143901 * r143902;
double r143904 = z;
double r143905 = t;
double r143906 = r143904 * r143905;
double r143907 = r143903 + r143906;
double r143908 = a;
double r143909 = b;
double r143910 = r143908 * r143909;
double r143911 = r143907 + r143910;
return r143911;
}
double f(double x, double y, double z, double t, double a, double b) {
double r143912 = a;
double r143913 = b;
double r143914 = x;
double r143915 = y;
double r143916 = z;
double r143917 = t;
double r143918 = r143916 * r143917;
double r143919 = fma(r143914, r143915, r143918);
double r143920 = fma(r143912, r143913, r143919);
return r143920;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a



Bits error versus b
Initial program 0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019208 +o rules:numerics
(FPCore (x y z t a b)
:name "Linear.V3:$cdot from linear-1.19.1.3, B"
:precision binary64
(+ (+ (* x y) (* z t)) (* a b)))