double f(double d1, double d2, double d3) {
double r2097235 = d1;
double r2097236 = 3.0;
double r2097237 = r2097235 * r2097236;
double r2097238 = d2;
double r2097239 = r2097235 * r2097238;
double r2097240 = r2097237 + r2097239;
double r2097241 = d3;
double r2097242 = r2097235 * r2097241;
double r2097243 = r2097240 + r2097242;
return r2097243;
}
double f(double d1, double d2, double d3) {
double r2097244 = 3.0;
double r2097245 = d2;
double r2097246 = r2097244 + r2097245;
double r2097247 = d3;
double r2097248 = r2097246 + r2097247;
double r2097249 = d1;
double r2097250 = r2097248 * r2097249;
return r2097250;
}
\left(d1 \cdot 3 + d1 \cdot d2\right) + d1 \cdot d3
\left(\left(3 + d2\right) + d3\right) \cdot d1



Bits error versus d1



Bits error versus d2



Bits error versus d3
Initial program 0.5
Simplified0.3
rmApplied associate-+r+0.3
Final simplification0.3
herbie shell --seed 2019101
(FPCore (d1 d2 d3)
:name "FastMath test3"
(+.p16 (+.p16 (*.p16 d1 (real->posit16 3)) (*.p16 d1 d2)) (*.p16 d1 d3)))