From b3e0f5b2e94e5e0da72e1ec7a41f90a3f4d302d7 Mon Sep 17 00:00:00 2001 From: Alan Mishchenko Date: Sat, 13 Jul 2013 23:40:51 -0700 Subject: New technology mapper. --- src/misc/vec/vecHsh.h | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'src/misc/vec/vecHsh.h') 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++ ) -- cgit v1.2.3