From: Ali Ebnenasir (aebnenas_at_mtu.edu)
Date: Sun Sep 23 2007 - 13:11:11 MDT
Hello everyone,
I am writing an application (using Cudd-2.4.1/Glu-2.1) in which I need to
do some pointer manipulations on BDDs. For example, I need to explicitly
set the Then/Else pointers of a root bdd_t node, denoted ‘rootNode’, to
the top pointers of two other bdd_t nodes, denoted ‘thenNode’ and
‘elseNode’. The ITE(rootNode, thenNode,elseNode,1,1,1) operation
is one way to do so, however, if the var_ids of the top nodes of thenNode
and elseNode are the same, ITE does some reduction on the resulting BDD.
Since my application requires no such reductions, I am wondering whether
there is any built-in function that enables me to explicitly set the
Then/Else pointers of the rootNode.
As a potential solution, I have tried the following piece of code. It
works for the Else child, but does not work for the Then
child. After the second assignment, the Then child points to "True"
instead of the thenNode!
bdd_t* rootNode;
bdd_t* thenNode;
bdd_t* elseNode;
(((rootNode->node) -> type).kids).E = elseNode->node; //set the else child
(((rootNode->node) -> type).kids).T = thenNode->node; //set the then child
Any help is very much appreciated!
Thanks,
Ali
This archive was generated by hypermail 2.1.7 : Sun Sep 23 2007 - 13:17:58 MDT