summaryrefslogtreecommitdiffstats
path: root/src/aig/gia/gia.h
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2017-11-13 14:56:40 -0800
committerAlan Mishchenko <alanmi@berkeley.edu>2017-11-13 14:56:40 -0800
commit71d9a1671447b0235b8ed2c8090835fdcf65a93a (patch)
treeece9db3a87341949c4a0d72739077c12c43bb366 /src/aig/gia/gia.h
parent6bbbbe20afa407ff991e03c4f4218a414b7a2eb8 (diff)
downloadabc-71d9a1671447b0235b8ed2c8090835fdcf65a93a.tar.gz
abc-71d9a1671447b0235b8ed2c8090835fdcf65a93a.tar.bz2
abc-71d9a1671447b0235b8ed2c8090835fdcf65a93a.zip
Improvements to quantification.
Diffstat (limited to 'src/aig/gia/gia.h')
-rw-r--r--src/aig/gia/gia.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/aig/gia/gia.h b/src/aig/gia/gia.h
index c8b64a16..4d58992c 100644
--- a/src/aig/gia/gia.h
+++ b/src/aig/gia/gia.h
@@ -216,6 +216,11 @@ struct Gia_Man_t_
// balancing
Vec_Int_t * vSuper; // supergate
Vec_Int_t * vStore; // node storage
+ // existential quantification
+ int iSuppPi; // the number of support variables
+ int nSuppWords; // the number of support words
+ Vec_Wrd_t * vSuppWords; // support information
+ Vec_Int_t vCopiesTwo; // intermediate copies
};
@@ -684,6 +689,11 @@ static inline int Gia_ManAppendAnd( Gia_Man_t * p, int iLit0, int iLit1 )
extern void Gia_ManBuiltInSimPerform( Gia_Man_t * p, int iObj );
Gia_ManBuiltInSimPerform( p, Gia_ObjId( p, pObj ) );
}
+ if ( p->vSuppWords )
+ {
+ extern void Gia_ManQuantSetSuppAnd( Gia_Man_t * p, Gia_Obj_t * pObj );
+ Gia_ManQuantSetSuppAnd( p, pObj );
+ }
return Gia_ObjId( p, pObj ) << 1;
}
static inline int Gia_ManAppendXorReal( Gia_Man_t * p, int iLit0, int iLit1 )
@@ -1247,6 +1257,7 @@ extern Gia_Man_t * Gia_ManDupMux( int iVar, Gia_Man_t * pCof1, Gia_Man_t
extern Gia_Man_t * Gia_ManDupBlock( Gia_Man_t * p, int nBlock );
extern Gia_Man_t * Gia_ManDupExist( Gia_Man_t * p, int iVar );
extern Gia_Man_t * Gia_ManDupUniv( Gia_Man_t * p, int iVar );
+extern int Gia_ManQuantExist( Gia_Man_t * p, int iLit, int(*pFuncCiToKeep)(void *, int), void * pData );
extern Gia_Man_t * Gia_ManDupDfsSkip( Gia_Man_t * p );
extern Gia_Man_t * Gia_ManDupDfsCone( Gia_Man_t * p, Gia_Obj_t * pObj );
extern Gia_Man_t * Gia_ManDupConeSupp( Gia_Man_t * p, int iLit, Vec_Int_t * vCiIds );