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 r152564 = x;
double r152565 = y;
double r152566 = z;
double r152567 = r152565 + r152566;
double r152568 = r152567 + r152566;
double r152569 = r152568 + r152565;
double r152570 = t;
double r152571 = r152569 + r152570;
double r152572 = r152564 * r152571;
double r152573 = 5.0;
double r152574 = r152565 * r152573;
double r152575 = r152572 + r152574;
return r152575;
}
double f(double x, double y, double z, double t) {
double r152576 = y;
double r152577 = z;
double r152578 = r152576 + r152577;
double r152579 = x;
double r152580 = r152579 + r152579;
double r152581 = 5.0;
double r152582 = t;
double r152583 = r152582 * r152579;
double r152584 = fma(r152581, r152576, r152583);
double r152585 = fma(r152578, r152580, r152584);
return r152585;
}



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.1
Final simplification0.1
herbie shell --seed 2019347 +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)))