\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 r5226543 = d1;
double r5226544 = d2;
double r5226545 = r5226543 * r5226544;
double r5226546 = d3;
double r5226547 = 5.0;
double r5226548 = /* ERROR: no posit support in C */;
double r5226549 = r5226546 + r5226548;
double r5226550 = r5226549 * r5226543;
double r5226551 = r5226545 + r5226550;
double r5226552 = 32.0;
double r5226553 = /* ERROR: no posit support in C */;
double r5226554 = r5226543 * r5226553;
double r5226555 = r5226551 + r5226554;
return r5226555;
}
double f(double d1, double d2, double d3) {
double r5226556 = d1;
double r5226557 = d2;
double r5226558 = r5226556 * r5226557;
double r5226559 = d3;
double r5226560 = 5.0;
double r5226561 = r5226559 + r5226560;
double r5226562 = r5226561 * r5226556;
double r5226563 = r5226558 + r5226562;
double r5226564 = 32.0;
double r5226565 = r5226556 * r5226564;
double r5226566 = r5226563 + r5226565;
return r5226566;
}



Bits error versus d1



Bits error versus d2



Bits error versus d3
Initial program 0.3
Final simplification0.3
herbie shell --seed 2019133 +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))))