abc/src/bdd/extrab/extraBddSymm.c
/**Function********************************************************************

  Synopsis    [Checks the possibility of two variables being symmetric.]

  Description [Returns 0 if vars are not symmetric. Return 1 if vars can be symmetric.]

  SideEffects []

  SeeAlso     []

******************************************************************************/
Function
Synopsis    [Checks the possibility of two variables being symmetric.]

Description [Returns 0 if vars are not symmetric. Return 1 if vars can be symmetric.]




Function Synopsis [ Checks the possibility of two variables being symmetric . ] Description [ Returns 0 if vars are not symmetric . Return 1 if vars can be symmetric . ]
int Extra_bddCheckVarsSymmetric( 
  DdManager * dd,   
  DdNode * bF,
  int iVar1,
  int iVar2) 
{
    DdNode * bVars;
    int Res;
    assert( iVar1 != iVar2 );
    assert( iVar1 < dd->size );
    assert( iVar2 < dd->size );
    bVars = Cudd_bddAnd( dd, dd->vars[iVar1], dd->vars[iVar2] );   Cudd_Ref( bVars );
    Res = (int)( extraBddCheckVarsSymmetric( dd, bF, bVars ) == b1 );
    Cudd_RecursiveDeref( dd, bVars );
    return Res;
}
int Extra_bddCheckVarsSymmetric ( DdManager * dd , DdNode * bF , int iVar1 , int iVar2 ) { DdNode * bVars ; int Res ; assert ( iVar1 != iVar2 ) ; assert ( iVar1 < dd -> size ) ; assert ( iVar2 < dd -> size ) ; bVars = Cudd_bddAnd ( dd , dd -> vars [ iVar1 ] , dd -> vars [ iVar2 ] ) ; Cudd_Ref ( bVars ) ; Res = ( int ) ( extraBddCheckVarsSymmetric ( dd , bF , bVars ) == b1 ) ; Cudd_RecursiveDeref ( dd , bVars ) ; return Res ; }
Function
Synopsis    [Checks the possibility of two variables being symmetric.]
Function Synopsis [ Checks the possibility of two variables being symmetric . ]
/* the DD manager */ //  return 1;