abc/src/bool/kit/cloud.c
/**Function********************************************************************

  Synopsis    [Returns or creates a new node]

  Description [Checks the unique table for the existance of the node. If the node is 
  present, returns the node. If the node is absent, creates a new node.]
               
  SideEffects []

  SeeAlso     []

******************************************************************************/
Function
Synopsis    [Returns or creates a new node]

Description [Checks the unique table for the existance of the node. If the node is
present, returns the node. If the node is absent, creates a new node.]




Function Synopsis [ Returns or creates a new node ] Description [ Checks the unique table for the existance of the node . If the node is present returns the node . If the node is absent creates a new node . ]
CloudNode * Cloud_MakeNode( CloudManager * dd, CloudVar v, CloudNode * t, CloudNode * e )
{
    CloudNode * pRes;
    CLOUD_ASSERT(t); 
    CLOUD_ASSERT(e);
    assert( v < Cloud_V(t) && v < Cloud_V(e) );       
    if ( Cloud_IsComplement(t) )
    {
        pRes = cloudMakeNode( dd, v, Cloud_Not(t), Cloud_Not(e) );
        if ( pRes != NULL )
            pRes = Cloud_Not(pRes);            
    }
    else
        pRes = cloudMakeNode( dd, v, t, e );
    return pRes;
}
CloudNode * Cloud_MakeNode ( CloudManager * dd , CloudVar v , CloudNode * t , CloudNode * e ) { CloudNode * pRes ; CLOUD_ASSERT ( t ) ; CLOUD_ASSERT ( e ) ; assert ( v < Cloud_V ( t ) && v < Cloud_V ( e ) ) ; if ( Cloud_IsComplement ( t ) ) { pRes = cloudMakeNode ( dd , v , Cloud_Not ( t ) , Cloud_Not ( e ) ) ; if ( pRes != NULL ) pRes = Cloud_Not ( pRes ) ; } else pRes = cloudMakeNode ( dd , v , t , e ) ; return pRes ; }
Function
Synopsis    [Returns or creates a new node]
Function Synopsis [ Returns or creates a new node ]
// variable should be above in the order