\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1
\left(d1 \cdot d2 - d1 \cdot d3\right) + d1 \cdot \left(d4 - d1\right)
double f(double d1, double d2, double d3, double d4) {
double r208449 = d1;
double r208450 = d2;
double r208451 = r208449 * r208450;
double r208452 = d3;
double r208453 = r208449 * r208452;
double r208454 = r208451 - r208453;
double r208455 = d4;
double r208456 = r208455 * r208449;
double r208457 = r208454 + r208456;
double r208458 = r208449 * r208449;
double r208459 = r208457 - r208458;
return r208459;
}
double f(double d1, double d2, double d3, double d4) {
double r208460 = d1;
double r208461 = d2;
double r208462 = r208460 * r208461;
double r208463 = d3;
double r208464 = r208460 * r208463;
double r208465 = r208462 - r208464;
double r208466 = d4;
double r208467 = r208466 - r208460;
double r208468 = r208460 * r208467;
double r208469 = r208465 + r208468;
return r208469;
}




Bits error versus d1




Bits error versus d2




Bits error versus d3




Bits error versus d4
Results
| Original | 0.0 |
|---|---|
| Target | 0.0 |
| Herbie | 0.0 |
Initial program 0.0
rmApplied associate--l+0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019235
(FPCore (d1 d2 d3 d4)
:name "FastMath dist4"
:precision binary64
:herbie-target
(* d1 (- (+ (- d2 d3) d4) d1))
(- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)))