a \cdot \left(\left(b + c\right) + d\right)
a \cdot d + a \cdot \left(b + c\right)
(FPCore (a b c d) :precision binary64 (* a (+ (+ b c) d)))
(FPCore (a b c d) :precision binary64 (+ (* a d) (* a (+ b c))))
double code(double a, double b, double c, double d) {
return a * ((b + c) + d);
}
double code(double a, double b, double c, double d) {
return (a * d) + (a * (b + c));
}






























Bits error versus a






























Bits error versus b






























Bits error versus c






























Bits error versus d
Results
| Original | 0.0 |
|---|---|
| Target | 0.0 |
| Herbie | 0.0 |
| Alternative 1 | |
|---|---|
| Error | 0.8 |
| Cost | 26560 |
| Alternative 2 | |
|---|---|
| Error | 1.5 |
| Cost | 20672 |
| Alternative 3 | |
|---|---|
| Error | 1.3 |
| Cost | 19904 |
| Alternative 4 | |
|---|---|
| Error | 0.5 |
| Cost | 13760 |
| Alternative 5 | |
|---|---|
| Error | 0.5 |
| Cost | 13632 |
| Alternative 6 | |
|---|---|
| Error | 22.0 |
| Cost | 13504 |
| Alternative 7 | |
|---|---|
| Error | 0.6 |
| Cost | 13376 |
| Alternative 8 | |
|---|---|
| Error | 16.8 |
| Cost | 13312 |
| Alternative 9 | |
|---|---|
| Error | 4.5 |
| Cost | 13248 |
| Alternative 10 | |
|---|---|
| Error | 40.7 |
| Cost | 13120 |
| Alternative 11 | |
|---|---|
| Error | 7.4 |
| Cost | 1216 |
| Alternative 12 | |
|---|---|
| Error | 5.2 |
| Cost | 1088 |
| Alternative 13 | |
|---|---|
| Error | 0.0 |
| Cost | 704 |
| Alternative 14 | |
|---|---|
| Error | 0.0 |
| Cost | 576 |
| Alternative 15 | |
|---|---|
| Error | 20.7 |
| Cost | 448 |
| Alternative 16 | |
|---|---|
| Error | 22.1 |
| Cost | 448 |
| Alternative 17 | |
|---|---|
| Error | 0.0 |
| Cost | 448 |
| Alternative 18 | |
|---|---|
| Error | 20.7 |
| Cost | 320 |
| Alternative 19 | |
|---|---|
| Error | 22.1 |
| Cost | 320 |
| Alternative 20 | |
|---|---|
| Error | 20.8 |
| Cost | 320 |
| Alternative 21 | |
|---|---|
| Error | 40.6 |
| Cost | 192 |
| Alternative 22 | |
|---|---|
| Error | 41.8 |
| Cost | 192 |
| Alternative 23 | |
|---|---|
| Error | 41.9 |
| Cost | 192 |
| Alternative 24 | |
|---|---|
| Error | 59.2 |
| Cost | 64 |
| Alternative 25 | |
|---|---|
| Error | 61.5 |
| Cost | 64 |
| Alternative 26 | |
|---|---|
| Error | 62.8 |
| Cost | 64 |

Initial program 0.0
rmApplied distribute-rgt-in_binary64_13530.0
Simplified0.0
Simplified0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2021042
(FPCore (a b c d)
:name "Expression, p14"
:precision binary64
:pre (and (<= 56789.0 a 98765.0) (<= 0.0 b 1.0) (<= 0.0 c 0.0016773) (<= 0.0 d 0.0016773))
:herbie-target
(+ (* a b) (* a (+ c d)))
(* a (+ (+ b c) d)))