\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1
d1 \cdot \left(\left(\left(d4 + d2\right) - d1\right) - d3\right)
double f(double d1, double d2, double d3, double d4) {
double r231169 = d1;
double r231170 = d2;
double r231171 = r231169 * r231170;
double r231172 = d3;
double r231173 = r231169 * r231172;
double r231174 = r231171 - r231173;
double r231175 = d4;
double r231176 = r231175 * r231169;
double r231177 = r231174 + r231176;
double r231178 = r231169 * r231169;
double r231179 = r231177 - r231178;
return r231179;
}
double f(double d1, double d2, double d3, double d4) {
double r231180 = d1;
double r231181 = d4;
double r231182 = d2;
double r231183 = r231181 + r231182;
double r231184 = r231183 - r231180;
double r231185 = d3;
double r231186 = r231184 - r231185;
double r231187 = r231180 * r231186;
return r231187;
}




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
Simplified0.0
rmApplied associate-+r-0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019323
(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)))