推 sa901119:謝謝老師! 終於work了 orz 06/24 23:22
多半是 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