\frac{\left(\frac{\left(d1 \cdot \left(3\right)\right)}{\left(d1 \cdot d2\right)}\right)}{\left(d1 \cdot d3\right)}\left(3 + \left(d2 + d3\right)\right) \cdot d1
double f(double d1, double d2, double d3) {
double r6002708 = d1;
double r6002709 = 3.0;
double r6002710 = /* ERROR: no posit support in C */;
double r6002711 = r6002708 * r6002710;
double r6002712 = d2;
double r6002713 = r6002708 * r6002712;
double r6002714 = r6002711 + r6002713;
double r6002715 = d3;
double r6002716 = r6002708 * r6002715;
double r6002717 = r6002714 + r6002716;
return r6002717;
}
double f(double d1, double d2, double d3) {
double r6002718 = 3.0;
double r6002719 = d2;
double r6002720 = d3;
double r6002721 = r6002719 + r6002720;
double r6002722 = r6002718 + r6002721;
double r6002723 = d1;
double r6002724 = r6002722 * r6002723;
return r6002724;
}



Bits error versus d1



Bits error versus d2



Bits error versus d3
Initial program 0.5
Simplified0.3
Final simplification0.3
herbie shell --seed 2019134 +o rules:numerics
(FPCore (d1 d2 d3)
:name "FastMath test3"
(+.p16 (+.p16 (*.p16 d1 (real->posit16 3)) (*.p16 d1 d2)) (*.p16 d1 d3)))