DECLARATIONS ///.
Date [Ver. 1.0. Started - June 29, 2008.]
] FUNCTION DEFINITIONS /// Function*************************************************************
46{
47 int nBTLimit =
p->pPars->nBTLimit;
48 int pLits[2], RetValue, RetValue1, status;
51
52
53 assert( !Aig_IsComplement(pNew) );
54 assert( !Aig_IsComplement(pOld) );
56
58
59
60 if (
p->pSat == NULL ||
61 (
p->pPars->nSatVarMax &&
62 p->nSatVars >
p->pPars->nSatVarMax &&
63 p->nCallsSince >
p->pPars->nCallsRecycle) )
65
66
69
70
71 if (
p->pSat->qtail !=
p->pSat->qhead )
72 {
75 assert(
p->pSat->qtail ==
p->pSat->qhead );
76 }
77
78
79
80 pLits[0] = toLitCond( Dch_ObjSatNum(
p,pOld), 0 );
81 pLits[1] = toLitCond( Dch_ObjSatNum(
p,pNew), pOld->
fPhase == pNew->
fPhase );
82 if (
p->pPars->fPolarFlip )
83 {
84 if ( pOld->
fPhase ) pLits[0] = lit_neg( pLits[0] );
85 if ( pNew->
fPhase ) pLits[1] = lit_neg( pLits[1] );
86 }
87
88clk = Abc_Clock();
90 (ABC_INT64_T)nBTLimit, (ABC_INT64_T)0, (ABC_INT64_T)0, (ABC_INT64_T)0 );
91p->timeSat += Abc_Clock() - clk;
93 {
94p->timeSatUnsat += Abc_Clock() - clk;
95 pLits[0] = lit_neg( pLits[0] );
96 pLits[1] = lit_neg( pLits[1] );
100 }
101 else if ( RetValue1 ==
l_True )
102 {
103p->timeSatSat += Abc_Clock() - clk;
105 return 0;
106 }
107 else
108 {
109p->timeSatUndec += Abc_Clock() - clk;
111 return -1;
112 }
113
114
115 if ( pOld == Aig_ManConst1(
p->pAigFraig) )
116 {
118 return 1;
119 }
120
121
122
123 pLits[0] = toLitCond( Dch_ObjSatNum(
p,pOld), 1 );
124 pLits[1] = toLitCond( Dch_ObjSatNum(
p,pNew), pOld->
fPhase ^ pNew->
fPhase );
125 if (
p->pPars->fPolarFlip )
126 {
127 if ( pOld->
fPhase ) pLits[0] = lit_neg( pLits[0] );
128 if ( pNew->
fPhase ) pLits[1] = lit_neg( pLits[1] );
129 }
130clk = Abc_Clock();
132 (ABC_INT64_T)nBTLimit, (ABC_INT64_T)0, (ABC_INT64_T)0, (ABC_INT64_T)0 );
133p->timeSat += Abc_Clock() - clk;
135 {
136p->timeSatUnsat += Abc_Clock() - clk;
137 pLits[0] = lit_neg( pLits[0] );
138 pLits[1] = lit_neg( pLits[1] );
142 }
143 else if ( RetValue1 ==
l_True )
144 {
145p->timeSatSat += Abc_Clock() - clk;
147 return 0;
148 }
149 else
150 {
151p->timeSatUndec += Abc_Clock() - clk;
153 return -1;
154 }
155
157 return 1;
158}
#define sat_solver_addclause
void Dch_CnfNodeAddToSolver(Dch_Man_t *p, Aig_Obj_t *pObj)
void Dch_ManSatSolverRecycle(Dch_Man_t *p)
int sat_solver_simplify(sat_solver *s)