51 if ( Vec_BitEntry(vVisit,
Var) )
53 Vec_BitWriteEntry(vVisit,
Var, 1);
54 if ( Vec_IntEntry(vMapping,
Var) )
56 pCut = Vec_IntEntryP( vMapping, Vec_IntEntry(vMapping,
Var) );
57 for ( i = 1; i <= pCut[0]; i++ )
60 Vec_IntPush( vRes,
Var );
65 Vec_Bit_t * vVisit = Vec_BitStart( nVars );
66 assert( Vec_IntEntry(vMapping, Root) );
68 Vec_BitFree( vVisit );
86 Abc_Print( 1,
"Output %6d : ", iOutput );
88 Abc_Print( 1,
"Total: " );
91 Abc_Print( 1,
"UNDECIDED " );
93 Abc_Print( 1,
"SATISFIABLE " );
95 Abc_Print( 1,
"UNSATISFIABLE " );
97 Abc_PrintTime( 1,
"Time", clk );
104 char * pTemp;
int fComp,
Var, VarMax = 0;
105 for ( pTemp = pBuffer; *pTemp; pTemp++ )
107 if ( *pTemp ==
'c' || *pTemp ==
'p' )
109 while ( *pTemp !=
'\n' )
113 while ( *pTemp ==
' ' || *pTemp ==
'\t' || *pTemp ==
'\r' || *pTemp ==
'\n' )
122 if ( Vec_IntSize(vLits) > 0 )
128 Vec_IntFree( vLits );
132 Vec_IntClear( vLits );
138 VarMax = Abc_MaxInt( VarMax,
Var );
139 Vec_IntPush( vLits, Abc_Var2Lit(
Var, fComp) );
141 while ( *pTemp >=
'0' && *pTemp <=
'9' )
145 Vec_IntFree( vLits );
177 for ( i = 0; i < pCnf->
nClauses; i++ )
229 iLit = Abc_Var2Lit( i+1, 0 );
234 satoko_mark_cone( pSat, Vec_IntArray(vCone), Vec_IntSize(vCone) );
235 printf(
"Cone has %6d vars (out of %6d). ", Vec_IntSize(vCone), pCnf->
nVars );
237 satoko_unmark_cone( pSat, Vec_IntArray(vCone), Vec_IntSize(vCone) );
238 Vec_IntFree( vCone );
249 Abc_PrintTime( 1,
"Total time", Abc_Clock() - clk );
261 Abc_PrintTime( 1,
"Total time", Abc_Clock() - clk );
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
struct Cnf_Dat_t_ Cnf_Dat_t
void Cnf_DataFree(Cnf_Dat_t *p)
satoko_t * Gia_ManSatokoCreate(Gia_Man_t *p, satoko_opts_t *opts)
void Gia_ManSatokoDimacs(char *pFileName, satoko_opts_t *opts)
satoko_t * Gia_ManSatokoInit(Cnf_Dat_t *pCnf, satoko_opts_t *opts)
Vec_Int_t * Gia_ManCollectVars(int Root, Vec_Int_t *vMapping, int nVars)
void Gia_ManSatokoCall(Gia_Man_t *p, satoko_opts_t *opts, int fSplit, int fIncrem)
int Gia_ManSatokoCallOne(Gia_Man_t *p, satoko_opts_t *opts, int iOutput)
void Gia_ManSatokoReport(int iOutput, int status, abctime clk)
satoko_t * Gia_ManSatokoFromDimacs(char *pFileName, satoko_opts_t *opts)
ABC_NAMESPACE_IMPL_START void Gia_ManCollectVars_rec(int Var, Vec_Int_t *vMapping, Vec_Int_t *vRes, Vec_Bit_t *vVisit)
DECLARATIONS ///.
void Gia_ManStop(Gia_Man_t *p)
Gia_Man_t * Gia_ManDupDfsCone(Gia_Man_t *p, Gia_Obj_t *pObj)
struct Gia_Obj_t_ Gia_Obj_t
struct Gia_Man_t_ Gia_Man_t
#define Gia_ManForEachCo(p, pObj, i)
void * Mf_ManGenerateCnf(Gia_Man_t *pGia, int nLutSize, int fCnfObjIds, int fAddOrCla, int fMapping, int fVerbose)
int satoko_solve(satoko_t *)
void satoko_setnvars(satoko_t *, int)
struct satoko_opts satoko_opts_t
int satoko_add_clause(satoko_t *, int *, int)
struct solver_t_ satoko_t
void satoko_assump_push(satoko_t *s, int)
int satoko_simplify(satoko_t *)
void satoko_assump_pop(satoko_t *s)
void satoko_destroy(satoko_t *)
satoko_t * satoko_create(void)
void satoko_configure(satoko_t *, satoko_opts_t *)
satoko_stats_t * satoko_stats(satoko_t *)
typedefABC_NAMESPACE_HEADER_START struct Vec_Bit_t_ Vec_Bit_t
INCLUDES ///.