作者ric2k1 (Ric)
看板EE_DSnP
标题Re: [问题] testBdd 错误.. de不出bug...
时间Tue Jun 23 18:40:29 2009
多半是 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
1F:推 sa901119:谢谢老师! 终於work了 orz 06/24 23:22