summaryrefslogtreecommitdiffstats
path: root/src/aig
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2019-04-14 20:45:24 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2019-04-14 20:45:24 -0700
commit812821554c0809b2a61d2c2882dbbbd8e8b1a784 (patch)
tree7ec584a4874ebd71e1dba7a10a972a7b80e7eaa2 /src/aig
parentbfefe96cad688693d68f9537f0a28fe65b7fcbb9 (diff)
downloadabc-812821554c0809b2a61d2c2882dbbbd8e8b1a784.tar.gz
abc-812821554c0809b2a61d2c2882dbbbd8e8b1a784.tar.bz2
abc-812821554c0809b2a61d2c2882dbbbd8e8b1a784.zip
Adding miter construction with one bit-level output for each pair of word-level outputs.
Diffstat (limited to 'src/aig')
-rw-r--r--src/aig/gia/gia.h1
-rw-r--r--src/aig/gia/giaHash.c7
2 files changed, 8 insertions, 0 deletions
diff --git a/src/aig/gia/gia.h b/src/aig/gia/gia.h
index 2fce93b8..1160819e 100644
--- a/src/aig/gia/gia.h
+++ b/src/aig/gia/gia.h
@@ -1426,6 +1426,7 @@ extern int Gia_ManHashLookupInt( Gia_Man_t * p, int iLit0, int i
extern int Gia_ManHashLookup( Gia_Man_t * p, Gia_Obj_t * p0, Gia_Obj_t * p1 );
extern int Gia_ManHashAndMulti( Gia_Man_t * p, Vec_Int_t * vLits );
extern int Gia_ManHashAndMulti2( Gia_Man_t * p, Vec_Int_t * vLits );
+extern int Gia_ManHashDualMiter( Gia_Man_t * p, Vec_Int_t * vOuts );
/*=== giaIf.c ===========================================================*/
extern void Gia_ManPrintMappingStats( Gia_Man_t * p, char * pDumpFile );
extern void Gia_ManPrintPackingStats( Gia_Man_t * p );
diff --git a/src/aig/gia/giaHash.c b/src/aig/gia/giaHash.c
index d9873d76..7da223ca 100644
--- a/src/aig/gia/giaHash.c
+++ b/src/aig/gia/giaHash.c
@@ -806,6 +806,13 @@ int Gia_ManHashAndMulti2( Gia_Man_t * p, Vec_Int_t * vLits )
iRes = Gia_ManHashAnd( p, iRes, iLit );
return iRes;
}
+int Gia_ManHashDualMiter( Gia_Man_t * p, Vec_Int_t * vOuts )
+{
+ int i, iLit0, iLit1, iRes = 1;
+ Vec_IntForEachEntryDouble( vOuts, iLit0, iLit1, i )
+ iRes = Gia_ManHashOr( p, iRes, Gia_ManHashXor(p, iLit0, iLit1) );
+ return iRes;
+}
////////////////////////////////////////////////////////////////////////
/// END OF FILE ///