\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1
\left(d1 \cdot d2 + d1 \cdot \left(d4 - d3\right)\right) - d1 \cdot d1
double f(double d1, double d2, double d3, double d4) {
double r204770 = d1;
double r204771 = d2;
double r204772 = r204770 * r204771;
double r204773 = d3;
double r204774 = r204770 * r204773;
double r204775 = r204772 - r204774;
double r204776 = d4;
double r204777 = r204776 * r204770;
double r204778 = r204775 + r204777;
double r204779 = r204770 * r204770;
double r204780 = r204778 - r204779;
return r204780;
}
double f(double d1, double d2, double d3, double d4) {
double r204781 = d1;
double r204782 = d2;
double r204783 = r204781 * r204782;
double r204784 = d4;
double r204785 = d3;
double r204786 = r204784 - r204785;
double r204787 = r204781 * r204786;
double r204788 = r204783 + r204787;
double r204789 = r204781 * r204781;
double r204790 = r204788 - r204789;
return r204790;
}




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 sub-neg0.0
Applied associate-+l+0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019199
(FPCore (d1 d2 d3 d4)
:name "FastMath dist4"
:herbie-target
(* d1 (- (+ (- d2 d3) d4) d1))
(- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)))