abc-master
|
Go to the source code of this file.
Data Structures | |
struct | DdTlcInfo |
struct | TlClause |
Macros | |
#define | BPL 32 |
#define | LOGBPL 5 |
Typedefs | |
typedef long | BitVector |
typedef struct TlClause | TlClause |
Variables | |
static char rcsid[] | DD_UNUSED = "$Id: cuddEssent.c,v 1.24 2009/02/21 18:24:10 fabio Exp $" |
static BitVector * | Tolv |
static BitVector * | Tolp |
static BitVector * | Eolv |
static BitVector * | Eolp |
#define BPL 32 |
CFile***********************************************************************
FileName [cuddEssent.c]
PackageName [cudd]
Synopsis [Functions for the detection of essential variables.]
Description [External procedures included in this file:
Static procedures included in this module:
]
Author [Fabio Somenzi]
Copyright [Copyright (c) 1995-2004, Regents of the University of Colorado
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
Neither the name of the University of Colorado nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.]
Definition at line 90 of file cuddEssent.c.
#define LOGBPL 5 |
Definition at line 91 of file cuddEssent.c.
typedef long BitVector |
Definition at line 142 of file cuddEssent.c.
Definition at line 143 of file cuddEssent.c.
|
static |
Function********************************************************************
Synopsis [Returns true iff the first argument precedes the second in the clause order.]
Description [Returns true iff the first argument precedes the second in the clause order. A clause precedes another if its first lieral precedes the first literal of the other, or if the first literals are the same, and its second literal precedes the second literal of the other clause. A literal precedes another if it has a higher index, of if it has the same index, but it has lower phase. Phase 0 is the positive phase, and it is lower than Phase 1 (negative phase).]
SideEffects [None]
SeeAlso [equalp]
Definition at line 1233 of file cuddEssent.c.
|
static |
Function********************************************************************
Synopsis [Allocates a bit vector.]
Description [Allocates a bit vector. The parameter size gives the number of bits. This procedure allocates enough long's to hold the specified number of bits. Returns a pointer to the allocated vector if successful; NULL otherwise.]
SideEffects [None]
SeeAlso [bitVectorClear bitVectorFree]
Definition at line 1319 of file cuddEssent.c.
Function********************************************************************
Synopsis [Clears a bit vector.]
Description [Clears a bit vector. The parameter size gives the number of bits.]
SideEffects [None]
SeeAlso [bitVectorAlloc]
Definition at line 1353 of file cuddEssent.c.
|
static |
Function********************************************************************
Synopsis [Frees a bit vector.]
Description [Frees a bit vector.]
SideEffects [None]
SeeAlso [bitVectorAlloc]
Definition at line 1383 of file cuddEssent.c.
Function********************************************************************
Synopsis [Returns the i-th entry of a bit vector.]
Description [Returns the i-th entry of a bit vector.]
SideEffects [None]
SeeAlso [bitVectorSet]
Definition at line 1404 of file cuddEssent.c.
Function********************************************************************
Synopsis [Sets the i-th entry of a bit vector to a value.]
Description [Sets the i-th entry of a bit vector to a value.]
SideEffects [None]
SeeAlso [bitVectorRead]
Definition at line 1434 of file cuddEssent.c.
|
static |
Function********************************************************************
Synopsis [Computes the two-literal clauses for a node.]
Description [Computes the two-literal clauses for a node given the clauses for its children and the label of the node. Returns a pointer to a TclInfo structure if successful; NULL otherwise.]
SideEffects [None]
SeeAlso [computeClausesWithUniverse]
Definition at line 768 of file cuddEssent.c.
|
static |
Function********************************************************************
Synopsis [Computes the two-literal clauses for a node.]
Description [Computes the two-literal clauses for a node with a zero child, given the clauses for its other child and the label of the node. Returns a pointer to a TclInfo structure if successful; NULL otherwise.]
SideEffects [None]
SeeAlso [computeClauses]
Definition at line 1068 of file cuddEssent.c.
Function********************************************************************
Synopsis [Determines whether a given variable is essential with a given phase in a BDD.]
Description [Determines whether a given variable is essential with a given phase in a BDD. Uses Cudd_bddIteConstant. Returns 1 if phase == 1 and f–>x_id, or if phase == 0 and f–>x_id'.]
SideEffects [None]
SeeAlso [Cudd_FindEssential]
Definition at line 239 of file cuddEssent.c.
AutomaticEnd Function********************************************************************
Synopsis [Finds the essential variables of a DD.]
Description [Returns the cube of the essential variables. A positive literal means that the variable must be set to 1 for the function to be
SideEffects [None]
SeeAlso [Cudd_bddIsVarEssential]
Definition at line 209 of file cuddEssent.c.
Function********************************************************************
Synopsis [Finds the two literal clauses of a DD.]
Description [Returns the one- and two-literal clauses of a DD. Returns a pointer to the structure holding the clauses if successful; NULL otherwise. For a constant DD, the empty set of clauses is returned. This is obviously correct for a non-zero constant. For the constant zero, it is based on the assumption that only those clauses containing variables in the support of the function are considered. Since the support of a constant function is empty, no clauses are returned.]
SideEffects [None]
SeeAlso [Cudd_FindEssential]
Definition at line 277 of file cuddEssent.c.
Function********************************************************************
Synopsis [Prints the two literal clauses of a DD.]
Description [Prints the one- and two-literal clauses. Returns 1 if successful; 0 otherwise. The argument "names" can be NULL, in which case the variable indices are printed.]
SideEffects [None]
SeeAlso [Cudd_FindTwoLiteralClauses]
Definition at line 393 of file cuddEssent.c.
int Cudd_ReadIthClause | ( | DdTlcInfo * | tlc, |
int | i, | ||
DdHalfWord * | var1, | ||
DdHalfWord * | var2, | ||
int * | phase1, | ||
int * | phase2 | ||
) |
Function********************************************************************
Synopsis [Accesses the i-th clause of a DD.]
Description [Accesses the i-th clause of a DD given the clause set which must be already computed. Returns 1 if successful; 0 if i is out of range, or in case of error.]
SideEffects [the four components of a clause are returned as side effects.]
SeeAlso [Cudd_FindTwoLiteralClauses]
Definition at line 359 of file cuddEssent.c.
void Cudd_tlcInfoFree | ( | DdTlcInfo * | t | ) |
Function********************************************************************
Synopsis [Frees a DdTlcInfo Structure.]
Description [Frees a DdTlcInfo Structure as well as the memory pointed by it.]
SideEffects [None]
SeeAlso []
Definition at line 455 of file cuddEssent.c.
AutomaticStart
Function********************************************************************
Synopsis [Implements the recursive step of Cudd_FindEssential.]
Description [Implements the recursive step of Cudd_FindEssential. Returns a pointer to the cube BDD if successful; NULL otherwise.]
SideEffects [None]
Definition at line 486 of file cuddEssent.c.
|
static |
Function********************************************************************
Synopsis [Implements the recursive step of Cudd_FindTwoLiteralClauses.]
Description [Implements the recursive step of Cudd_FindTwoLiteralClauses. The DD node is assumed to be not constant. Returns a pointer to a set of clauses if successful; NULL otherwise.]
SideEffects [None]
SeeAlso [Cudd_FindTwoLiteralClauses]
Definition at line 620 of file cuddEssent.c.
|
static |
Function********************************************************************
Synopsis [Returns an enpty set of clauses.]
Description [Returns a pointer to an empty set of clauses if successful; NULL otherwise. No bit vector for the phases is allocated.]
SideEffects [None]
SeeAlso []
Definition at line 1140 of file cuddEssent.c.
|
static |
Function********************************************************************
Synopsis [Returns true iff the two arguments are identical clauses.]
Description [Returns true iff the two arguments are identical clauses. Since literals are sorted, we only need to compare literals in the same position.]
SideEffects [None]
SeeAlso [beforep]
Definition at line 1197 of file cuddEssent.c.
|
static |
Function********************************************************************
Synopsis [Returns true iff either literal of a clause is in a set of literals.]
Description [Returns true iff either literal of a clause is in a set of literals. The first four arguments specify the clause. The remaining two arguments specify the literal set.]
SideEffects [None]
SeeAlso []
Definition at line 1288 of file cuddEssent.c.
|
static |
Function********************************************************************
Synopsis [Returns true iff the argument is a one-literal clause.]
Description [Returns true iff the argument is a one-literal clause. A one-litaral clause has the constant FALSE as second literal. Since the constant TRUE is never used, it is sufficient to test for a constant.]
SideEffects [None]
SeeAlso []
Definition at line 1265 of file cuddEssent.c.
|
static |
Function********************************************************************
Synopsis [Returns true iff the argument is the sentinel clause.]
Description [Returns true iff the argument is the sentinel clause. A sentinel clause has both variables equal to 0.]
SideEffects [None]
SeeAlso []
Definition at line 1174 of file cuddEssent.c.
|
static |
Function********************************************************************
Synopsis [Allocates a DdTlcInfo Structure.]
Description [Returns a pointer to a DdTlcInfo Structure if successful; NULL otherwise.]
SideEffects [None]
SeeAlso [Cudd_tlcInfoFree]
Definition at line 1462 of file cuddEssent.c.
|
static |
Definition at line 150 of file cuddEssent.c.
|
static |
Definition at line 156 of file cuddEssent.c.
|
static |
Definition at line 155 of file cuddEssent.c.
|
static |
Definition at line 154 of file cuddEssent.c.
|
static |
Definition at line 153 of file cuddEssent.c.