\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 r9021307 = d1;
double r9021308 = d2;
double r9021309 = r9021307 * r9021308;
double r9021310 = d3;
double r9021311 = r9021307 * r9021310;
double r9021312 = r9021309 - r9021311;
double r9021313 = d4;
double r9021314 = r9021313 * r9021307;
double r9021315 = r9021312 + r9021314;
double r9021316 = r9021307 * r9021307;
double r9021317 = r9021315 - r9021316;
return r9021317;
}
double f(double d1, double d2, double d3, double d4) {
double r9021318 = d1;
double r9021319 = d2;
double r9021320 = r9021318 * r9021319;
double r9021321 = d3;
double r9021322 = r9021321 * r9021318;
double r9021323 = r9021320 - r9021322;
double r9021324 = d4;
double r9021325 = r9021318 * r9021324;
double r9021326 = r9021323 + r9021325;
double r9021327 = r9021318 * r9021318;
double r9021328 = r9021326 - r9021327;
return r9021328;
}




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 2019164 +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)))