abc-master
|
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include "misc/util/abc_global.h"
#include "fraig.h"
#include "sat/msat/msat.h"
Go to the source code of this file.
Data Structures | |
struct | Fraig_ManStruct_t_ |
struct | Fraig_NodeStruct_t_ |
struct | Fraig_NodeVecStruct_t_ |
struct | Fraig_HashTableStruct_t_ |
Macros | |
#define | FRAIG_ENABLE_FANOUTS |
INCLUDES ///. More... | |
#define | FRAIG_PATTERNS_RANDOM 2048 |
#define | FRAIG_PATTERNS_DYNAMIC 2048 |
#define | FRAIG_MAX_PRIMES 1024 |
#define | FRAIG_WORDS_STORE 5 |
#define | FRAIG_MASK(n) ((~((unsigned)0)) >> (32-(n))) |
#define | FRAIG_FULL (~((unsigned)0)) |
#define | FRAIG_NUM_WORDS(n) (((n)>>5) + (((n)&31) > 0)) |
#define | FRAIG_RANDOM_UNSIGNED Aig_ManRandom(0) |
#define | Fraig_BitStringSetBit(p, i) ((p)[(i)>>5] |= (1<<((i) & 31))) |
#define | Fraig_BitStringXorBit(p, i) ((p)[(i)>>5] ^= (1<<((i) & 31))) |
#define | Fraig_BitStringHasBit(p, i) (((p)[(i)>>5] & (1<<((i) & 31))) > 0) |
#define | Fraig_NodeSetVarStr(p, i) Fraig_BitStringSetBit(Fraig_Regular(p)->pSuppStr,i) |
#define | Fraig_NodeHasVarStr(p, i) Fraig_BitStringHasBit(Fraig_Regular(p)->pSuppStr,i) |
#define | Fraig_PrintTime(a, t) printf( "%s = ", (a) ); printf( "%6.2f sec\n", (float)(t)/(float)(CLOCKS_PER_SEC) ) |
#define | Fraig_HashKey2(a, b, TSIZE) (((ABC_PTRUINT_T)(a) + (ABC_PTRUINT_T)(b) * 12582917) % TSIZE) |
#define | Fraig_NodeReadNextFanout(pNode, pFanout) |
#define | Fraig_NodeReadNextFanoutPlace(pNode, pFanout) |
#define | Fraig_NodeForEachFanout(pNode, pFanout) |
#define | Fraig_NodeForEachFanoutSafe(pNode, pFanout, pFanout2) |
#define | Fraig_TableBinForEachEntryS(pBin, pEnt) |
#define | Fraig_TableBinForEachEntrySafeS(pBin, pEnt, pEnt2) |
#define | Fraig_TableBinForEachEntryF(pBin, pEnt) |
#define | Fraig_TableBinForEachEntrySafeF(pBin, pEnt, pEnt2) |
#define | Fraig_TableBinForEachEntryD(pBin, pEnt) |
#define | Fraig_TableBinForEachEntrySafeD(pBin, pEnt, pEnt2) |
#define | Fraig_TableBinForEachEntryE(pBin, pEnt) |
#define | Fraig_TableBinForEachEntrySafeE(pBin, pEnt, pEnt2) |
Typedefs | |
typedef struct Fraig_MemFixed_t_ | Fraig_MemFixed_t |
STRUCTURE DEFINITIONS ///. More... | |
Variables | |
int | s_FraigPrimes [FRAIG_MAX_PRIMES] |
DECLARATIONS ///. More... | |
Definition at line 81 of file fraigInt.h.
Definition at line 79 of file fraigInt.h.
Definition at line 80 of file fraigInt.h.
#define FRAIG_ENABLE_FANOUTS |
INCLUDES ///.
CFile****************************************************************
FileName [fraigInt.h]
PackageName [FRAIG: Functionally reduced AND-INV graphs.]
Synopsis [Internal declarations of the FRAIG package.]
Author [Alan Mishchenko alanm] i@ee cs.be rkel ey.ed u
Affiliation [UC Berkeley]
Date [Ver. 2.0. Started - October 1, 2004]
Revision [
]PARAMETERS ///MACRO DEFINITIONS ///
Definition at line 57 of file fraigInt.h.
#define FRAIG_FULL (~((unsigned)0)) |
Definition at line 71 of file fraigInt.h.
#define Fraig_HashKey2 | ( | a, | |
b, | |||
TSIZE | |||
) | (((ABC_PTRUINT_T)(a) + (ABC_PTRUINT_T)(b) * 12582917) % TSIZE) |
Definition at line 92 of file fraigInt.h.
#define FRAIG_MASK | ( | n | ) | ((~((unsigned)0)) >> (32-(n))) |
Definition at line 70 of file fraigInt.h.
#define FRAIG_MAX_PRIMES 1024 |
Definition at line 60 of file fraigInt.h.
#define Fraig_NodeForEachFanout | ( | pNode, | |
pFanout | |||
) |
Definition at line 288 of file fraigInt.h.
#define Fraig_NodeForEachFanoutSafe | ( | pNode, | |
pFanout, | |||
pFanout2 | |||
) |
Definition at line 292 of file fraigInt.h.
#define Fraig_NodeHasVarStr | ( | p, | |
i | |||
) | Fraig_BitStringHasBit(Fraig_Regular(p)->pSuppStr,i) |
Definition at line 87 of file fraigInt.h.
#define Fraig_NodeReadNextFanout | ( | pNode, | |
pFanout | |||
) |
Definition at line 279 of file fraigInt.h.
#define Fraig_NodeReadNextFanoutPlace | ( | pNode, | |
pFanout | |||
) |
Definition at line 284 of file fraigInt.h.
#define Fraig_NodeSetVarStr | ( | p, | |
i | |||
) | Fraig_BitStringSetBit(Fraig_Regular(p)->pSuppStr,i) |
Definition at line 86 of file fraigInt.h.
#define FRAIG_NUM_WORDS | ( | n | ) | (((n)>>5) + (((n)&31) > 0)) |
Definition at line 72 of file fraigInt.h.
#define FRAIG_PATTERNS_DYNAMIC 2048 |
Definition at line 59 of file fraigInt.h.
#define FRAIG_PATTERNS_RANDOM 2048 |
Definition at line 58 of file fraigInt.h.
#define Fraig_PrintTime | ( | a, | |
t | |||
) | printf( "%s = ", (a) ); printf( "%6.2f sec\n", (float)(t)/(float)(CLOCKS_PER_SEC) ) |
Definition at line 90 of file fraigInt.h.
#define FRAIG_RANDOM_UNSIGNED Aig_ManRandom(0) |
Definition at line 76 of file fraigInt.h.
#define Fraig_TableBinForEachEntryD | ( | pBin, | |
pEnt | |||
) |
Definition at line 323 of file fraigInt.h.
#define Fraig_TableBinForEachEntryE | ( | pBin, | |
pEnt | |||
) |
Definition at line 334 of file fraigInt.h.
#define Fraig_TableBinForEachEntryF | ( | pBin, | |
pEnt | |||
) |
Definition at line 312 of file fraigInt.h.
#define Fraig_TableBinForEachEntryS | ( | pBin, | |
pEnt | |||
) |
Definition at line 301 of file fraigInt.h.
#define Fraig_TableBinForEachEntrySafeD | ( | pBin, | |
pEnt, | |||
pEnt2 | |||
) |
Definition at line 327 of file fraigInt.h.
#define Fraig_TableBinForEachEntrySafeE | ( | pBin, | |
pEnt, | |||
pEnt2 | |||
) |
Definition at line 338 of file fraigInt.h.
#define Fraig_TableBinForEachEntrySafeF | ( | pBin, | |
pEnt, | |||
pEnt2 | |||
) |
Definition at line 316 of file fraigInt.h.
#define Fraig_TableBinForEachEntrySafeS | ( | pBin, | |
pEnt, | |||
pEnt2 | |||
) |
Definition at line 305 of file fraigInt.h.
#define FRAIG_WORDS_STORE 5 |
Definition at line 67 of file fraigInt.h.
typedef struct Fraig_MemFixed_t_ Fraig_MemFixed_t |
STRUCTURE DEFINITIONS ///.
Definition at line 101 of file fraigInt.h.
unsigned Aig_ManRandom | ( | int | fReset | ) |
GLOBAL VARIABLES ///.
Function*************************************************************
Synopsis [Creates a sequence of random numbers.]
Description []
SideEffects []
SeeAlso [http://www.codeproject.com/KB/recipes/SimpleRNG.aspx]
Definition at line 1157 of file aigUtil.c.
int Fraig_BitStringCountOnes | ( | unsigned * | pString, |
int | nWords | ||
) |
Function*************************************************************
Synopsis [Creates the constant 1 node.]
Description []
SideEffects []
SeeAlso []
Definition at line 288 of file fraigUtil.c.
Fraig_NodeVec_t* Fraig_CollectSupergate | ( | Fraig_Node_t * | pNode, |
int | fStopAtMux | ||
) |
Function*************************************************************
Synopsis [Returns the array of nodes to be combined into one multi-input AND-gate.]
Description []
SideEffects []
SeeAlso []
Definition at line 960 of file fraigUtil.c.
void Fraig_CollectXors | ( | Fraig_Node_t * | pNode1, |
Fraig_Node_t * | pNode2, | ||
int | iWordLast, | ||
int | fUseRand, | ||
unsigned * | puMask | ||
) |
Function*************************************************************
Synopsis [Compares two pieces of simulation info.]
Description [Returns 1 if they are equal.]
SideEffects []
SeeAlso []
Definition at line 478 of file fraigTable.c.
int Fraig_CompareSimInfo | ( | Fraig_Node_t * | pNode1, |
Fraig_Node_t * | pNode2, | ||
int | iWordLast, | ||
int | fUseRand | ||
) |
Function*************************************************************
Synopsis [Compares two pieces of simulation info.]
Description [Returns 1 if they are equal.]
SideEffects []
SeeAlso []
Definition at line 351 of file fraigTable.c.
int Fraig_CompareSimInfoUnderMask | ( | Fraig_Node_t * | pNode1, |
Fraig_Node_t * | pNode2, | ||
int | iWordLast, | ||
int | fUseRand, | ||
unsigned * | puMask | ||
) |
Function*************************************************************
Synopsis [Compares two pieces of simulation info.]
Description [Returns 1 if they are equal.]
SideEffects []
SeeAlso []
Definition at line 451 of file fraigTable.c.
int Fraig_CountPis | ( | Fraig_Man_t * | p, |
Msat_IntVec_t * | vVarNums | ||
) |
Function*************************************************************
Synopsis [Count the number of PI variables.]
Description []
SideEffects []
SeeAlso []
Definition at line 817 of file fraigUtil.c.
void Fraig_FeedBack | ( | Fraig_Man_t * | p, |
int * | pModel, | ||
Msat_IntVec_t * | vVars, | ||
Fraig_Node_t * | pOld, | ||
Fraig_Node_t * | pNew | ||
) |
Function*************************************************************
Synopsis [Processes the feedback from teh solver.]
Description [Array pModel gives the value of each variable in the SAT solver. Array vVars is the array of integer numbers of variables involves in this conflict.]
SideEffects []
SeeAlso []
Definition at line 80 of file fraigFeed.c.
int Fraig_FeedBackCompress | ( | Fraig_Man_t * | p | ) |
Function*************************************************************
Synopsis [Compress the simulation patterns.]
Description []
SideEffects []
SeeAlso []
Definition at line 278 of file fraigFeed.c.
void Fraig_FeedBackInit | ( | Fraig_Man_t * | p | ) |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Initializes the feedback information.]
Description []
SideEffects []
SeeAlso []
Definition at line 57 of file fraigFeed.c.
void Fraig_FeedBackTest | ( | Fraig_Man_t * | p | ) |
int Fraig_FindFirstDiff | ( | Fraig_Node_t * | pNode1, |
Fraig_Node_t * | pNode2, | ||
int | fCompl, | ||
int | iWordLast, | ||
int | fUseRand | ||
) |
Function*************************************************************
Synopsis [Find the number of the different pattern.]
Description [Returns -1 if there is no such pattern]
SideEffects []
SeeAlso []
Definition at line 390 of file fraigTable.c.
Fraig_HashTable_t* Fraig_HashTableCreate | ( | int | nSize | ) |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Allocates the hash table.]
Description []
SideEffects []
SeeAlso []
Definition at line 46 of file fraigTable.c.
void Fraig_HashTableFree | ( | Fraig_HashTable_t * | p | ) |
Function*************************************************************
Synopsis [Deallocates the supergate hash table.]
Description []
SideEffects []
SeeAlso []
Definition at line 70 of file fraigTable.c.
void Fraig_HashTableInsertF0 | ( | Fraig_Man_t * | pMan, |
Fraig_Node_t * | pNode | ||
) |
Function*************************************************************
Synopsis [Insert the entry in the functional hash table.]
Description [Unconditionally add the node to the corresponding linked list in the table.]
SideEffects []
SeeAlso []
Definition at line 237 of file fraigTable.c.
Fraig_Node_t* Fraig_HashTableLookupF | ( | Fraig_Man_t * | pMan, |
Fraig_Node_t * | pNode | ||
) |
Function*************************************************************
Synopsis [Insert the entry in the functional hash table.]
Description [If the entry with the same key exists, return it right away. If the entry with the same key does not exists, inserts it and returns NULL. ]
SideEffects []
SeeAlso []
Definition at line 136 of file fraigTable.c.
Fraig_Node_t* Fraig_HashTableLookupF0 | ( | Fraig_Man_t * | pMan, |
Fraig_Node_t * | pNode | ||
) |
Function*************************************************************
Synopsis [Insert the entry in the functional hash table.]
Description [If the entry with the same key exists, return it right away. If the entry with the same key does not exists, inserts it and returns NULL. ]
SideEffects []
SeeAlso []
Definition at line 193 of file fraigTable.c.
int Fraig_HashTableLookupS | ( | Fraig_Man_t * | pMan, |
Fraig_Node_t * | p1, | ||
Fraig_Node_t * | p2, | ||
Fraig_Node_t ** | ppNodeRes | ||
) |
Function*************************************************************
Synopsis [Looks up an entry in the structural hash table.]
Description [If the entry with the same children does not exists, creates it, inserts it into the table, and returns 0. If the entry with the same children exists, finds it, and return 1. In both cases, the new/old entry is returned in ppNodeRes.]
SideEffects []
SeeAlso []
Definition at line 90 of file fraigTable.c.
int* Fraig_ManAllocCounterExample | ( | Fraig_Man_t * | p | ) |
Function*************************************************************
Synopsis [Generated trivial counter example.]
Description []
SideEffects []
SeeAlso []
Definition at line 787 of file fraigFeed.c.
int Fraig_ManCountExors | ( | Fraig_Man_t * | pMan | ) |
Function*************************************************************
Synopsis [Counts the number of EXOR type nodes.]
Description []
SideEffects []
SeeAlso []
Definition at line 742 of file fraigUtil.c.
int Fraig_ManCountMuxes | ( | Fraig_Man_t * | pMan | ) |
Function*************************************************************
Synopsis [Counts the number of EXOR type nodes.]
Description []
SideEffects []
SeeAlso []
Definition at line 763 of file fraigUtil.c.
void Fraig_ManCreateSolver | ( | Fraig_Man_t * | p | ) |
Function*************************************************************
Synopsis [Prepares the SAT solver to run on the two nodes.]
Description []
SideEffects []
SeeAlso []
Definition at line 325 of file fraigMan.c.
void Fraig_ManIncrementTravId | ( | Fraig_Man_t * | pMan | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 980 of file fraigUtil.c.
int* Fraig_ManSaveCounterExample | ( | Fraig_Man_t * | p, |
Fraig_Node_t * | pNode | ||
) |
Function*************************************************************
Synopsis [Saves the counter example.]
Description []
SideEffects []
SeeAlso []
Definition at line 860 of file fraigFeed.c.
void Fraig_ManSelectBestChoice | ( | Fraig_Man_t * | p | ) |
char* Fraig_MemFixedEntryFetch | ( | Fraig_MemFixed_t * | p | ) |
Function*************************************************************
Synopsis [Extracts one entry from the memory manager.]
Description []
SideEffects []
SeeAlso []
Definition at line 131 of file fraigMem.c.
void Fraig_MemFixedEntryRecycle | ( | Fraig_MemFixed_t * | p, |
char * | pEntry | ||
) |
Function*************************************************************
Synopsis [Returns one entry into the memory manager.]
Description []
SideEffects []
SeeAlso []
Definition at line 182 of file fraigMem.c.
int Fraig_MemFixedReadMemUsage | ( | Fraig_MemFixed_t * | p | ) |
Function*************************************************************
Synopsis [Reports the memory usage.]
Description []
SideEffects []
SeeAlso []
Definition at line 240 of file fraigMem.c.
void Fraig_MemFixedRestart | ( | Fraig_MemFixed_t * | p | ) |
Function*************************************************************
Synopsis [Frees all associated memory and resets the manager.]
Description [Relocates all the memory except the first chunk.]
SideEffects []
SeeAlso []
Definition at line 202 of file fraigMem.c.
Fraig_MemFixed_t* Fraig_MemFixedStart | ( | int | nEntrySize | ) |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Starts the internal memory manager.]
Description [Can only work with entry size at least 4 byte long.]
SideEffects []
SeeAlso []
Definition at line 63 of file fraigMem.c.
void Fraig_MemFixedStop | ( | Fraig_MemFixed_t * | p, |
int | fVerbose | ||
) |
Function*************************************************************
Synopsis [Stops the internal memory manager.]
Description []
SideEffects []
SeeAlso []
Definition at line 102 of file fraigMem.c.
void Fraig_NodeAddFaninFanout | ( | Fraig_Node_t * | pFanin, |
Fraig_Node_t * | pFanout | ||
) |
DECLARATIONS ///.
CFile****************************************************************
FileName [fraigFanout.c]
PackageName [FRAIG: Functionally reduced AND-INV graphs.]
Synopsis [Procedures to manipulate fanouts of the FRAIG nodes.]
Author [Alan Mishchenko alanm] i@ee cs.be rkel ey.ed u
Affiliation [UC Berkeley]
Date [Ver. 2.0. Started - October 1, 2004]
Revision [
]FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis [Add the fanout to the node.]
Description []
SideEffects []
SeeAlso []
Definition at line 45 of file fraigFanout.c.
Fraig_Node_t* Fraig_NodeAndCanon | ( | Fraig_Man_t * | pMan, |
Fraig_Node_t * | p1, | ||
Fraig_Node_t * | p2 | ||
) |
FUNCTION DEFINITIONS ///.
FUNCTION DEFINITIONS ///.
CFile****************************************************************
FileName [fraigCanon.c]
PackageName [FRAIG: Functionally reduced AND-INV graphs.]
Synopsis [AND-node creation and elementary AND-operation.]
Author [Alan Mishchenko alanm] i@ee cs.be rkel ey.ed u
Affiliation [UC Berkeley]
Date [Ver. 2.0. Started - October 1, 2004]
Revision [
]FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis [The internal AND operation for the two FRAIG nodes.]
Description [This procedure is the core of the FRAIG package, because it performs the two-step canonicization of FRAIG nodes. The first step involves the lookup in the structural hash table (which hashes two ANDs into a node that has them as fanins, if such a node exists). If the node is not found in the structural hash table, an attempt is made to find a functionally equivalent node in another hash table (which hashes the simulation info into the nodes, which has this simulation info). Some tricks used on the way are described in the comments to the code and in the paper "FRAIGs: Functionally reduced AND-INV graphs".]
SideEffects []
SeeAlso []
Definition at line 52 of file fraigCanon.c.
int Fraig_NodeAndSimpleCase_rec | ( | Fraig_Node_t * | pOld, |
Fraig_Node_t * | pNew | ||
) |
int Fraig_NodeCountPis | ( | Msat_IntVec_t * | vVars, |
int | nVarsPi | ||
) |
int Fraig_NodeCountSuppVars | ( | Fraig_Man_t * | p, |
Fraig_Node_t * | pNode, | ||
int | fSuppStr | ||
) |
Fraig_Node_t* Fraig_NodeCreate | ( | Fraig_Man_t * | p, |
Fraig_Node_t * | p1, | ||
Fraig_Node_t * | p2 | ||
) |
Function*************************************************************
Synopsis [Creates a new node.]
Description [This procedure should be called to create the constant node and the PI nodes first.]
SideEffects []
SeeAlso []
Definition at line 160 of file fraigNode.c.
Fraig_Node_t* Fraig_NodeCreateConst | ( | Fraig_Man_t * | p | ) |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Creates the constant 1 node.]
Description []
SideEffects []
SeeAlso []
Definition at line 46 of file fraigNode.c.
Fraig_Node_t* Fraig_NodeCreatePi | ( | Fraig_Man_t * | p | ) |
Function*************************************************************
Synopsis [Creates a primary input node.]
Description []
SideEffects []
SeeAlso []
Definition at line 87 of file fraigNode.c.
int Fraig_NodeGetFanoutNum | ( | Fraig_Node_t * | pNode | ) |
Function*************************************************************
Synopsis [Returns the number of fanouts of a node.]
Description []
SideEffects []
SeeAlso []
Definition at line 164 of file fraigFanout.c.
int Fraig_NodeIsExor | ( | Fraig_Node_t * | pNode | ) |
Function*************************************************************
Synopsis [Returns 1 if the node is EXOR, 0 if it is NEXOR.]
Description [The node should be EXOR type and not complemented.]
SideEffects []
SeeAlso []
Definition at line 633 of file fraigUtil.c.
int Fraig_NodeIsExorType | ( | Fraig_Node_t * | pNode | ) |
Function*************************************************************
Synopsis [Returns 1 if the node is the root of EXOR/NEXOR gate.]
Description [The node can be complemented.]
SideEffects []
SeeAlso []
Definition at line 558 of file fraigUtil.c.
int Fraig_NodeIsImplication | ( | Fraig_Man_t * | p, |
Fraig_Node_t * | pOld, | ||
Fraig_Node_t * | pNew, | ||
int | nBTLimit | ||
) |
Function*************************************************************
Synopsis [Checks whether pOld => pNew.]
Description []
SideEffects []
SeeAlso []
Definition at line 551 of file fraigSat.c.
int Fraig_NodeIsInSupergate | ( | Fraig_Node_t * | pOld, |
Fraig_Node_t * | pNew | ||
) |
Function*************************************************************
Synopsis [Checks if pNew exists among the implication fanins of pOld.]
Description [If pNew is an implication fanin of pOld, returns 1. If Fraig_Not(pNew) is an implication fanin of pOld, return -1. Otherwise returns 0.]
SideEffects []
SeeAlso []
Definition at line 905 of file fraigUtil.c.
int Fraig_NodeIsMuxType | ( | Fraig_Node_t * | pNode | ) |
Function*************************************************************
Synopsis [Returns 1 if the node is the root of MUX or EXOR/NEXOR.]
Description [The node can be complemented.]
SideEffects []
SeeAlso []
Definition at line 591 of file fraigUtil.c.
int Fraig_NodeIsTravIdCurrent | ( | Fraig_Man_t * | pMan, |
Fraig_Node_t * | pNode | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 1012 of file fraigUtil.c.
int Fraig_NodeIsTravIdPrevious | ( | Fraig_Man_t * | pMan, |
Fraig_Node_t * | pNode | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 1028 of file fraigUtil.c.
Fraig_Node_t* Fraig_NodeRecognizeMux | ( | Fraig_Node_t * | pNode, |
Fraig_Node_t ** | ppNodeT, | ||
Fraig_Node_t ** | ppNodeE | ||
) |
Function*************************************************************
Synopsis [Recognizes what nodes are control and data inputs of a MUX.]
Description [If the node is a MUX, returns the control variable C. Assigns nodes T and E to be the then and else variables of the MUX. Node C is never complemented. Nodes T and E can be complemented. This function also recognizes EXOR/NEXOR gates as MUXes.]
SideEffects []
SeeAlso []
Definition at line 658 of file fraigUtil.c.
void Fraig_NodeRemoveFaninFanout | ( | Fraig_Node_t * | pFanin, |
Fraig_Node_t * | pFanoutToRemove | ||
) |
Function*************************************************************
Synopsis [Add the fanout to the node.]
Description []
SideEffects []
SeeAlso []
Definition at line 101 of file fraigFanout.c.
int Fraig_NodesCompareSupps | ( | Fraig_Man_t * | p, |
Fraig_Node_t * | pOld, | ||
Fraig_Node_t * | pNew | ||
) |
void Fraig_NodeSetTravIdCurrent | ( | Fraig_Man_t * | pMan, |
Fraig_Node_t * | pNode | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 996 of file fraigUtil.c.
int Fraig_NodeSimsContained | ( | Fraig_Man_t * | pMan, |
Fraig_Node_t * | pNode1, | ||
Fraig_Node_t * | pNode2 | ||
) |
Function*************************************************************
Synopsis [Returns 1 if siminfo of Node1 is contained in siminfo of Node2.]
Description []
SideEffects []
SeeAlso []
Definition at line 784 of file fraigUtil.c.
void Fraig_NodeSimulate | ( | Fraig_Node_t * | pNode, |
int | iWordStart, | ||
int | iWordStop, | ||
int | fUseRand | ||
) |
Function*************************************************************
Synopsis [Simulates the node.]
Description [Simulates the random or dynamic simulation info through the node. Uses phases of the children to determine their real simulation info. Uses phase of the node to determine the way its simulation info is stored. The resulting info is guaranteed to be 0 for the first pattern.]
SideEffects [This procedure modified the hash value of the simulation info.]
SeeAlso []
Definition at line 226 of file fraigNode.c.
void Fraig_NodeVecSortByRefCount | ( | Fraig_NodeVec_t * | p | ) |
Function*************************************************************
Synopsis [Sorting the entries by their integer value.]
Description []
SideEffects []
SeeAlso []
Definition at line 539 of file fraigVec.c.
void Fraig_PrintBinary | ( | FILE * | pFile, |
unsigned * | pSign, | ||
int | nBits | ||
) |
Function*************************************************************
Synopsis [Prints the bit string.]
Description []
SideEffects []
SeeAlso []
Definition at line 402 of file fraigUtil.c.
void Fraig_TablePrintStatsF | ( | Fraig_Man_t * | pMan | ) |
Function*************************************************************
Synopsis [Prints stats of the structural table.]
Description []
SideEffects []
SeeAlso []
Definition at line 537 of file fraigTable.c.
void Fraig_TablePrintStatsF0 | ( | Fraig_Man_t * | pMan | ) |
Function*************************************************************
Synopsis [Prints stats of the structural table.]
Description []
SideEffects []
SeeAlso []
Definition at line 566 of file fraigTable.c.
void Fraig_TablePrintStatsS | ( | Fraig_Man_t * | pMan | ) |
Function*************************************************************
Synopsis [Prints stats of the structural table.]
Description []
SideEffects []
SeeAlso []
Definition at line 504 of file fraigTable.c.
int Fraig_TableRehashF0 | ( | Fraig_Man_t * | pMan, |
int | fLinkEquiv | ||
) |
Function*************************************************************
Synopsis [Rehashes the table after the simulation info has changed.]
Description [Assumes that the hash values have been updated after performing additional simulation. Rehashes the table using the new hash values. Uses pNextF to link the entries in the bins. Uses pNextD to link the entries with identical hash values. Returns 1 if the identical entries have been found. Note that identical hash values may mean that the simulation data is different.]
SideEffects []
SeeAlso []
Definition at line 604 of file fraigTable.c.
int s_FraigPrimes[FRAIG_MAX_PRIMES] |
DECLARATIONS ///.
CFile****************************************************************
FileName [fraigPrime.c]
PackageName [FRAIG: Functionally reduced AND-INV graphs.]
Synopsis [The table of the first 1000 primes.]
Author [Alan Mishchenko alanm] i@ee cs.be rkel ey.ed u
Affiliation [UC Berkeley]
Date [Ver. 2.0. Started - October 1, 2004]
Revision [
]
Definition at line 30 of file fraigPrime.c.