#include "mvc.h"
Go to the source code of this file.
Functions | |
static void | Mvc_CoverDivisorZeroKernel (Mvc_Cover_t *pCover) |
Mvc_Cover_t * | Mvc_CoverDivisor (Mvc_Cover_t *pCover) |
Mvc_Cover_t* Mvc_CoverDivisor | ( | Mvc_Cover_t * | pCover | ) |
FUNCTION DEFINITIONS ///Function*************************************************************
Synopsis [Returns the quick divisor of the cover.]
Description [Returns NULL, if there is not divisor other than trivial.]
SideEffects []
SeeAlso []
Definition at line 43 of file mvcDivisor.c.
00044 { 00045 Mvc_Cover_t * pKernel; 00046 if ( Mvc_CoverReadCubeNum(pCover) <= 1 ) 00047 return NULL; 00048 // allocate the literal array and count literals 00049 if ( Mvc_CoverAnyLiteral( pCover, NULL ) == -1 ) 00050 return NULL; 00051 // duplicate the cover 00052 pKernel = Mvc_CoverDup(pCover); 00053 // perform the kerneling 00054 Mvc_CoverDivisorZeroKernel( pKernel ); 00055 assert( Mvc_CoverReadCubeNum(pKernel) ); 00056 return pKernel; 00057 }
void Mvc_CoverDivisorZeroKernel | ( | Mvc_Cover_t * | pCover | ) | [static] |
CFile****************************************************************
FileName [mvcDivisor.c]
PackageName [MVSIS 2.0: Multi-valued logic synthesis system.]
Synopsis [Procedures for compute the quick divisor.]
Author [MVSIS Group]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - February 1, 2003.]
Revision [
] DECLARATIONS ///
Function*************************************************************
Synopsis [Computes a level-zero kernel.]
Description [Modifies the cover to contain one level-zero kernel.]
SideEffects []
SeeAlso []
Definition at line 70 of file mvcDivisor.c.
00071 { 00072 int iLit; 00073 // find any literal that occurs at least two times 00074 // iLit = Mvc_CoverAnyLiteral( pCover, NULL ); 00075 iLit = Mvc_CoverWorstLiteral( pCover, NULL ); 00076 // iLit = Mvc_CoverBestLiteral( pCover, NULL ); 00077 if ( iLit == -1 ) 00078 return; 00079 // derive the cube-free quotient 00080 Mvc_CoverDivideByLiteralQuo( pCover, iLit ); // the same cover 00081 Mvc_CoverMakeCubeFree( pCover ); // the same cover 00082 // call recursively 00083 Mvc_CoverDivisorZeroKernel( pCover ); // the same cover 00084 }