\left(\frac{\left(\left(d1 \cdot d2\right) - \left(d1 \cdot d3\right)\right)}{\left(d4 \cdot d1\right)}\right) - \left(d1 \cdot d1\right)d1 \cdot \left(\mathsf{qma}\left(\left(\mathsf{qms}\left(\left(\left(d4 - d1\right)\right), d3, 1.0\right)\right), d2, 1.0\right)\right)double f(double d1, double d2, double d3, double d4) {
double r3217569 = d1;
double r3217570 = d2;
double r3217571 = r3217569 * r3217570;
double r3217572 = d3;
double r3217573 = r3217569 * r3217572;
double r3217574 = r3217571 - r3217573;
double r3217575 = d4;
double r3217576 = r3217575 * r3217569;
double r3217577 = r3217574 + r3217576;
double r3217578 = r3217569 * r3217569;
double r3217579 = r3217577 - r3217578;
return r3217579;
}
double f(double d1, double d2, double d3, double d4) {
double r3217580 = d1;
double r3217581 = d4;
double r3217582 = r3217581 - r3217580;
double r3217583 = /*Error: no posit support in C */;
double r3217584 = d3;
double r3217585 = 1.0;
double r3217586 = /*Error: no posit support in C */;
double r3217587 = d2;
double r3217588 = /*Error: no posit support in C */;
double r3217589 = /*Error: no posit support in C */;
double r3217590 = r3217580 * r3217589;
return r3217590;
}



Bits error versus d1



Bits error versus d2



Bits error versus d3



Bits error versus d4
Initial program 0.5
Simplified0.4
rmApplied associate--r+0.4
rmApplied introduce-quire0.4
Applied insert-quire-sub0.4
Applied insert-quire-add0.3
Final simplification0.3
herbie shell --seed 2019165
(FPCore (d1 d2 d3 d4)
:name "FastMath dist4"
(-.p16 (+.p16 (-.p16 (*.p16 d1 d2) (*.p16 d1 d3)) (*.p16 d4 d1)) (*.p16 d1 d1)))