精華區beta EE_DSnP 關於我們 聯絡資訊
我昨天才剛寫到(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