#include "acb.h"#include "bool/kit/kit.h"#include "sat/bsat/satSolver.h"#include "sat/cnf/cnf.h"#include "misc/util/utilTruth.h"#include "acbPar.h"
Go to the source code of this file.
Classes | |
| struct | Acb_Mfs_t_ |
Typedefs | |
| typedef struct Acb_Mfs_t_ | Acb_Mfs_t |
Functions | |
| int | Acb_DeriveCnfFromTruth (word Truth, int nVars, Vec_Int_t *vCover, Vec_Str_t *vCnf) |
| FUNCTION DEFINITIONS ///. | |
| void | Acb_DeriveCnfForWindowOne (Acb_Ntk_t *p, int iObj) |
| Vec_Wec_t * | Acb_DeriveCnfForWindow (Acb_Ntk_t *p, Vec_Int_t *vWin, int PivotVar) |
| void | Acb_TranslateCnf (Vec_Int_t *vClas, Vec_Int_t *vLits, Vec_Str_t *vCnf, Vec_Int_t *vSatVars, int iPivotVar) |
| int | Acb_NtkCountRoots (Vec_Int_t *vWinObjs, int PivotVar) |
| void | Acb_DeriveCnfForNode (Acb_Ntk_t *p, int iObj, sat_solver *pSat, int OutVar) |
| Cnf_Dat_t * | Acb_NtkWindow2Cnf (Acb_Ntk_t *p, Vec_Int_t *vWinObjs, int Pivot) |
| void | Acb_NtkWindowUndo (Acb_Ntk_t *p, Vec_Int_t *vWin) |
| int | Acb_NtkWindow2Solver (sat_solver *pSat, Cnf_Dat_t *pCnf, Vec_Int_t *vFlip, int PivotVar, int nDivs, int nTimes) |
| word | Acb_ComputeFunction (sat_solver *pSat, int PivotVar, int FreeVar, Vec_Int_t *vDivVars, int fCompl) |
| void | Acb_NtkPrintVec (Acb_Ntk_t *p, Vec_Int_t *vVec, char *pName) |
| void | Acb_NtkPrintVec2 (Acb_Ntk_t *p, Vec_Int_t *vVec, char *pName) |
| void | Acb_NtkPrintVecWin (Acb_Ntk_t *p, Vec_Int_t *vVec, char *pName) |
| void | Acb_NtkDivisors_rec (Acb_Ntk_t *p, int iObj, int nTfiLevMin, Vec_Int_t *vDivs) |
| Vec_Int_t * | Acb_NtkDivisors (Acb_Ntk_t *p, int Pivot, int nTfiLevMin, int fDelay) |
| void | Acb_ObjMarkTfo_rec (Acb_Ntk_t *p, int iObj, int nTfoLevMax, int nFanMax, Vec_Int_t *vMarked) |
| Vec_Int_t * | Acb_ObjMarkTfo (Acb_Ntk_t *p, Vec_Int_t *vDivs, int Pivot, int nTfoLevMax, int nFanMax) |
| void | Acb_ObjMarkTfo2 (Acb_Ntk_t *p, Vec_Int_t *vMarked) |
| int | Acb_ObjLabelTfo_rec (Acb_Ntk_t *p, int iObj, int nTfoLevMax, int nFanMax, int fFirst) |
| int | Acb_ObjLabelTfo (Acb_Ntk_t *p, int Root, int nTfoLevMax, int nFanMax, int fDelay) |
| void | Acb_ObjDeriveTfo_rec (Acb_Ntk_t *p, int iObj, Vec_Int_t *vTfo, Vec_Int_t *vRoots, int fFirst) |
| void | Acb_ObjDeriveTfo (Acb_Ntk_t *p, int Pivot, int nTfoLevMax, int nFanMax, Vec_Int_t **pvTfo, Vec_Int_t **pvRoots, int fDelay) |
| Vec_Int_t * | Acb_NtkCollectTfoSideInputs (Acb_Ntk_t *p, int Pivot, Vec_Int_t *vTfo) |
| void | Acb_NtkCollectNewTfi1_rec (Acb_Ntk_t *p, int iObj, Vec_Int_t *vTfiNew) |
| void | Acb_NtkCollectNewTfi2_rec (Acb_Ntk_t *p, int iObj, Vec_Int_t *vTfiNew) |
| Vec_Int_t * | Acb_NtkCollectNewTfi (Acb_Ntk_t *p, int Pivot, Vec_Int_t *vDivs, Vec_Int_t *vSide, int *pnDivs) |
| Vec_Int_t * | Acb_NtkCollectWindow (Acb_Ntk_t *p, int Pivot, Vec_Int_t *vTfi, Vec_Int_t *vTfo, Vec_Int_t *vRoots) |
| Vec_Int_t * | Acb_NtkWindow (Acb_Ntk_t *p, int Pivot, int nTfiLevs, int nTfoLevs, int nFanMax, int fDelay, int *pnDivs) |
| int | Acb_NtkFindSupp1 (Acb_Ntk_t *p, int Pivot, sat_solver *pSat, int nVars, int nDivs, Vec_Int_t *vWin, Vec_Int_t *vSupp) |
| int | Acb_NtkFindSupp2 (Acb_Ntk_t *p, int Pivot, sat_solver *pSat, int nVars, int nDivs, Vec_Int_t *vWin, Vec_Int_t *vSupp, int nLutSize, int fDelay) |
| int | Acb_NtkFindSupp3 (Acb_Ntk_t *p, int Pivot, sat_solver *pSat, int nVars, int nDivs, Vec_Int_t *vWin, Vec_Int_t *vSupp, int nLutSize, int fDelay) |
| Acb_Mfs_t * | Acb_MfsStart (Acb_Ntk_t *pNtk, Acb_Par_t *pPars) |
| void | Acb_MfsStop (Acb_Mfs_t *p) |
| void | Acb_NtkOptNodeAnalyze (Acb_Mfs_t *p, int PivotVar, int nDivs, int nValues, int *pValues, Vec_Int_t *vSupp) |
| int | Acb_NtkOptNode (Acb_Mfs_t *p, int Pivot) |
| void | Acb_NtkOpt (Acb_Ntk_t *pNtk, Acb_Par_t *pPars) |
| typedef struct Acb_Mfs_t_ Acb_Mfs_t |
| word Acb_ComputeFunction | ( | sat_solver * | pSat, |
| int | PivotVar, | ||
| int | FreeVar, | ||
| Vec_Int_t * | vDivVars, | ||
| int | fCompl ) |
Function*************************************************************
Synopsis [Computes function of the node]
Description []
SideEffects []
SeeAlso []
Definition at line 347 of file acbMfs.c.


