x \cdot \left(\left(\left(\left(y + z\right) + z\right) + y\right) + t\right) + y \cdot 5
\mathsf{fma}\left(y + z, x + x, \mathsf{fma}\left(5, y, t \cdot x\right)\right)double f(double x, double y, double z, double t) {
double r127787 = x;
double r127788 = y;
double r127789 = z;
double r127790 = r127788 + r127789;
double r127791 = r127790 + r127789;
double r127792 = r127791 + r127788;
double r127793 = t;
double r127794 = r127792 + r127793;
double r127795 = r127787 * r127794;
double r127796 = 5.0;
double r127797 = r127788 * r127796;
double r127798 = r127795 + r127797;
return r127798;
}
double f(double x, double y, double z, double t) {
double r127799 = y;
double r127800 = z;
double r127801 = r127799 + r127800;
double r127802 = x;
double r127803 = r127802 + r127802;
double r127804 = 5.0;
double r127805 = t;
double r127806 = r127805 * r127802;
double r127807 = fma(r127804, r127799, r127806);
double r127808 = fma(r127801, r127803, r127807);
return r127808;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t
Initial program 0.1
Simplified0.1
Taylor expanded around 0 0.1
Simplified0.0
Final simplification0.0
herbie shell --seed 2020062 +o rules:numerics
(FPCore (x y z t)
:name "Graphics.Rendering.Plot.Render.Plot.Legend:renderLegendOutside from plot-0.2.3.4, B"
:precision binary64
(+ (* x (+ (+ (+ (+ y z) z) y) t)) (* y 5)))