48 assert( (
int)pCube->
nLits == Min_CubeCountLits(pCube) );
49 for ( i = 0; i < (int)pCube->
nVars; i++ )
50 if ( Min_CubeHasBit(pCube, i*2) )
52 if ( Min_CubeHasBit(pCube, i*2+1) )
54 Vec_StrPush( vCover,
'-' );
57 Vec_StrPush( vCover,
'0' );
61 if ( Min_CubeHasBit(pCube, i*2+1) )
63 Vec_StrPush( vCover,
'1' );
66 Vec_StrPush( vCover,
'?' );
69 Vec_StrPush( vCover,
' ' );
70 Vec_StrPush( vCover, Type );
71 Vec_StrPush( vCover,
'\n' );
89 Vec_StrClear( vCover );
92 Vec_StrPush( vCover, 0 );
109 assert( (
int)pCube->
nLits == Min_CubeCountLits(pCube) );
110 for ( i = 0; i < (int)pCube->
nVars; i++ )
111 if ( Min_CubeHasBit(pCube, i*2) )
113 if ( Min_CubeHasBit(pCube, i*2+1) )
114 fprintf( pFile,
"-" );
116 fprintf( pFile,
"0" );
120 if ( Min_CubeHasBit(pCube, i*2+1) )
121 fprintf( pFile,
"1" );
123 fprintf( pFile,
"?" );
125 fprintf( pFile,
" 1\n" );
163 for ( i = 0; i <=
p->nVars; i++ )
167 printf(
"%2d : ", i );
168 if ( pCube ==
p->pBubble )
170 printf(
"Bubble\n" );
196 sprintf( Buffer,
"%s.%s", pName, fEsop?
"esop" :
"pla" );
197 for ( i =
strlen(Buffer) - 1; i >= 0; i-- )
198 if ( Buffer[i] ==
'<' || Buffer[i] ==
'>' )
200 pFile = fopen( Buffer,
"w" );
201 fprintf( pFile,
"# %s cover for output %s generated by ABC on %s\n", fEsop?
"ESOP":
"SOP", pName,
Extra_TimeStamp() );
202 fprintf( pFile,
".i %d\n", pCover? pCover->
nVars : 0 );
203 fprintf( pFile,
".o %d\n", 1 );
204 fprintf( pFile,
".p %d\n", Min_CoverCountCubes(pCover) );
205 if ( fEsop ) fprintf( pFile,
".type esop\n" );
208 fprintf( pFile,
".e\n" );
227 for ( i = 0; i <=
p->nVars; i++ )
247 for ( i = 0; i < (int)pCube->
nVars; i++ )
248 if ( Min_CubeGetVar( pCube, i ) == 0 )
269 for ( i = 0; i <= nSuppSize; i++ )
275 ppTail = &pCube->
pNext;
301 p->ppStore[pCube->
nLits] = pCube;
321 if ( pCover == NULL )
324 for ( i = 0; i < (int)pCover->
nWords; i++ )
325 p->pTemp->uData[i] = ~((
unsigned)0);
328 for ( i = 0; i < (int)pCover->
nWords; i++ )
329 p->pTemp->uData[i] &= pCube->
uData[i];
332 for ( i = 0; i < (int)pCover->
nVars; i++ )
333 Counter += ( Min_CubeGetVar(
p->pTemp, i) != 3 );
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
struct Vec_Str_t_ Vec_Str_t
struct Min_Cube_t_ Min_Cube_t
#define Min_CoverForEachCube(pCover, pCube)
void Min_ManClean(Min_Man_t *p, int nSupp)
#define Min_CoverForEachCubeSafe(pCover, pCube, pCube2)
void Min_CoverWriteStore(FILE *pFile, Min_Man_t *p)
Min_Cube_t * Min_CoverCollect(Min_Man_t *p, int nSuppSize)
void Min_CoverWriteFile(Min_Cube_t *pCover, char *pName, int fEsop)
ABC_NAMESPACE_IMPL_START void Min_CubeCreate(Vec_Str_t *vCover, Min_Cube_t *pCube, char Type)
DECLARATIONS ///.
int Min_CubeCheck(Min_Cube_t *pCube)
void Min_CoverExpand(Min_Man_t *p, Min_Cube_t *pCover)
void Min_CoverCheck(Min_Man_t *p)
void Min_CoverCreate(Vec_Str_t *vCover, Min_Cube_t *pCover, char Type)
int Min_CoverSuppVarNum(Min_Man_t *p, Min_Cube_t *pCover)
void Min_CoverWrite(FILE *pFile, Min_Cube_t *pCover)
void Min_CubeWrite(FILE *pFile, Min_Cube_t *pCube)
typedefABC_NAMESPACE_IMPL_START struct Min_Man_t_ Min_Man_t
DECLARATIONS ///.