| void Acb_DeriveCnfForNode | ( | Acb_Ntk_t * | p, |
| int | iObj, | ||
| sat_solver * | pSat, | ||
| int | OutVar ) |
Definition at line 162 of file acbMfs.c.


Definition at line 104 of file acbMfs.c.


| void Acb_DeriveCnfForWindowOne | ( | Acb_Ntk_t * | p, |
| int | iObj ) |
Definition at line 93 of file acbMfs.c.


FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Derive CNF for nodes in the window.]
Description []
SideEffects []
SeeAlso []
Definition at line 53 of file acbMfs.c.


Definition at line 1178 of file acbMfs.c.


| void Acb_MfsStop | ( | Acb_Mfs_t * | p | ) |
| Vec_Int_t * Acb_NtkCollectNewTfi | ( | Acb_Ntk_t * | p, |
| int | Pivot, | ||
| Vec_Int_t * | vDivs, | ||
| Vec_Int_t * | vSide, | ||
| int * | pnDivs ) |
Definition at line 709 of file acbMfs.c.


Function*************************************************************
Synopsis [From side inputs, collect marked nodes and their unmarked fanins.]
Description []
SideEffects []
SeeAlso []
Definition at line 687 of file acbMfs.c.


Function*************************************************************
Synopsis [Collect side-inputs of the TFO, except the node.]
Description []
SideEffects []
SeeAlso []
Definition at line 660 of file acbMfs.c.

