21#ifndef ABC__aig__cnf__cnf_h
22#define ABC__aig__cnf__cnf_h
99static inline int Cnf_CutSopCost(
Cnf_Man_t *
p,
Dar_Cut_t * pCut ) {
return p->pSopSizes[pCut->
uTruth] +
p->pSopSizes[0xFFFF & ~pCut->uTruth]; }
101static inline int Cnf_CutLeaveNum(
Cnf_Cut_t * pCut ) {
return pCut->
nFanins; }
102static inline int * Cnf_CutLeaves(
Cnf_Cut_t * pCut ) {
return pCut->
pFanins; }
103static inline unsigned * Cnf_CutTruth(
Cnf_Cut_t * pCut ) {
return (
unsigned *)(pCut->
pFanins + pCut->
nFanins); }
117#define Cnf_CnfForClause( p, pBeg, pEnd, i ) \
118 for ( i = 0; i < p->nClauses && (pBeg = p->pClauses[i]) && (pEnd = p->pClauses[i+1]); i++ )
121#define Cnf_CutForEachLeaf( p, pCut, pLeaf, i ) \
122 for ( i = 0; (i < (int)(pCut)->nFanins) && ((pLeaf) = Aig_ManObj(p, (pCut)->pFanins[i])); i++ )
144extern void Cnf_ReadMsops(
char ** ppSopSizes,
char *** ppSops );
#define ABC_NAMESPACE_HEADER_END
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///.
struct Aig_Obj_t_ Aig_Obj_t
struct Aig_MmFlex_t_ Aig_MmFlex_t
typedefABC_NAMESPACE_HEADER_START struct Aig_Man_t_ Aig_Man_t
INCLUDES ///.
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
int Cnf_DataAddXorClause(void *pSat, int iVarA, int iVarB, int iVarC)
void * Cnf_DataWriteIntoSolver(Cnf_Dat_t *p, int nFrames, int fInit)
Cnf_Dat_t * Cnf_DeriveFast(Aig_Man_t *p, int nOutputs)
void Cnf_DataPrint(Cnf_Dat_t *p, int fReadable)
Cnf_Dat_t * Cnf_DeriveSimple(Aig_Man_t *p, int nOutputs)
Vec_Int_t * Cnf_DeriveMappingArray(Aig_Man_t *pAig)
FUNCTION DECLARATIONS ///.
Vec_Int_t * Cnf_DataCollectCoSatNums(Cnf_Dat_t *pCnf, Aig_Man_t *p)
Cnf_Dat_t * Cnf_Derive(Aig_Man_t *pAig, int nOutputs)
Cnf_Dat_t * Cnf_DataDup(Cnf_Dat_t *p)
Vec_Int_t * Cnf_DataCollectPiSatNums(Cnf_Dat_t *pCnf, Aig_Man_t *p)
Cnf_Dat_t * Cnf_DataReadFromFile(char *pFileName)
void Cnf_ManTransferCuts(Cnf_Man_t *p)
void Cnf_DataWriteIntoFileInv(Cnf_Dat_t *p, char *pFileName, int fReadable, Vec_Int_t *vExists1, Vec_Int_t *vForAlls, Vec_Int_t *vExists2)
Cnf_Dat_t * Cnf_DataDupCofArray(Cnf_Dat_t *p, Vec_Int_t *vLits)
void Cnf_ManPrepare()
FUNCTION DEFINITIONS ///.
void Cnf_DataTranformPolarity(Cnf_Dat_t *pCnf, int fTransformPos)
void Cnf_ReadMsops(char **ppSopSizes, char ***ppSops)
FUNCTION DEFINITIONS ///.
Cnf_Dat_t * Cnf_DataAlloc(Aig_Man_t *pAig, int nVars, int nClauses, int nLiterals)
unsigned char * Cnf_DataDeriveLitPolarities(Cnf_Dat_t *p)
void Cnf_ManFreeCuts(Cnf_Man_t *p)
Cnf_Dat_t * Cnf_ManWriteCnfOther(Cnf_Man_t *p, Vec_Ptr_t *vMapped)
int Cnf_DataWriteAndClauses(void *p, Cnf_Dat_t *pCnf)
int Cnf_ManMapForCnf(Cnf_Man_t *p)
typedefABC_NAMESPACE_HEADER_START struct Cnf_Man_t_ Cnf_Man_t
INCLUDES ///.
void Cnf_SopConvertToVector(char *pSop, int nCubes, Vec_Int_t *vCover)
Cnf_Dat_t * Cnf_DeriveOther(Aig_Man_t *pAig, int fSkipTtMin)
Cnf_Dat_t * Cnf_ManWriteCnf(Cnf_Man_t *p, Vec_Ptr_t *vMapped, int nOutputs)
Cnf_Man_t * Cnf_ManStart()
FUNCTION DEFINITIONS ///.
void * Cnf_DataWriteIntoSolverInt(void *pSat, Cnf_Dat_t *p, int nFrames, int fInit)
void Cnf_ComputeClauses(Aig_Man_t *p, Aig_Obj_t *pRoot, Vec_Ptr_t *vLeaves, Vec_Ptr_t *vNodes, Vec_Int_t *vMap, Vec_Int_t *vCover, Vec_Int_t *vClauses)
Cnf_Dat_t * Cnf_DeriveSimpleForRetiming(Aig_Man_t *p)
void Cnf_CutUpdateRefs(Cnf_Man_t *p, Cnf_Cut_t *pCut, Cnf_Cut_t *pCutFan, Cnf_Cut_t *pCutRes)
Cnf_Cut_t * Cnf_CutCompose(Cnf_Man_t *p, Cnf_Cut_t *pCut, Cnf_Cut_t *pCutFan, int iFan)
void Cnf_DataCollectFlipLits(Cnf_Dat_t *p, int iFlipVar, Vec_Int_t *vFlips)
void Cnf_ManPostprocess(Cnf_Man_t *p)
void Cnf_CollectLeaves(Aig_Obj_t *pRoot, Vec_Ptr_t *vSuper, int fStopCompl)
Cnf_Dat_t * Cnf_DataDupCof(Cnf_Dat_t *p, int Lit)
void Cnf_DeriveMapping(Cnf_Man_t *p)
Cnf_Cut_t * Cnf_CutCreate(Cnf_Man_t *p, Aig_Obj_t *pObj)
int Cnf_DataWriteOrClause(void *pSat, Cnf_Dat_t *pCnf)
Cnf_Dat_t * Cnf_DeriveWithMan(Cnf_Man_t *p, Aig_Man_t *pAig, int nOutputs)
Vec_Ptr_t * Cnf_ManScanMapping(Cnf_Man_t *p, int fCollect, int fPreorder)
struct Cnf_Dat_t_ Cnf_Dat_t
void Cnf_DataLiftAndFlipLits(Cnf_Dat_t *p, int nVarsPlus, Vec_Int_t *vLits)
void Cnf_CutPrint(Cnf_Cut_t *pCut)
Cnf_Man_t * Cnf_ManRead()
void Cnf_CutFree(Cnf_Cut_t *pCut)
void Cnf_DataFree(Cnf_Dat_t *p)
struct Cnf_Cut_t_ Cnf_Cut_t
void Cnf_ManStop(Cnf_Man_t *p)
Vec_Int_t * Cnf_ManWriteCnfMapping(Cnf_Man_t *p, Vec_Ptr_t *vMapped)
DECLARATIONS ///.
Cnf_Dat_t * Cnf_DeriveOtherWithMan(Cnf_Man_t *p, Aig_Man_t *pAig, int fSkipTtMin)
void Cnf_DataWriteIntoFile(Cnf_Dat_t *p, char *pFileName, int fReadable, Vec_Int_t *vForAlls, Vec_Int_t *vExists)
Vec_Int_t * Cnf_DataCollectCiSatNums(Cnf_Dat_t *pCnf, Aig_Man_t *p)
Vec_Ptr_t * Aig_ManScanMapping(Cnf_Man_t *p, int fCollect)
void Cnf_DataLift(Cnf_Dat_t *p, int nVarsPlus)
void Cnf_DeriveFastMark(Aig_Man_t *p)
struct Dar_Cut_t_ Dar_Cut_t
#define Dar_ObjForEachCut(pObj, pCut, i)
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.