\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1
\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1
double f(double d1, double d2, double d3, double d4) {
double r154719 = d1;
double r154720 = d2;
double r154721 = r154719 * r154720;
double r154722 = d3;
double r154723 = r154719 * r154722;
double r154724 = r154721 - r154723;
double r154725 = d4;
double r154726 = r154725 * r154719;
double r154727 = r154724 + r154726;
double r154728 = r154719 * r154719;
double r154729 = r154727 - r154728;
return r154729;
}
double f(double d1, double d2, double d3, double d4) {
double r154730 = d1;
double r154731 = d2;
double r154732 = r154730 * r154731;
double r154733 = d3;
double r154734 = r154730 * r154733;
double r154735 = r154732 - r154734;
double r154736 = d4;
double r154737 = r154736 * r154730;
double r154738 = r154735 + r154737;
double r154739 = r154730 * r154730;
double r154740 = r154738 - r154739;
return r154740;
}




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 2019212 +o rules:numerics
(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)))