\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(\mathsf{qma}\left(\left(\mathsf{qma}\left(\left(\left(d1 \cdot d2\right)\right), \left(\left(d3 + 5\right) \cdot d1\right), 1.0\right)\right), d1, 32\right)\right)double f(double d1, double d2, double d3) {
double r7167707 = d1;
double r7167708 = d2;
double r7167709 = r7167707 * r7167708;
double r7167710 = d3;
double r7167711 = 5.0;
double r7167712 = /* ERROR: no posit support in C */;
double r7167713 = r7167710 + r7167712;
double r7167714 = r7167713 * r7167707;
double r7167715 = r7167709 + r7167714;
double r7167716 = 32.0;
double r7167717 = /* ERROR: no posit support in C */;
double r7167718 = r7167707 * r7167717;
double r7167719 = r7167715 + r7167718;
return r7167719;
}
double f(double d1, double d2, double d3) {
double r7167720 = d1;
double r7167721 = d2;
double r7167722 = r7167720 * r7167721;
double r7167723 = /*Error: no posit support in C */;
double r7167724 = d3;
double r7167725 = 5.0;
double r7167726 = r7167724 + r7167725;
double r7167727 = r7167726 * r7167720;
double r7167728 = 1.0;
double r7167729 = /*Error: no posit support in C */;
double r7167730 = 32.0;
double r7167731 = /*Error: no posit support in C */;
double r7167732 = /*Error: no posit support in C */;
return r7167732;
}



Bits error versus d1



Bits error versus d2



Bits error versus d3
Initial program 0.3
rmApplied introduce-quire0.3
Applied insert-quire-add0.3
Applied insert-quire-fdp-add0.2
Final simplification0.2
herbie shell --seed 2019162
(FPCore (d1 d2 d3)
:name "FastMath dist3"
(+.p16 (+.p16 (*.p16 d1 d2) (*.p16 (+.p16 d3 (real->posit16 5)) d1)) (*.p16 d1 (real->posit16 32))))