| Vec_Int_t * Acb_NtkCollectWindow | ( | Acb_Ntk_t * | p, |
| int | Pivot, | ||
| Vec_Int_t * | vTfi, | ||
| Vec_Int_t * | vTfo, | ||
| Vec_Int_t * | vRoots ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 747 of file acbMfs.c.

| int Acb_NtkCountRoots | ( | Vec_Int_t * | vWinObjs, |
| int | PivotVar ) |
Definition at line 155 of file acbMfs.c.

Definition at line 476 of file acbMfs.c.


Function*************************************************************
Synopsis [Collects divisors in a non-topo order.]
Description []
SideEffects []
SeeAlso []
Definition at line 464 of file acbMfs.c.


| int Acb_NtkFindSupp1 | ( | Acb_Ntk_t * | p, |
| int | Pivot, | ||
| sat_solver * | pSat, | ||
| int | nVars, | ||
| int | nDivs, | ||
| Vec_Int_t * | vWin, | ||
| Vec_Int_t * | vSupp ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 914 of file acbMfs.c.


| int Acb_NtkFindSupp2 | ( | Acb_Ntk_t * | p, |
| int | Pivot, | ||
| sat_solver * | pSat, | ||
| int | nVars, | ||
| int | nDivs, | ||
| Vec_Int_t * | vWin, | ||
| Vec_Int_t * | vSupp, | ||
| int | nLutSize, | ||
| int | fDelay ) |
Definition at line 935 of file acbMfs.c.


| int Acb_NtkFindSupp3 | ( | Acb_Ntk_t * | p, |
| int | Pivot, | ||
| sat_solver * | pSat, | ||
| int | nVars, | ||
| int | nDivs, | ||
| Vec_Int_t * | vWin, | ||
| Vec_Int_t * | vSupp, | ||
| int | nLutSize, | ||
| int | fDelay ) |
Definition at line 1007 of file acbMfs.c.


Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 1576 of file acbMfs.c.


| int Acb_NtkOptNode | ( | Acb_Mfs_t * | p, |
| int | Pivot ) |
Definition at line 1295 of file acbMfs.c.


| void Acb_NtkOptNodeAnalyze | ( | Acb_Mfs_t * | p, |
| int | PivotVar, | ||
| int | nDivs, | ||
| int | nValues, | ||
| int * | pValues, | ||
| Vec_Int_t * | vSupp ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 1227 of file acbMfs.c.

Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 428 of file acbMfs.c.

| Vec_Int_t * Acb_NtkWindow | ( | Acb_Ntk_t * | p, |
| int | Pivot, | ||
| int | nTfiLevs, | ||
| int | nTfoLevs, | ||
| int | nFanMax, | ||
| int | fDelay, | ||
| int * | pnDivs ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 789 of file acbMfs.c.


Definition at line 190 of file acbMfs.c.


| int Acb_NtkWindow2Solver | ( | sat_solver * | pSat, |
| Cnf_Dat_t * | pCnf, | ||
| Vec_Int_t * | vFlip, | ||
| int | PivotVar, | ||
| int | nDivs, | ||
| int | nTimes ) |
Function*************************************************************
Synopsis [Creates SAT solver containing several copies of the window.]
Description []
SideEffects []
SeeAlso []
Definition at line 298 of file acbMfs.c.


| void Acb_ObjDeriveTfo | ( | Acb_Ntk_t * | p, |
| int | Pivot, | ||
| int | nTfoLevMax, | ||
| int | nFanMax, | ||
| Vec_Int_t ** | pvTfo, | ||
| Vec_Int_t ** | pvRoots, | ||
| int | fDelay ) |
Definition at line 632 of file acbMfs.c.


| void Acb_ObjDeriveTfo_rec | ( | Acb_Ntk_t * | p, |
| int | iObj, | ||
| Vec_Int_t * | vTfo, | ||
| Vec_Int_t * | vRoots, | ||
| int | fFirst ) |
Function*************************************************************
Synopsis [Collects labeled TFO.]
Description []
SideEffects []
SeeAlso []
Definition at line 615 of file acbMfs.c.


| int Acb_ObjLabelTfo | ( | Acb_Ntk_t * | p, |
| int | Root, | ||
| int | nTfoLevMax, | ||
| int | nFanMax, | ||
| int | fDelay ) |
Definition at line 595 of file acbMfs.c.


| int Acb_ObjLabelTfo_rec | ( | Acb_Ntk_t * | p, |
| int | iObj, | ||
| int | nTfoLevMax, | ||
| int | nFanMax, | ||
| int | fFirst ) |
Function*************************************************************
Synopsis [Labels TFO nodes with {none, root, inner} based on their type.]
Description [Assuming TFO of TFI is marked with the current trav ID.]
SideEffects []
SeeAlso []
Definition at line 572 of file acbMfs.c.


| Vec_Int_t * Acb_ObjMarkTfo | ( | Acb_Ntk_t * | p, |
| Vec_Int_t * | vDivs, | ||
| int | Pivot, | ||
| int | nTfoLevMax, | ||
| int | nFanMax ) |
Definition at line 542 of file acbMfs.c.


Definition at line 553 of file acbMfs.c.

| void Acb_ObjMarkTfo_rec | ( | Acb_Ntk_t * | p, |
| int | iObj, | ||
| int | nTfoLevMax, | ||
| int | nFanMax, | ||
| Vec_Int_t * | vMarked ) |
Function*************************************************************
Synopsis [Marks TFO of divisors.]
Description []
SideEffects []
SeeAlso []
Definition at line 531 of file acbMfs.c.


| void Acb_TranslateCnf | ( | Vec_Int_t * | vClas, |
| Vec_Int_t * | vLits, | ||
| Vec_Str_t * | vCnf, | ||
| Vec_Int_t * | vSatVars, | ||
| int | iPivotVar ) |
Function*************************************************************
Synopsis [Constructs CNF for the window.]
Description [The window for the pivot node is represented as a DFS ordered array of objects (vWinObjs) whose indexes are used as SAT variable IDs (stored in p->vCopies). PivotVar is the index of the pivot node in array vWinObjs. The nodes before (after) PivotVar are TFI (TFO) nodes. The leaf (root) nodes are labeled with Abc_LitIsCompl(). If fQbf is 1, returns the instance meant for QBF solving. It uses the last variable (LastVar) as the placeholder for the second copy of the pivot node.]
SideEffects []
SeeAlso []
Definition at line 139 of file acbMfs.c.
