\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(d2 - \left(d3 + d1\right)\right) + d1 \cdot d4
double f(double d1, double d2, double d3, double d4) {
double r3772545 = d1;
double r3772546 = d2;
double r3772547 = r3772545 * r3772546;
double r3772548 = d3;
double r3772549 = r3772545 * r3772548;
double r3772550 = r3772547 - r3772549;
double r3772551 = d4;
double r3772552 = r3772551 * r3772545;
double r3772553 = r3772550 + r3772552;
double r3772554 = r3772545 * r3772545;
double r3772555 = r3772553 - r3772554;
return r3772555;
}
double f(double d1, double d2, double d3, double d4) {
double r3772556 = d1;
double r3772557 = d2;
double r3772558 = d3;
double r3772559 = r3772558 + r3772556;
double r3772560 = r3772557 - r3772559;
double r3772561 = r3772556 * r3772560;
double r3772562 = d4;
double r3772563 = r3772556 * r3772562;
double r3772564 = r3772561 + r3772563;
return r3772564;
}



Bits error versus d1



Bits error versus d2



Bits error versus d3



Bits error versus d4
Initial program 0.5
Simplified0.4
rmApplied associate-+l-0.4
rmApplied sub-neg0.4
Applied distribute-rgt-in0.4
Simplified0.4
Simplified0.4
rmApplied distribute-lft-in0.4
Final simplification0.4
herbie shell --seed 2019120 +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)))