double f(double d1, double d2, double d3, double d4) {
double r938289 = d1;
double r938290 = d2;
double r938291 = r938289 * r938290;
double r938292 = d3;
double r938293 = r938289 * r938292;
double r938294 = r938291 - r938293;
double r938295 = d4;
double r938296 = r938295 * r938289;
double r938297 = r938294 + r938296;
double r938298 = r938289 * r938289;
double r938299 = r938297 - r938298;
return r938299;
}
double f(double d1, double d2, double d3, double d4) {
double r938300 = d1;
double r938301 = d2;
double r938302 = d3;
double r938303 = d4;
double r938304 = r938303 - r938300;
double r938305 = r938302 - r938304;
double r938306 = r938301 - r938305;
double r938307 = r938300 * r938306;
return r938307;
}
\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1
d1 \cdot \left(d2 - \left(d3 - \left(d4 - d1\right)\right)\right)



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