summaryrefslogtreecommitdiffstats
path: root/src/misc/vec/vecHsh.h
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2013-07-13 23:40:51 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2013-07-13 23:40:51 -0700
commitb3e0f5b2e94e5e0da72e1ec7a41f90a3f4d302d7 (patch)
treec4f8f72566b20bb3a20a296a5af2e94b4df58132 /src/misc/vec/vecHsh.h
parent118e40b809712c88fe7ddc530a8b072c1d2649d3 (diff)
downloadabc-b3e0f5b2e94e5e0da72e1ec7a41f90a3f4d302d7.tar.gz
abc-b3e0f5b2e94e5e0da72e1ec7a41f90a3f4d302d7.tar.bz2
abc-b3e0f5b2e94e5e0da72e1ec7a41f90a3f4d302d7.zip
New technology mapper.
Diffstat (limited to 'src/misc/vec/vecHsh.h')
-rw-r--r--src/misc/vec/vecHsh.h15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/misc/vec/vecHsh.h b/src/misc/vec/vecHsh.h
index a613c68b..34a6c993 100644
--- a/src/misc/vec/vecHsh.h
+++ b/src/misc/vec/vecHsh.h
@@ -210,9 +210,18 @@ static inline Vec_Int_t * Hsh_WrdManHashArray( Vec_Wrd_t * vDataW, int nSize )
static inline Hsh_IntMan_t * Hsh_WrdManHashArrayStart( Vec_Wrd_t * vDataW, int nSize )
{
Hsh_IntMan_t * p;
- Vec_Int_t Data = { 2*Vec_WrdCap(vDataW), 2*Vec_WrdSize(vDataW), (int *)Vec_WrdArray(vDataW) };
- Vec_Int_t * vData = &Data;
- int i, nEntries = Vec_IntSize(vData) / (2*nSize);
+ int i, nEntries = Vec_WrdSize(vDataW) / nSize;
+ Vec_Int_t * vData = Vec_IntAlloc( 2*Vec_WrdSize(vDataW) );
+ memcpy( Vec_IntArray(vData), Vec_WrdArray(vDataW), sizeof(word)*Vec_WrdSize(vDataW) );
+ vData->nSize = 2*Vec_WrdSize(vDataW);
+/*
+ for ( i = 0; i < 30; i++ )
+ {
+ extern void Extra_PrintHex( FILE * pFile, unsigned * pTruth, int nVars );
+ Extra_PrintHex( stdout, (unsigned *) Vec_WrdEntryP(vDataW, i), 6 ); printf( " " );
+ Kit_DsdPrintFromTruth( (unsigned *) Vec_WrdEntryP(vDataW, i), 6 ); printf( "\n" );
+ }
+*/
assert( Vec_IntSize(vData) % (2*nSize) == 0 );
p = Hsh_IntManStart( vData, (2*nSize), nEntries );
for ( i = 0; i < nEntries; i++ )