/**Function************************************************************* Synopsis [Refine one class by resimulating one pattern.] Description [] SideEffects [] SeeAlso [] ***********************************************************************/ int Ssc_GiaSimulatePatternFraig_rec( Ssc_Man_t * p, int iFraigObj ) { Gia_Obj_t * pObj; int Res0, Res1; if ( Ssc_ObjSatVar(p, iFraigObj) ) return sat_solver_var_value( p->pSat, Ssc_ObjSatVar(p, iFraigObj) ); pObj = Gia_ManObj( p->pFraig, iFraigObj ); assert( Gia_ObjIsAnd(pObj) ); Res0 = Ssc_GiaSimulatePatternFraig_rec( p, Gia_ObjFaninId0(pObj, iFraigObj) ); Res1 = Ssc_GiaSimulatePatternFraig_rec( p, Gia_ObjFaninId1(pObj, iFraigObj) ); pObj->fMark0 = (Res0 ^ Gia_ObjFaninC0(pObj)) & (Res1 ^ Gia_ObjFaninC1(pObj)); return pObj->fMark0; }
ABC_NAMESPACE_IMPL_START //////////////////////////////////////////////////////////////////////// /// DECLARATIONS /// //////////////////////////////////////////////////////////////////////// static inline int Ssc_ObjSatLit( Ssc_Man_t * p, int Lit ) { return Abc_Var2Lit( Ssc_ObjSatVar(p, Abc_Lit2Var(Lit)), Abc_LitIsCompl(Lit) ); }