From 24dbdbae23b35b9c578921db7a671ea80b1e2c9b Mon Sep 17 00:00:00 2001 From: Alan Mishchenko Date: Sun, 25 Jan 2015 14:24:50 -0800 Subject: Experiment with prime computation. --- src/misc/extra/extraUtilPrime.c | 124 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 src/misc/extra/extraUtilPrime.c (limited to 'src') diff --git a/src/misc/extra/extraUtilPrime.c b/src/misc/extra/extraUtilPrime.c new file mode 100644 index 00000000..3b969401 --- /dev/null +++ b/src/misc/extra/extraUtilPrime.c @@ -0,0 +1,124 @@ +/**CFile**************************************************************** + + FileName [extraUtilPrime.c] + + SystemName [ABC: Logic synthesis and verification system.] + + PackageName [extra] + + Synopsis [Function enumeration.] + + Author [Alan Mishchenko] + + Affiliation [UC Berkeley] + + Date [Ver. 1.0. Started - June 20, 2005.] + + Revision [$Id: extraUtilPrime.c,v 1.0 2003/02/01 00:00:00 alanmi Exp $] + +***********************************************************************/ + +#include +#include +#include +#include +#include "misc/vec/vec.h" +#include "misc/vec/vecHsh.h" +#include "bool/kit/kit.h" + +ABC_NAMESPACE_IMPL_START + +//////////////////////////////////////////////////////////////////////// +/// DECLARATIONS /// +//////////////////////////////////////////////////////////////////////// + +//////////////////////////////////////////////////////////////////////// +/// FUNCTION DEFINITIONS /// +//////////////////////////////////////////////////////////////////////// + +/**Function************************************************************* + + Synopsis [] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +void Abc_GenCountDump( Vec_Int_t * vPrimes, int nVars, char * pFileName ) +{ + FILE * pFile; + int i, k, Prime; + pFile = fopen( pFileName, "wb" ); + fprintf( pFile, "# %d prime numbers up to 2^%d generated by ABC on %s\n", Vec_IntSize(vPrimes), nVars, Extra_TimeStamp() ); + fprintf( pFile, ".i %d\n", nVars ); + fprintf( pFile, ".o %d\n", 1 ); + fprintf( pFile, ".p %d\n", Vec_IntSize(vPrimes) ); + Vec_IntForEachEntry( vPrimes, Prime, i ) + for ( k = nVars-1; k >= 0; k-- ) + fprintf( pFile, "%d%s", (Prime >> k)&1, k ? "" : " 1\n" ); + fprintf( pFile, ".e\n\n" ); + fclose( pFile ); +} + +/**Function************************************************************* + + Synopsis [] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +void Abc_GenCountHits1( Vec_Bit_t * vMap, Vec_Int_t * vPrimes, int nVars ) +{ + abctime clk = Abc_Clock(); + int i, k, Prime, Count = 0; + Vec_IntForEachEntry( vPrimes, Prime, i ) + { + for ( k = 0; k < nVars; k++ ) + if ( !Vec_BitEntry(vMap, Prime ^ (1<