summaryrefslogtreecommitdiffstats
path: root/src/aig/bdc
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2011-08-25 17:21:17 +0700
committerAlan Mishchenko <alanmi@berkeley.edu>2011-08-25 17:21:17 +0700
commit2adf8dc2fd13d2eb77f48afd2fe33f7d7230527c (patch)
tree3e5292f0a7a7bfc31576bf9f1729190e236b28a2 /src/aig/bdc
parentdf6d509023646f9543f7f216b50ed01d7725744b (diff)
downloadabc-2adf8dc2fd13d2eb77f48afd2fe33f7d7230527c.tar.gz
abc-2adf8dc2fd13d2eb77f48afd2fe33f7d7230527c.tar.bz2
abc-2adf8dc2fd13d2eb77f48afd2fe33f7d7230527c.zip
Sequential cleanup with symbolic/ternary simulation.
Diffstat (limited to 'src/aig/bdc')
-rw-r--r--src/aig/bdc/bdcSpfd.c55
1 files changed, 54 insertions, 1 deletions
diff --git a/src/aig/bdc/bdcSpfd.c b/src/aig/bdc/bdcSpfd.c
index cd94e66b..d9f0c7d6 100644
--- a/src/aig/bdc/bdcSpfd.c
+++ b/src/aig/bdc/bdcSpfd.c
@@ -897,7 +897,7 @@ int Bdc_SpfdDecomposeTestOne( word t, Vec_Wrd_t * vDivs, Vec_Int_t * vWeights )
SeeAlso []
***********************************************************************/
-void Bdc_SpfdDecomposeTest()
+void Bdc_SpfdDecomposeTest44()
{
// word t = 0x5052585a0002080a;
@@ -1114,6 +1114,59 @@ Abc_Show6VarFunc( 0, (FuncBest ^ t) );
}
+/**Function*************************************************************
+
+ Synopsis []
+
+ Description []
+
+ SideEffects []
+
+ SeeAlso []
+
+***********************************************************************/
+void Bdc_SpfdDecomposeTest()
+{
+ int nSizeM = (1 << 26); // big array size
+ int nSizeK = (1 << 3); // small array size
+ Vec_Wrd_t * v1M, * v1K;
+ int EntryM, EntryK;
+ int i, k, Counter, clk;
+
+ Aig_ManRandom64( 1 );
+
+ v1M = Vec_WrdAlloc( nSizeM );
+ for ( i = 0; i < nSizeM; i++ )
+ Vec_WrdPush( v1M, Aig_ManRandom64(0) );
+
+ v1K = Vec_WrdAlloc( nSizeK );
+ for ( i = 0; i < nSizeK; i++ )
+ Vec_WrdPush( v1K, Aig_ManRandom64(0) );
+
+ clk = clock();
+ Counter = 0;
+// for ( i = 0; i < nSizeM; i++ )
+// for ( k = 0; k < nSizeK; k++ )
+// Counter += ((v1M->pArray[i] & v1K->pArray[k]) == v1K->pArray[k]);
+ Vec_WrdForEachEntry( v1M, EntryM, i )
+ Vec_WrdForEachEntry( v1K, EntryK, k )
+ Counter += ((EntryM & EntryK) == EntryK);
+ printf( "Total = %8d. ", Counter );
+ Abc_PrintTime( 1, "Time", clock() - clk );
+
+ clk = clock();
+ Counter = 0;
+// for ( k = 0; k < nSizeK; k++ )
+// for ( i = 0; i < nSizeM; i++ )
+// Counter += ((v1M->pArray[i] & v1K->pArray[k]) == v1K->pArray[k]);
+ Vec_WrdForEachEntry( v1K, EntryK, k )
+ Vec_WrdForEachEntry( v1M, EntryM, i )
+ Counter += ((EntryM & EntryK) == EntryK);
+ printf( "Total = %8d. ", Counter );
+ Abc_PrintTime( 1, "Time", clock() - clk );
+}
+
+
////////////////////////////////////////////////////////////////////////
/// END OF FILE ///
////////////////////////////////////////////////////////////////////////