\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1
\mathsf{fma}\left(d1, d2 - d3, d4 \cdot d1\right) - d1 \cdot d1double f(double d1, double d2, double d3, double d4) {
double r8313316 = d1;
double r8313317 = d2;
double r8313318 = r8313316 * r8313317;
double r8313319 = d3;
double r8313320 = r8313316 * r8313319;
double r8313321 = r8313318 - r8313320;
double r8313322 = d4;
double r8313323 = r8313322 * r8313316;
double r8313324 = r8313321 + r8313323;
double r8313325 = r8313316 * r8313316;
double r8313326 = r8313324 - r8313325;
return r8313326;
}
double f(double d1, double d2, double d3, double d4) {
double r8313327 = d1;
double r8313328 = d2;
double r8313329 = d3;
double r8313330 = r8313328 - r8313329;
double r8313331 = d4;
double r8313332 = r8313331 * r8313327;
double r8313333 = fma(r8313327, r8313330, r8313332);
double r8313334 = r8313327 * r8313327;
double r8313335 = r8313333 - r8313334;
return r8313335;
}




Bits error versus d1




Bits error versus d2




Bits error versus d3




Bits error versus d4
| Original | 0.0 |
|---|---|
| Target | 0.0 |
| Herbie | 0.0 |
Initial program 0.0
rmApplied distribute-lft-out--0.0
Applied fma-def0.0
Final simplification0.0
herbie shell --seed 2019163 +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)))