作者ric2k1 (Ric)
看板EE_DSnP
标题Re: [更正] Final project...
时间Wed Jun 10 23:54:23 2009
[06/10/2009] (11:30pm) 请在 "bddMgr.cpp" 的 "BddMgr::init()" 加上一行
void
BddMgr::init(size_t nin, size_t h, size_t c)
{
_uniqueTable.init(h);
_computedTable.init(c);
// This must be called first
BddNode::setBddMgr(this);
BddNodeInt::_terminal = uniquify(0, 0, 0);
BddNode::_one = BddNode(BddNodeInt::_terminal, BDD_POS_EDGE);
BddNode::_zero = BddNode(BddNodeInt::_terminal, BDD_NEG_EDGE);
_supports.resize(0); // Fixed: 06/10/2009
_supports.reserve(nin+1);
_supports.push_back(BddNode::_one);
for (size_t i = 1; i <= nin; ++i)
_supports.push_back(BddNode(BddNode::_one(), BddNode::_zero(), i));
}
黄色那行.
不加的话, 照攻略写到第 (vi) 步你的 testBdd 应该会当掉!
除非你的 BddMgr::reset() (攻略第 (viii)) 已经写完.
(不过其他 BDD command 可能是 OK 的).
> Affected file: bddMgr.cpp
> Updated: bdd.tgz
[06/06/2009] (4:50pm) CIRSETVar 忘记reset CirMgr::_bddVarOrder
> 更正: CirMgr constructor ==> 必须initialize _bddVarOrder to PI_NONE
> In "CirSetVarCmd::exec()", need to call "cirMgr->resetBddVarOrder()"
when "Error: support size is smaller than the circuit input size!!"
> Affected files: lib/libcirref-*.a, ref/bdd-*, src/cir/cirMgr.h
> Updated: bdd.tgz, ref/bdd-32, ref/bdd-64, BDD project.htm
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.224.42.52
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.224.46.125
※ 编辑: ric2k1 来自: 61.224.46.125 (06/11 00:02)
1F:推 chwt2788:bdd> cirg 0 -fani 0 好像不能印编号0的gate? 06/11 13:27
2F:→ chwt2788:试其他编号都可以 06/11 13:27