作者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)
1F:推 ric2k1:可能的原因很多, 建议使用 debugger (ddd or gdb), 01/14 20:06
2F:→ ric2k1:gdb> b "BddManager::ite" 01/14 20:07
3F:→ ric2k1:and then next or step in to see what is going on. 01/14 20:07
4F:→ ric2k1:It should be more efficient than trial-and-error... 01/14 20:08
5F:推 vinlinch:尝试了ddd还是一头雾水 先准备期末考好了 orz.. 01/15 02:12
6F:推 vinlinch:找到问题了 谢谢老师 谢谢firstpeople 谢谢samuelduan 01/18 16:25
7F:→ vinlinch:原来是call错bddManager 01/18 16:28