\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)\left(\mathsf{qma}\left(\left(\left(\left(d4 - \left(d1 + d3\right)\right) \cdot d1\right)\right), d2, d1\right)\right)double f(double d1, double d2, double d3, double d4) {
double r1503134 = d1;
double r1503135 = d2;
double r1503136 = r1503134 * r1503135;
double r1503137 = d3;
double r1503138 = r1503134 * r1503137;
double r1503139 = r1503136 - r1503138;
double r1503140 = d4;
double r1503141 = r1503140 * r1503134;
double r1503142 = r1503139 + r1503141;
double r1503143 = r1503134 * r1503134;
double r1503144 = r1503142 - r1503143;
return r1503144;
}
double f(double d1, double d2, double d3, double d4) {
double r1503145 = d4;
double r1503146 = d1;
double r1503147 = d3;
double r1503148 = r1503146 + r1503147;
double r1503149 = r1503145 - r1503148;
double r1503150 = r1503149 * r1503146;
double r1503151 = /*Error: no posit support in C */;
double r1503152 = d2;
double r1503153 = /*Error: no posit support in C */;
double r1503154 = /*Error: no posit support in C */;
return r1503154;
}



Bits error versus d1



Bits error versus d2



Bits error versus d3



Bits error versus d4
Initial program 0.5
Simplified0.4
rmApplied distribute-rgt-in0.4
rmApplied introduce-quire0.4
Applied insert-quire-fdp-add0.4
Final simplification0.4
herbie shell --seed 2019156 +o rules:numerics
(FPCore (d1 d2 d3 d4)
:name "FastMath dist4"
(-.p16 (+.p16 (-.p16 (*.p16 d1 d2) (*.p16 d1 d3)) (*.p16 d4 d1)) (*.p16 d1 d1)))