作者vinlinch (好多事要做.....)
看板EE_DSnP
標題[問題] 關於ite中的 T==E 和 uniquify
時間Sun Jan 14 18:22:57 2007
我昨天才剛寫到(v)
可是目前一直卡在這個地方 問題就是建出來的bdd架構會有問題
test.cpp我建出來的 e = a&(b|c)是對的 有四個node
d = a&b |a&c 卻一直有六個 node
我跑出來的結果如下
[3] (+)(1)
[2] (+) (1)
[1] (+)(1)
[0] (+)(13)
[0] (-)(13) (*)
[1] (+) (5)
[0] (+)(13) (*)
[0] (-)(13) (*)
[2] (+)(1)
[1] (+)(5) (*)
[0] (-)(13) (*)
# total nodes = 6
[3] (+) (1)
[1] (+) (6)
[0] (+) (14)
[0] (-) (14) (*)
[2] (+) (2)
[1] (+) (6) (*)
[0] (-) (14) (*)
# total nodes = 4
我發現當他在上面的level [2] 那邊
看到兩個一樣的child卻沒有 刪掉自己回傳child
我在想會不會是 BddManager::ite裡面當t==e時 我只有做return t
或是uniquify沒有找到相同的東西 (我uniquify都沒有去動)
不曉得問題是出在哪呢
會不會是當t==e時 除了return t 還有要 check isNegEdge()
或是哪裡還需要用到uniquify去檢驗
我目前code有寫的部份是 check terminal, move bubble,
check isNegEdge, operator overloading
還有 _bddMap的三個function
謝謝大家 <(_._)>
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.7.59
※ 編輯: vinlinch 來自: 140.112.7.59 (01/14 18:34)
推 ric2k1:可能的原因很多, 建議使用 debugger (ddd or gdb), 01/14 20:06
→ ric2k1:gdb> b "BddManager::ite" 01/14 20:07
→ ric2k1:and then next or step in to see what is going on. 01/14 20:07
→ ric2k1:It should be more efficient than trial-and-error... 01/14 20:08
推 vinlinch:嘗試了ddd還是一頭霧水 先準備期末考好了 orz.. 01/15 02:12
推 vinlinch:找到問題了 謝謝老師 謝謝firstpeople 謝謝samuelduan 01/18 16:25
→ vinlinch:原來是call錯bddManager 01/18 16:28