\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1
d1 \cdot d4 + d1 \cdot \left(\left(d2 - d3\right) - d1\right)
(FPCore (d1 d2 d3 d4) :precision binary64 (- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)))
(FPCore (d1 d2 d3 d4) :precision binary64 (+ (* d1 d4) (* d1 (- (- d2 d3) d1))))
double code(double d1, double d2, double d3, double d4) {
return (((d1 * d2) - (d1 * d3)) + (d4 * d1)) - (d1 * d1);
}
double code(double d1, double d2, double d3, double d4) {
return (d1 * d4) + (d1 * ((d2 - d3) - d1));
}


























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 |
| Alternative 1 | |
|---|---|
| Error | 47.3 |
| Cost | 26752 |
| Alternative 2 | |
|---|---|
| Error | 35.5 |
| Cost | 14016 |
| Alternative 3 | |
|---|---|
| Error | 31.7 |
| Cost | 13888 |
| Alternative 4 | |
|---|---|
| Error | 35.5 |
| Cost | 13760 |
| Alternative 5 | |
|---|---|
| Error | 35.6 |
| Cost | 13440 |
| Alternative 6 | |
|---|---|
| Error | 35.6 |
| Cost | 8256 |
| Alternative 7 | |
|---|---|
| Error | 0.0 |
| Cost | 960 |
| Alternative 8 | |
|---|---|
| Error | 18.2 |
| Cost | 576 |
| Alternative 9 | |
|---|---|
| Error | 7.7 |
| Cost | 576 |
| Alternative 10 | |
|---|---|
| Error | 0.0 |
| Cost | 576 |
| Alternative 11 | |
|---|---|
| Error | 18.5 |
| Cost | 448 |
| Alternative 12 | |
|---|---|
| Error | 18.3 |
| Cost | 448 |
| Alternative 13 | |
|---|---|
| Error | 7.7 |
| Cost | 448 |
| Alternative 14 | |
|---|---|
| Error | 25.6 |
| Cost | 448 |
| Alternative 15 | |
|---|---|
| Error | 18.2 |
| Cost | 448 |
| Alternative 16 | |
|---|---|
| Error | 53.8 |
| Cost | 256 |
| Alternative 17 | |
|---|---|
| Error | 43.7 |
| Cost | 256 |
| Alternative 18 | |
|---|---|
| Error | 43.4 |
| Cost | 192 |
| Alternative 19 | |
|---|---|
| Error | 43.4 |
| Cost | 192 |
| Alternative 20 | |
|---|---|
| Error | 61.8 |
| Cost | 64 |
| Alternative 21 | |
|---|---|
| Error | 61.0 |
| Cost | 64 |
| Alternative 22 | |
|---|---|
| Error | 61.5 |
| Cost | 64 |

Initial program 0.0
Simplified0.0
rmApplied distribute-rgt-in_binary64_37790.0
Simplified0.0
Simplified0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2021022
(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)))