\frac{\left(\frac{\left(d1 \cdot d2\right)}{\left(\left(\frac{d3}{\left(5\right)}\right) \cdot d1\right)}\right)}{\left(d1 \cdot \left(32\right)\right)}\left(d1 \cdot d2 + \left(d3 + 5\right) \cdot d1\right) + d1 \cdot 32
double f(double d1, double d2, double d3) {
double r5132111 = d1;
double r5132112 = d2;
double r5132113 = r5132111 * r5132112;
double r5132114 = d3;
double r5132115 = 5.0;
double r5132116 = /* ERROR: no posit support in C */;
double r5132117 = r5132114 + r5132116;
double r5132118 = r5132117 * r5132111;
double r5132119 = r5132113 + r5132118;
double r5132120 = 32.0;
double r5132121 = /* ERROR: no posit support in C */;
double r5132122 = r5132111 * r5132121;
double r5132123 = r5132119 + r5132122;
return r5132123;
}
double f(double d1, double d2, double d3) {
double r5132124 = d1;
double r5132125 = d2;
double r5132126 = r5132124 * r5132125;
double r5132127 = d3;
double r5132128 = 5.0;
double r5132129 = r5132127 + r5132128;
double r5132130 = r5132129 * r5132124;
double r5132131 = r5132126 + r5132130;
double r5132132 = 32.0;
double r5132133 = r5132124 * r5132132;
double r5132134 = r5132131 + r5132133;
return r5132134;
}



Bits error versus d1



Bits error versus d2



Bits error versus d3
Initial program 0.3
Final simplification0.3
herbie shell --seed 2019130 +o rules:numerics
(FPCore (d1 d2 d3)
:name "FastMath dist3"
(+.p16 (+.p16 (*.p16 d1 d2) (*.p16 (+.p16 d3 (real->posit16 5)) d1)) (*.p16 d1 (real->posit16 32))))