\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(\left(\left(\left(d2 + d4\right) - \left(d3 + d1\right)\right) \cdot d1\right)\right)
double f(double d1, double d2, double d3, double d4) {
double r1406417 = d1;
double r1406418 = d2;
double r1406419 = r1406417 * r1406418;
double r1406420 = d3;
double r1406421 = r1406417 * r1406420;
double r1406422 = r1406419 - r1406421;
double r1406423 = d4;
double r1406424 = r1406423 * r1406417;
double r1406425 = r1406422 + r1406424;
double r1406426 = r1406417 * r1406417;
double r1406427 = r1406425 - r1406426;
return r1406427;
}
double f(double d1, double d2, double d3, double d4) {
double r1406428 = d2;
double r1406429 = d4;
double r1406430 = r1406428 + r1406429;
double r1406431 = d3;
double r1406432 = d1;
double r1406433 = r1406431 + r1406432;
double r1406434 = r1406430 - r1406433;
double r1406435 = r1406434 * r1406432;
double r1406436 = /*Error: no posit support in C */;
double r1406437 = /*Error: no posit support in C */;
return r1406437;
}



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
Simplified0.4
Final simplification0.4
herbie shell --seed 2019152
(FPCore (d1 d2 d3 d4)
:name "FastMath dist4"
(-.p16 (+.p16 (-.p16 (*.p16 d1 d2) (*.p16 d1 d3)) (*.p16 d4 d1)) (*.p16 d1 d1)))