당신은 Cudd BDD 노드의 다음과 다른 아이들에 액세스 할 수 있습니다
DdNode *t = Cudd_T(f.getNode());
DdNode *e = Cudd_E(f.getNode());
이것은 일반 C 인터페이스를 사용하는 경우 BDD 계열을 참조하는 데 사용되는 데이터 구조입니다 DdNode 포인터를 제공합니다.
BDD tb = BDD(mgr,t);
위의 내용은 f가 보수 노드가 아닌 경우에만 작동한다는 점에 유의하십시오. 그렇지 않으면 Cudd_Regular 함수를 통해 "getNode"함수를 호출 한 결과를 실행해야합니다. 이것은 BDD의 의미를 바꾸어줍니다.
CuDD가 거꾸로 된 노드를 사용하지 않는 것처럼 BDD를 처리 할 수도 있습니다. 이 경우 다음과 같이 후계자를 얻게됩니다.
BDD t;
BDD e;
if (Cudd_IsComplement(f.getNode())) {
t = !BDD(manager,Cudd_Regular(Cudd_T(f.getNode())));
e = !BDD(manager,Cudd_Regular(Cudd_E(f.getNode())));
} else {
t = BDD(manager,Cudd_T(f.getNode()));
e = BDD(manager,Cudd_E(f.getNode()));
}
감사합니다. 그것은 내 질문을 해결 :) –
@ MarcBenedí 질문에 답변이 대답을 수락 고려하십시오. –