



Bits error versus a




Bits error versus b




Bits error versus c




Bits error versus d




Bits error versus e
Results
| Original | 0.4 |
|---|---|
| Target | 0.2 |
| Herbie | 0.2 |
Initial program 0.4
Initial simplification0.2
Final simplification0.2
herbie shell --seed 2018362 +o rules:numerics
(FPCore (a b c d e)
:name "Expression 1, p15"
:pre (<= 1 a 2 b 4 c 8 d 16 e 32)
:herbie-target
(+ (+ d (+ c (+ a b))) e)
(+ (+ (+ (+ e d) c) b) a))
Time bar (total: 23.7s)Debug log
2 alts after pruning (2 fresh and 0 done)
Merged error: 0.1b
Found 2 expressions with local error:
| 0.3b | (+ (+ a d) (+ c b)) |
| 0.2b | (+ (+ (+ a d) (+ c b)) e) |
2 calls. Slowest were:
| 18.0ms | (+ (+ (+ a d) (+ c b)) e) |
| 3.0ms | (+ (+ a d) (+ c b)) |
2 calls. Slowest were:
| 35.0ms | (+ (+ (+ a d) (+ c b)) e) |
| 20.0ms | (+ (+ a d) (+ c b)) |
21 calls. Slowest were:
| 606.0ms | (+ (* (+ (pow a 3) (pow d 3)) (- c b)) (* (+ (* a a) (- (* d d) (* a d))) (- (* c c) (* b b)))) |
| 514.0ms | (* (+ (* a a) (- (* d d) (* a d))) (+ (* c c) (- (* b b) (* c b)))) |
| 486.0ms | (+ (* (- (* a a) (* d d)) (- c b)) (* (- a d) (- (* c c) (* b b)))) |
5 alts after pruning (4 fresh and 1 done)
Merged error: 0b
Found 4 expressions with local error:
| 2.5b | (exp (+ (+ d b) (+ a c))) |
| 0.2b | (+ (+ d b) (+ a c)) |
| 0.2b | (+ (log (exp (+ (+ d b) (+ a c)))) e) |
| 0.0b | (log (exp (+ (+ d b) (+ a c)))) |
4 calls. Slowest were:
| 74.0ms | (+ (log (exp (+ (+ d b) (+ a c)))) e) |
| 17.0ms | (exp (+ (+ d b) (+ a c))) |
| 10.0ms | (log (exp (+ (+ d b) (+ a c)))) |
4 calls. Slowest were:
| 54.0ms | (+ (log (exp (+ (+ d b) (+ a c)))) e) |
| 42.0ms | (exp (+ (+ d b) (+ a c))) |
| 36.0ms | (+ (+ d b) (+ a c)) |
| 30.0ms | (log (exp (+ (+ d b) (+ a c)))) |
50 calls. Slowest were:
| 602.0ms | (+ (* (+ (pow d 3) (pow b 3)) (- a c)) (* (+ (* d d) (- (* b b) (* d b))) (- (* a a) (* c c)))) |
| 540.0ms | (+ (* (- (* d d) (* b b)) (- a c)) (* (- d b) (- (* a a) (* c c)))) |
| 523.0ms | (* (+ (* d d) (- (* b b) (* d b))) (+ (* a a) (- (* c c) (* a c)))) |
5 alts after pruning (3 fresh and 2 done)
Merged error: 0b
Found 4 expressions with local error:
| 0.3b | (fma (sqrt (+ a d)) (sqrt (+ a d)) (+ c b)) |
| 0.2b | (+ (fma (sqrt (+ a d)) (sqrt (+ a d)) (+ c b)) e) |
| 0.1b | (sqrt (+ a d)) |
| 0.1b | (sqrt (+ a d)) |
4 calls. Slowest were:
| 3.0ms | (fma (sqrt (+ a d)) (sqrt (+ a d)) (+ c b)) |
| 3.0ms | (+ (fma (sqrt (+ a d)) (sqrt (+ a d)) (+ c b)) e) |
| 1.0ms | (sqrt (+ a d)) |
4 calls. Slowest were:
| 212.0ms | (+ (fma (sqrt (+ a d)) (sqrt (+ a d)) (+ c b)) e) |
| 120.0ms | (fma (sqrt (+ a d)) (sqrt (+ a d)) (+ c b)) |
| 18.0ms | (sqrt (+ a d)) |
| 18.0ms | (sqrt (+ a d)) |
27 calls. Slowest were:
| 32.0ms | (sqrt (- (* a a) (* d d))) |
| 32.0ms | (sqrt (- (* a a) (* d d))) |
| 29.0ms | (sqrt (fma (sqrt (+ a d)) (sqrt (+ a d)) (+ c b))) |
5 alts after pruning (2 fresh and 3 done)
Merged error: 0b
Found 4 expressions with local error:
| 0.4b | (/ (* (fma (+ b c) (fma (- d a) d (* a a)) (fma (* d d) d (pow a 3))) (- c b)) (* (- c b) (fma (- d a) d (* a a)))) |
| 0.3b | (* (fma (+ b c) (fma (- d a) d (* a a)) (fma (* d d) d (pow a 3))) (- c b)) |
| 0.3b | (fma (* d d) d (pow a 3)) |
| 0.3b | (* (- c b) (fma (- d a) d (* a a))) |
4 calls. Slowest were:
| 18.0ms | (/ (* (fma (+ b c) (fma (- d a) d (* a a)) (fma (* d d) d (pow a 3))) (- c b)) (* (- c b) (fma (- d a) d (* a a)))) |
| 8.0ms | (* (fma (+ b c) (fma (- d a) d (* a a)) (fma (* d d) d (pow a 3))) (- c b)) |
| 8.0ms | (* (- c b) (fma (- d a) d (* a a))) |
4 calls. Slowest were:
| 286.0ms | (* (fma (+ b c) (fma (- d a) d (* a a)) (fma (* d d) d (pow a 3))) (- c b)) |
| 261.0ms | (/ (* (fma (+ b c) (fma (- d a) d (* a a)) (fma (* d d) d (pow a 3))) (- c b)) (* (- c b) (fma (- d a) d (* a a)))) |
| 84.0ms | (* (- c b) (fma (- d a) d (* a a))) |
| 29.0ms | (fma (* d d) d (pow a 3)) |
54 calls. Slowest were:
| 1.1s | (* (- (pow c 3) (pow b 3)) (fma (- d a) d (* a a))) |
| 1.0s | (* (* (* (- c b) (- c b)) (- c b)) (* (* (fma (- d a) d (* a a)) (fma (- d a) d (* a a))) (fma (- d a) d (* a a)))) |
| 581.0ms | (sqrt (fma (+ b c) (fma (- d a) d (* a a)) (fma (* d d) d (pow a 3)))) |
5 alts after pruning (1 fresh and 4 done)
Merged error: 0b
0% (0.2b remaining)
Error of 0.2b against oracle of 0.0b and baseline of 0.2b