看板 EE_DSnP 關於我們 聯絡資訊
多半是 ite 的 standardize() 寫錯了... 而且通常是 bubble 的問題... 試試看不要呼叫 standardize() 結果如何? 或者你也可以在 testBdd.cpp 裏頭直接呼叫如: bm.ite(a, ~b, BddNode::_zero) 之類的, 再用 debugger trace 進去看看哪裡出錯了... If you use "ddd", just display BddNode, or you can display like: (BddNodeInt*)(n._nodeV) If you use gdb, just use the commands "print" or "display". One tip for using "print" or "display": p /x n._nodeV It will print out the heximal value of n._nodeV ※ 引述《sa901119 (ads901119)》之銘言: : testBdd上面中共有五個運算 : 上面三個運算都跟test.out結果一樣 : 但是下面兩個i 跟j 就不一樣 : 第四個cout<< i : <- 整個結果差很多 : [4](-) (2) : [0](+) (15) : [3](+) (3) : [0](+) (15) : [0](-) (15) : 第五個cout<< j : : [2](-) (2) <- 應該是5 : [1](+) (3) : [0](+) (15) : [0](-) (15) : [0](-) (15) : 請問有人能指點我debug的方向嗎 refCount 的問題就去看看 BddNode 的 constructor 以及 '=' operator : 已經一整個下午了> < : 好像是operator ^ 的錯 : 我用 k = a ^ b; : cout << k; : 會顯示以下結果: : [2](-) (3) : [0](+) (13) : [0](-) (13) : 但正確的應該是 : [2](-) (1) : [1](+) (3) : [0](+) (13) : [0](-) (13) : [1](-) (3) : 很明顯是 ^ 錯了 As I say, try bm.ite(a, ~b, BddNode::_zero), or bm.ite(~a, b, BddNode::_zero). : 但是我抓不到..... : 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.21.241
sa901119:謝謝老師! 終於work了 orz 06/24 23:22