Commit a4503d1c by Alan Mishchenko

Experiments with function enumeration.

parent cb165d8c
...@@ -63,7 +63,7 @@ void Dau_TruthEnum() ...@@ -63,7 +63,7 @@ void Dau_TruthEnum()
int * pPerm = Extra_PermSchedule( nVars ); int * pPerm = Extra_PermSchedule( nVars );
int * pComp = Extra_GreyCodeSchedule( nVars ); int * pComp = Extra_GreyCodeSchedule( nVars );
word nFuncs = ((word)1 << (((word)1 << nVars)-1)); word nFuncs = ((word)1 << (((word)1 << nVars)-1));
word * pPres = ABC_CALLOC( word, 1 << ((1<<nVars)-6) ); word * pPres = ABC_CALLOC( word, 1 << ((1<<nVars)-7) );
unsigned * pTable = fUseTable ? (unsigned *)ABC_CALLOC(word, nSizeW) : NULL; unsigned * pTable = fUseTable ? (unsigned *)ABC_CALLOC(word, nSizeW) : NULL;
Vec_Int_t * vNpns = Vec_IntAlloc( 1000 ); Vec_Int_t * vNpns = Vec_IntAlloc( 1000 );
word tMask = Abc_Tt6Mask( 1 << nVars ); word tMask = Abc_Tt6Mask( 1 << nVars );
...@@ -77,14 +77,18 @@ void Dau_TruthEnum() ...@@ -77,14 +77,18 @@ void Dau_TruthEnum()
if ( pTable == NULL ) if ( pTable == NULL )
printf( "Cannot alloc memory for table.\n" ); printf( "Cannot alloc memory for table.\n" );
for ( tCur = 0; tCur < nFuncs; tCur++ ) // for ( tCur = 0; tCur < nFuncs; tCur++ )
if ( (tCur & 0x07FFFFFF) == 0 ) // if ( (tCur & 0x07FFFFFF) == 0 )
printf( "%08x : %08x\n", (int)tCur, pTable[(int)tCur] ); // printf( "%08x : %08x\n", (int)tCur, pTable[(int)tCur] );
for ( tCur = 0; tCur < nFuncs; tCur++ ) for ( tCur = 0; tCur < nFuncs; tCur++ )
{ {
if ( (tCur & 0xFF) == 0 ) if ( (tCur & 0xFFFF) == 0 )
printf( "Finished %08x\n", (int)tCur ), fflush(stdout); {
printf( "Finished %08x. ", (int)tCur );
Abc_PrintTime( 1, "Time", Abc_Clock() - clk );
fflush(stdout);
}
if ( Abc_TtGetBit(pPres, (int)tCur) ) if ( Abc_TtGetBit(pPres, (int)tCur) )
continue; continue;
//Extra_PrintBinary( stdout, (unsigned *)&tCur, 16 ); printf( " %04x\n", (int)tCur ); //Extra_PrintBinary( stdout, (unsigned *)&tCur, 16 ); printf( " %04x\n", (int)tCur );
...@@ -167,7 +171,7 @@ void Dau_AddFunction( word tCur, int nVars, unsigned * pTable, Vec_Int_t * vNpns ...@@ -167,7 +171,7 @@ void Dau_AddFunction( word tCur, int nVars, unsigned * pTable, Vec_Int_t * vNpns
void Dau_NetworkEnum() void Dau_NetworkEnum()
{ {
abctime clk = Abc_Clock(); abctime clk = Abc_Clock();
int Limit = 1; int Limit = 2;
#ifdef USE4VARS #ifdef USE4VARS
int nVars = 4; int nVars = 4;
int nSizeW = 1 << 14; int nSizeW = 1 << 14;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment