69 #define Msat_OrderVarIsInBoundary( p, i ) ((p)->pVars[i].pNext)
70 #define Msat_OrderVarIsAssigned( p, i ) ((p)->pSat->pAssigns[i] != MSAT_VAR_UNASSIGNED)
71 #define Msat_OrderVarIsUsedInCone( p, i ) ((p)->pSat->vVarsUsed->pArray[i])
74 #define Msat_OrderRingForEachEntry( pRing, pVar, pNext ) \
76 pNext = pVar? pVar->pNext : NULL; \
78 pVar = (pNext != pRing)? pNext : NULL, \
79 pNext = pVar? pVar->pNext : NULL )
155 pVar->pNext = pVar->pPrev = NULL;
175 int * pRound, nRound;
176 int * pVars, nVars, i, k;
188 for ( i = 0; i < nRound; i++ )
209 for ( i = 0; i < nVars; i++ )
220 for ( k = 0; k < nRound; k++ )
265 double * pdActs = p->
pSat->pdActivity;
273 if ( dfActBest < pdActs[pVar->Num] )
275 dfActBest = pdActs[pVar->Num];
289 return pVarBest->Num;
311 assert( Var < p->nVarsAlloc );
318 for ( i = 0; i < vRound->
nSize; i++ )
349 assert( Var < p->nVarsAlloc );
356 for ( i = 0; i < vRound->
nSize; i++ )
359 if ( i != vRound->
nSize )
363 for ( i = 0; i < vRound->
nSize; i++ )
369 for ( k = 0; k < vRound2->
nSize; k++ )
372 if ( k == vRound2->
nSize )
410 assert( pVar->pPrev == NULL );
411 assert( pVar->pNext == NULL );
414 if ( pRing->
pRoot == NULL )
422 pVar->pPrev = pRing->
pRoot->pPrev;
423 pVar->pNext = pRing->
pRoot;
424 pVar->pPrev->pNext = pVar;
425 pVar->pNext->pPrev = pVar;
458 if ( pRing->
pRoot == pVar )
459 pRing->
pRoot = pVar->pNext;
464 pVar->pPrev->pNext = pVar->pNext;
465 pVar->pNext->pPrev = pVar->pPrev;
void Msat_OrderClean(Msat_Order_t *p, Msat_IntVec_t *vCone)
Msat_Order_t * Msat_OrderAlloc(Msat_Solver_t *pSat)
FUNCTION DEFINITIONS ///.
#define MSAT_ORDER_UNKNOWN
Msat_Clause_t * Msat_ClauseVecReadEntry(Msat_ClauseVec_t *p, int i)
static void Msat_OrderRingAddLast(Msat_OrderRing_t *pRing, Msat_OrderVar_t *pVar)
clock_t timeSelect
DECLARATIONS ///.
void Msat_OrderSetBounds(Msat_Order_t *p, int nVarsMax)
for(p=first;p->value< newval;p=p->next)
void Msat_OrderUpdate(Msat_Order_t *p, int Var)
int Msat_OrderCheck(Msat_Order_t *p)
int Msat_IntVecReadSize(Msat_IntVec_t *p)
void Msat_OrderVarUnassigned(Msat_Order_t *p, int Var)
#define ABC_NAMESPACE_IMPL_END
typedefABC_NAMESPACE_IMPL_START struct Msat_OrderVar_t_ Msat_OrderVar_t
DECLARATIONS ///.
void Msat_OrderFree(Msat_Order_t *p)
void Msat_OrderVarAssigned(Msat_Order_t *p, int Var)
#define REALLOC(type, obj, num)
#define Msat_OrderVarIsInBoundary(p, i)
static void Msat_OrderRingRemove(Msat_OrderRing_t *pRing, Msat_OrderVar_t *pVar)
#define ABC_NAMESPACE_IMPL_START
#define Msat_OrderVarIsAssigned(p, i)
int Msat_OrderVarSelect(Msat_Order_t *p)
int * Msat_IntVecReadArray(Msat_IntVec_t *p)
#define Msat_OrderRingForEachEntry(pRing, pVar, pNext)
#define Msat_OrderVarIsUsedInCone(p, i)
typedefABC_NAMESPACE_HEADER_START struct Msat_Solver_t_ Msat_Solver_t
INCLUDES ///.