



Bits error versus x




Bits error versus y




Bits error versus z
| Original | 45.0 |
|---|---|
| Target | 0 |
| Herbie | 8.1 |
Initial program 45.0
rmApplied add-log-exp46.7
Applied add-log-exp47.2
Applied diff-log47.2
Simplified30.6
rmApplied associate-+l-15.2
Applied exp-diff15.2
Applied log-div15.2
Simplified15.2
Taylor expanded around inf 8.1
Final simplification8.1
herbie shell --seed 2019005
(FPCore (x y z)
:name "simple fma test"
:herbie-target
-1
(- (fma x y z) (+ 1 (+ (* x y) z))))
Time bar (total: 15.4s)Debug log
1 calls. Slowest were:
| 299.0ms | (- (fma x y z) (+ 1 (+ (* x y) z))) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 46.1b
Found 2 expressions with local error:
| 9.3b | (- (fma x y z) (+ 1 (+ (* x y) z))) |
| 0.0b | (+ (* x y) z) |
2 calls. Slowest were:
| 11.0ms | (- (fma x y z) (+ 1 (+ (* x y) z))) |
| 3.0ms | (+ (* x y) z) |
2 calls. Slowest were:
| 42.0ms | (- (fma x y z) (+ 1 (+ (* x y) z))) |
| 23.0ms | (+ (* x y) z) |
11 calls. Slowest were:
| 600.0ms | (/ (exp (fma x y z)) (exp (+ 1 (+ (* x y) z)))) |
| 281.0ms | (- (fma x y z) (+ z (+ 1 (* x y)))) |
| 273.0ms | (- (fma x y z) (+ z (+ 1 (* x y)))) |
8 alts after pruning (8 fresh and 0 done)
Merged error: 29.3b
Found 3 expressions with local error:
| 10.1b | (+ (- -1 (* x y)) (- (fma x y z) z)) |
| 1.9b | (- (fma x y z) z) |
| 0.5b | (log (exp (+ (- -1 (* x y)) (- (fma x y z) z)))) |
3 calls. Slowest were:
| 46.0ms | (log (exp (+ (- -1 (* x y)) (- (fma x y z) z)))) |
| 16.0ms | (+ (- -1 (* x y)) (- (fma x y z) z)) |
| 6.0ms | (- (fma x y z) z) |
3 calls. Slowest were:
| 44.0ms | (+ (- -1 (* x y)) (- (fma x y z) z)) |
| 40.0ms | (log (exp (+ (- -1 (* x y)) (- (fma x y z) z)))) |
| 21.0ms | (- (fma x y z) z) |
32 calls. Slowest were:
| 629.0ms | (+ (- -1 (* x y)) (- (fma x y z) z)) |
| 526.0ms | (cbrt (+ (- -1 (* x y)) (- (fma x y z) z))) |
| 523.0ms | (+ (- -1 (* x y)) (- (fma x y z) z)) |
8 alts after pruning (8 fresh and 0 done)
Merged error: 14.2b
Found 3 expressions with local error:
| 10.1b | (- (* x y) (- (fma x y z) z)) |
| 1.9b | (- (fma x y z) z) |
| 0.9b | (log (exp (- (* x y) (- (fma x y z) z)))) |
3 calls. Slowest were:
| 13.0ms | (log (exp (- (* x y) (- (fma x y z) z)))) |
| 4.0ms | (- (* x y) (- (fma x y z) z)) |
| 3.0ms | (- (fma x y z) z) |
3 calls. Slowest were:
| 33.0ms | (log (exp (- (* x y) (- (fma x y z) z)))) |
| 33.0ms | (- (* x y) (- (fma x y z) z)) |
| 23.0ms | (- (fma x y z) z) |
23 calls. Slowest were:
| 96.0ms | (log (sqrt (exp (- (* x y) (- (fma x y z) z))))) |
| 93.0ms | (/ (exp (* x y)) (exp (- (fma x y z) z))) |
| 76.0ms | (log (* (cbrt (exp (- (* x y) (- (fma x y z) z)))) (cbrt (exp (- (* x y) (- (fma x y z) z)))))) |
2 alts after pruning (2 fresh and 0 done)
Merged error: 8.2b
Found 2 expressions with local error:
| 8.1b | (- (+ z (* x y)) (fma x y z)) |
| 0.0b | (+ z (* x y)) |
2 calls. Slowest were:
| 4.0ms | (- (+ z (* x y)) (fma x y z)) |
| 1.0ms | (+ z (* x y)) |
2 calls. Slowest were:
| 33.0ms | (- (+ z (* x y)) (fma x y z)) |
| 27.0ms | (+ z (* x y)) |
10 calls. Slowest were:
| 75.0ms | (/ (exp (+ z (* x y))) (exp (fma x y z))) |
| 34.0ms | (- (+ z (* x y)) (fma x y z)) |
| 20.0ms | (- (+ z (* x y)) (fma x y z)) |
3 alts after pruning (2 fresh and 1 done)
Merged error: 8.1b
0% (0.1b remaining)
Error of 8.1b against oracle of 7.9b and baseline of 8.1b