\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1
\left(\left(d1 \cdot d2 - d3 \cdot d1\right) + d1 \cdot d4\right) - d1 \cdot d1
double f(double d1, double d2, double d3, double d4) {
double r9036462 = d1;
double r9036463 = d2;
double r9036464 = r9036462 * r9036463;
double r9036465 = d3;
double r9036466 = r9036462 * r9036465;
double r9036467 = r9036464 - r9036466;
double r9036468 = d4;
double r9036469 = r9036468 * r9036462;
double r9036470 = r9036467 + r9036469;
double r9036471 = r9036462 * r9036462;
double r9036472 = r9036470 - r9036471;
return r9036472;
}
double f(double d1, double d2, double d3, double d4) {
double r9036473 = d1;
double r9036474 = d2;
double r9036475 = r9036473 * r9036474;
double r9036476 = d3;
double r9036477 = r9036476 * r9036473;
double r9036478 = r9036475 - r9036477;
double r9036479 = d4;
double r9036480 = r9036473 * r9036479;
double r9036481 = r9036478 + r9036480;
double r9036482 = r9036473 * r9036473;
double r9036483 = r9036481 - r9036482;
return r9036483;
}




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
Final simplification0.0
herbie shell --seed 2019158 +o rules:numerics
(FPCore (d1 d2 d3 d4)
:name "FastMath dist4"
:herbie-target
(* d1 (- (+ (- d2 d3) d4) d1))
(- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)))