ABC: A System for Sequential Synthesis and Verification
 
Loading...
Searching...
No Matches
xsatClause.h
Go to the documentation of this file.
1
21#ifndef ABC__sat__xSAT__xsatClause_h
22#define ABC__sat__xSAT__xsatClause_h
23
28
30
36{
37 unsigned fLearnt : 1;
38 unsigned fMark : 1;
39 unsigned fReallocd : 1;
40 unsigned fCanBeDel : 1;
41 unsigned nLBD : 28;
42 int nSize;
43 union {
44 int Lit;
45 unsigned Act;
46 } pData[0];
47};
48
52
63static inline int xSAT_ClauseCompare( const void * p1, const void * p2 )
64{
65 xSAT_Clause_t * pC1 = ( xSAT_Clause_t * ) p1;
66 xSAT_Clause_t * pC2 = ( xSAT_Clause_t * ) p2;
67
68 if ( pC1->nSize > 2 && pC2->nSize == 2 )
69 return 1;
70 if ( pC1->nSize == 2 && pC2->nSize > 2 )
71 return 0;
72 if ( pC1->nSize == 2 && pC2->nSize == 2 )
73 return 0;
74
75 if ( pC1->nLBD > pC2->nLBD )
76 return 1;
77 if ( pC1->nLBD < pC2->nLBD )
78 return 0;
79
80 return pC1->pData[pC1->nSize].Act < pC2->pData[pC2->nSize].Act;
81}
82
94static inline void xSAT_ClausePrint( xSAT_Clause_t * pCla )
95{
96 int i;
97
98 printf("{ ");
99 for ( i = 0; i < pCla->nSize; i++ )
100 printf("%d ", pCla->pData[i].Lit );
101 printf("}\n");
102}
103
105
106#endif
#define ABC_NAMESPACE_HEADER_END
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///.
union xSAT_Clause_t_::@175353102323001355346141137225170021056126072315 pData[0]
unsigned fCanBeDel
Definition xsatClause.h:40
unsigned nLBD
Definition xsatClause.h:41
unsigned fLearnt
Definition xsatClause.h:37
unsigned fMark
Definition xsatClause.h:38
unsigned fReallocd
Definition xsatClause.h:39
unsigned Act
Definition xsatClause.h:45
typedefABC_NAMESPACE_HEADER_START struct xSAT_Clause_t_ xSAT_Clause_t
INCLUDES ///.
Definition xsatClause.h:34