summaryrefslogtreecommitdiffstats
path: root/src/misc/mvc/mvcCompare.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/misc/mvc/mvcCompare.c')
-rw-r--r--src/misc/mvc/mvcCompare.c369
1 files changed, 0 insertions, 369 deletions
diff --git a/src/misc/mvc/mvcCompare.c b/src/misc/mvc/mvcCompare.c
deleted file mode 100644
index 9cff99cd..00000000
--- a/src/misc/mvc/mvcCompare.c
+++ /dev/null
@@ -1,369 +0,0 @@
-/**CFile****************************************************************
-
- FileName [mvcCompare.c]
-
- PackageName [MVSIS 2.0: Multi-valued logic synthesis system.]
-
- Synopsis [Various cube comparison functions.]
-
- Author [MVSIS Group]
-
- Affiliation [UC Berkeley]
-
- Date [Ver. 1.0. Started - February 1, 2003.]
-
- Revision [$Id: mvcCompare.c,v 1.5 2003/04/03 23:25:41 alanmi Exp $]
-
-***********************************************************************/
-
-#include "mvc.h"
-
-////////////////////////////////////////////////////////////////////////
-/// DECLARATIONS ///
-////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////
-/// FUNCTION DEFINITIONS ///
-////////////////////////////////////////////////////////////////////////
-
-/**Function*************************************************************
-
- Synopsis [Compares two cubes according to their integer value.]
-
- Description []
-
- SideEffects []
-
- SeeAlso []
-
-***********************************************************************/
-int Mvc_CubeCompareInt( Mvc_Cube_t * pC1, Mvc_Cube_t * pC2, Mvc_Cube_t * pMask )
-{
- if ( Mvc_Cube1Words(pC1) )
- {
- if ( pC1->pData[0] < pC2->pData[0] )
- return -1;
- if ( pC1->pData[0] > pC2->pData[0] )
- return 1;
- return 0;
- }
- else if ( Mvc_Cube2Words(pC1) )
- {
- if ( pC1->pData[1] < pC2->pData[1] )
- return -1;
- if ( pC1->pData[1] > pC2->pData[1] )
- return 1;
- if ( pC1->pData[0] < pC2->pData[0] )
- return -1;
- if ( pC1->pData[0] > pC2->pData[0] )
- return 1;
- return 0;
- }
- else
- {
- int i = Mvc_CubeReadLast(pC1);
- for(; i >= 0; i--)
- {
- if ( pC1->pData[i] < pC2->pData[i] )
- return -1;
- if ( pC1->pData[i] > pC2->pData[i] )
- return 1;
- }
- return 0;
- }
-}
-
-
-/**Function*************************************************************
-
- Synopsis [Compares the cubes (1) by size, (2) by integer value.]
-
- Description []
-
- SideEffects []
-
- SeeAlso []
-
-***********************************************************************/
-int Mvc_CubeCompareSizeAndInt( Mvc_Cube_t * pC1, Mvc_Cube_t * pC2, Mvc_Cube_t * pMask )
-{
- // compare the cubes by size
- if ( Mvc_CubeReadSize( pC1 ) < Mvc_CubeReadSize( pC2 ) )
- return 1;
- if ( Mvc_CubeReadSize( pC1 ) > Mvc_CubeReadSize( pC2 ) )
- return -1;
- // the cubes have the same size
-
- // compare the cubes as integers
- if ( Mvc_Cube1Words( pC1 ) )
- {
- if ( pC1->pData[0] < pC2->pData[0] )
- return -1;
- if ( pC1->pData[0] > pC2->pData[0] )
- return 1;
- return 0;
- }
- else if ( Mvc_Cube2Words( pC1 ) )
- {
- if ( pC1->pData[1] < pC2->pData[1] )
- return -1;
- if ( pC1->pData[1] > pC2->pData[1] )
- return 1;
- if ( pC1->pData[0] < pC2->pData[0] )
- return -1;
- if ( pC1->pData[0] > pC2->pData[0] )
- return 1;
- return 0;
- }
- else
- {
- int i = Mvc_CubeReadLast( pC1 );
- for(; i >= 0; i--)
- {
- if ( pC1->pData[i] < pC2->pData[i] )
- return -1;
- if ( pC1->pData[i] > pC2->pData[i] )
- return 1;
- }
- return 0;
- }
-}
-
-/**Function*************************************************************
-
- Synopsis [Compares two cubes under the mask.]
-
- Description []
-
- SideEffects []
-
- SeeAlso []
-
-***********************************************************************/
-int Mvc_CubeCompareIntUnderMask( Mvc_Cube_t * pC1, Mvc_Cube_t * pC2, Mvc_Cube_t * pMask )
-{
- unsigned uBits1, uBits2;
-
- // compare the cubes under the mask
- if ( Mvc_Cube1Words(pC1) )
- {
- uBits1 = pC1->pData[0] & pMask->pData[0];
- uBits2 = pC2->pData[0] & pMask->pData[0];
- if ( uBits1 < uBits2 )
- return -1;
- if ( uBits1 > uBits2 )
- return 1;
- // cubes are equal
- return 0;
- }
- else if ( Mvc_Cube2Words(pC1) )
- {
- uBits1 = pC1->pData[1] & pMask->pData[1];
- uBits2 = pC2->pData[1] & pMask->pData[1];
- if ( uBits1 < uBits2 )
- return -1;
- if ( uBits1 > uBits2 )
- return 1;
- uBits1 = pC1->pData[0] & pMask->pData[0];
- uBits2 = pC2->pData[0] & pMask->pData[0];
- if ( uBits1 < uBits2 )
- return -1;
- if ( uBits1 > uBits2 )
- return 1;
- return 0;
- }
- else
- {
- int i = Mvc_CubeReadLast(pC1);
- for(; i >= 0; i--)
- {
- uBits1 = pC1->pData[i] & pMask->pData[i];
- uBits2 = pC2->pData[i] & pMask->pData[i];
- if ( uBits1 < uBits2 )
- return -1;
- if ( uBits1 > uBits2 )
- return 1;
- }
- return 0;
- }
-}
-
-/**Function*************************************************************
-
- Synopsis [Compares two cubes under the mask.]
-
- Description []
-
- SideEffects []
-
- SeeAlso []
-
-***********************************************************************/
-int Mvc_CubeCompareIntOutsideMask( Mvc_Cube_t * pC1, Mvc_Cube_t * pC2, Mvc_Cube_t * pMask )
-{
- unsigned uBits1, uBits2;
-
- // compare the cubes under the mask
- if ( Mvc_Cube1Words(pC1) )
- {
- uBits1 = pC1->pData[0] | pMask->pData[0];
- uBits2 = pC2->pData[0] | pMask->pData[0];
- if ( uBits1 < uBits2 )
- return -1;
- if ( uBits1 > uBits2 )
- return 1;
- // cubes are equal
- return 0;
- }
- else if ( Mvc_Cube2Words(pC1) )
- {
- uBits1 = pC1->pData[1] | pMask->pData[1];
- uBits2 = pC2->pData[1] | pMask->pData[1];
- if ( uBits1 < uBits2 )
- return -1;
- if ( uBits1 > uBits2 )
- return 1;
- uBits1 = pC1->pData[0] | pMask->pData[0];
- uBits2 = pC2->pData[0] | pMask->pData[0];
- if ( uBits1 < uBits2 )
- return -1;
- if ( uBits1 > uBits2 )
- return 1;
- return 0;
- }
- else
- {
- int i = Mvc_CubeReadLast(pC1);
- for(; i >= 0; i--)
- {
- uBits1 = pC1->pData[i] | pMask->pData[i];
- uBits2 = pC2->pData[i] | pMask->pData[i];
- if ( uBits1 < uBits2 )
- return -1;
- if ( uBits1 > uBits2 )
- return 1;
- }
- return 0;
- }
-}
-
-
-/**Function*************************************************************
-
- Synopsis [Compares the cubes (1) outside the mask, (2) under the mask.]
-
- Description []
-
- SideEffects []
-
- SeeAlso []
-
-***********************************************************************/
-int Mvc_CubeCompareIntOutsideAndUnderMask( Mvc_Cube_t * pC1, Mvc_Cube_t * pC2, Mvc_Cube_t * pMask )
-{
- unsigned uBits1, uBits2;
-
- if ( Mvc_Cube1Words(pC1) )
- {
- // compare the cubes outside the mask
- uBits1 = pC1->pData[0] & ~(pMask->pData[0]);
- uBits2 = pC2->pData[0] & ~(pMask->pData[0]);
- if ( uBits1 < uBits2 )
- return -1;
- if ( uBits1 > uBits2 )
- return 1;
-
- // compare the cubes under the mask
- uBits1 = pC1->pData[0] & pMask->pData[0];
- uBits2 = pC2->pData[0] & pMask->pData[0];
- if ( uBits1 < uBits2 )
- return -1;
- if ( uBits1 > uBits2 )
- return 1;
- // cubes are equal
- // should never happen
- assert( 0 );
- return 0;
- }
- else if ( Mvc_Cube2Words(pC1) )
- {
- // compare the cubes outside the mask
- uBits1 = pC1->pData[1] & ~(pMask->pData[1]);
- uBits2 = pC2->pData[1] & ~(pMask->pData[1]);
- if ( uBits1 < uBits2 )
- return -1;
- if ( uBits1 > uBits2 )
- return 1;
-
- uBits1 = pC1->pData[0] & ~(pMask->pData[0]);
- uBits2 = pC2->pData[0] & ~(pMask->pData[0]);
- if ( uBits1 < uBits2 )
- return -1;
- if ( uBits1 > uBits2 )
- return 1;
-
- // compare the cubes under the mask
- uBits1 = pC1->pData[1] & pMask->pData[1];
- uBits2 = pC2->pData[1] & pMask->pData[1];
- if ( uBits1 < uBits2 )
- return -1;
- if ( uBits1 > uBits2 )
- return 1;
-
- uBits1 = pC1->pData[0] & pMask->pData[0];
- uBits2 = pC2->pData[0] & pMask->pData[0];
- if ( uBits1 < uBits2 )
- return -1;
- if ( uBits1 > uBits2 )
- return 1;
-
- // cubes are equal
- // should never happen
- assert( 0 );
- return 0;
- }
- else
- {
- int i;
-
- // compare the cubes outside the mask
- for( i = Mvc_CubeReadLast(pC1); i >= 0; i-- )
- {
- uBits1 = pC1->pData[i] & ~(pMask->pData[i]);
- uBits2 = pC2->pData[i] & ~(pMask->pData[i]);
- if ( uBits1 < uBits2 )
- return -1;
- if ( uBits1 > uBits2 )
- return 1;
- }
- // compare the cubes under the mask
- for( i = Mvc_CubeReadLast(pC1); i >= 0; i-- )
- {
- uBits1 = pC1->pData[i] & pMask->pData[i];
- uBits2 = pC2->pData[i] & pMask->pData[i];
- if ( uBits1 < uBits2 )
- return -1;
- if ( uBits1 > uBits2 )
- return 1;
- }
-/*
- {
- Mvc_Cover_t * pCover;
- pCover = Mvc_CoverAlloc( NULL, 96 );
- Mvc_CubePrint( pCover, pC1 );
- Mvc_CubePrint( pCover, pC2 );
- Mvc_CubePrint( pCover, pMask );
- }
-*/
- // cubes are equal
- // should never happen
- assert( 0 );
- return 0;
- }
-}
-
-////////////////////////////////////////////////////////////////////////
-/// END OF FILE ///
-////////////////////////////////////////////////////////////////////////
-
-