\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 r350083 = d1;
double r350084 = d2;
double r350085 = r350083 * r350084;
double r350086 = d3;
double r350087 = r350083 * r350086;
double r350088 = r350085 - r350087;
double r350089 = d4;
double r350090 = r350089 * r350083;
double r350091 = r350088 + r350090;
double r350092 = r350083 * r350083;
double r350093 = r350091 - r350092;
return r350093;
}
double f(double d1, double d2, double d3, double d4) {
double r350094 = d1;
double r350095 = d2;
double r350096 = r350094 * r350095;
double r350097 = d3;
double r350098 = r350094 * r350097;
double r350099 = r350096 - r350098;
double r350100 = d4;
double r350101 = r350100 * r350094;
double r350102 = r350099 + r350101;
double r350103 = r350094 * r350094;
double r350104 = r350102 - r350103;
return r350104;
}




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 2020001
(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)))