\frac{\left(\frac{\left(d1 \cdot \left(3\right)\right)}{\left(d1 \cdot d2\right)}\right)}{\left(d1 \cdot d3\right)}\left(\left(3 + d2\right) + d3\right) \cdot d1
double f(double d1, double d2, double d3) {
double r1496493 = d1;
double r1496494 = 3.0;
double r1496495 = /* ERROR: no posit support in C */;
double r1496496 = r1496493 * r1496495;
double r1496497 = d2;
double r1496498 = r1496493 * r1496497;
double r1496499 = r1496496 + r1496498;
double r1496500 = d3;
double r1496501 = r1496493 * r1496500;
double r1496502 = r1496499 + r1496501;
return r1496502;
}
double f(double d1, double d2, double d3) {
double r1496503 = 3.0;
double r1496504 = d2;
double r1496505 = r1496503 + r1496504;
double r1496506 = d3;
double r1496507 = r1496505 + r1496506;
double r1496508 = d1;
double r1496509 = r1496507 * r1496508;
return r1496509;
}



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 2019120
(FPCore (d1 d2 d3)
:name "FastMath test3"
(+.p16 (+.p16 (*.p16 d1 (real->posit16 3)) (*.p16 d1 d2)) (*.p16 d1 d3)))