/**CFile**************************************************************** FileName [rpo.h] SystemName [ABC: Logic synthesis and verification system.] PackageName [RPO] Synopsis [Rpo Header] Author [Mayler G. A. Martins / Vinicius Callegaro] Affiliation [UFRGS] Date [Ver. 1.0. Started - May 08, 2013.] Revision [$Id: rpo.h,v 1.00 2013/05/08 00:00:00 mgamartins Exp $] ***********************************************************************/ #ifndef ABC__bool__rpo__rpo_h #define ABC__bool__rpo__rpo_h //////////////////////////////////////////////////////////////////////// /// INCLUDES /// //////////////////////////////////////////////////////////////////////// #include "literal.h" ABC_NAMESPACE_HEADER_START //////////////////////////////////////////////////////////////////////// /// DECLARATIONS /// //////////////////////////////////////////////////////////////////////// typedef struct Rpo_LCI_Edge_t_ Rpo_LCI_Edge_t; struct Rpo_LCI_Edge_t_ { unsigned long visited : 1; unsigned long connectionType : 2; unsigned long reserved : 1; unsigned long idx1 : 30; unsigned long idx2 : 30; }; void Rpo_PrintEdge(Rpo_LCI_Edge_t* edge); int Rpo_CheckANDGroup(Literal_t* lit1, Literal_t* lit2, int nVars); int Rpo_CheckORGroup(Literal_t* lit1, Literal_t* lit2, int nVars); Literal_t* Rpo_Factorize(unsigned* target, int nVars, int nThreshold, int verbose); Literal_t* Rpo_Recursion(unsigned* target, Literal_t** vecLit, int nLit, int nLitCount, int nVars, int* thresholdCount, int thresholdMax, int verbose); Rpo_LCI_Edge_t* Rpo_CreateEdge(Operator_t op, int i, int j, int* vertexDegree); int Rpo_computeMinEdgeCost(Rpo_LCI_Edge_t** edges, int edgeCount, int* vertexDegree); ABC_NAMESPACE_HEADER_END #endif //////////////////////////////////////////////////////////////////////// /// END OF FILE /// ////////////////////////////////////////////////////////////////////////