mirror of
https://github.com/YosysHQ/abc.git
synced 2026-09-03 00:19:39 +02:00
Resubstitution code.
This commit is contained in:
+11
-2
@@ -1473,9 +1473,8 @@ static inline int Vec_IntTwoRemove( Vec_Int_t * vArr1, Vec_Int_t * vArr2 )
|
||||
SeeAlso []
|
||||
|
||||
***********************************************************************/
|
||||
static inline Vec_Int_t * Vec_IntTwoMerge( Vec_Int_t * vArr1, Vec_Int_t * vArr2 )
|
||||
static inline void Vec_IntTwoMerge2Int( Vec_Int_t * vArr1, Vec_Int_t * vArr2, Vec_Int_t * vArr )
|
||||
{
|
||||
Vec_Int_t * vArr = Vec_IntAlloc( vArr1->nSize + vArr2->nSize );
|
||||
int * pBeg = vArr->pArray;
|
||||
int * pBeg1 = vArr1->pArray;
|
||||
int * pBeg2 = vArr2->pArray;
|
||||
@@ -1498,8 +1497,18 @@ static inline Vec_Int_t * Vec_IntTwoMerge( Vec_Int_t * vArr1, Vec_Int_t * vArr2
|
||||
assert( vArr->nSize <= vArr->nCap );
|
||||
assert( vArr->nSize >= vArr1->nSize );
|
||||
assert( vArr->nSize >= vArr2->nSize );
|
||||
}
|
||||
static inline Vec_Int_t * Vec_IntTwoMerge( Vec_Int_t * vArr1, Vec_Int_t * vArr2 )
|
||||
{
|
||||
Vec_Int_t * vArr = Vec_IntAlloc( vArr1->nSize + vArr2->nSize );
|
||||
Vec_IntTwoMerge2Int( vArr1, vArr2, vArr );
|
||||
return vArr;
|
||||
}
|
||||
static inline void Vec_IntTwoMerge2( Vec_Int_t * vArr1, Vec_Int_t * vArr2, Vec_Int_t * vArr )
|
||||
{
|
||||
Vec_IntGrow( vArr, Vec_IntSize(vArr1) + Vec_IntSize(vArr2) );
|
||||
Vec_IntTwoMerge2Int( vArr1, vArr2, vArr );
|
||||
}
|
||||
|
||||
/**Function*************************************************************
|
||||
|
||||
|
||||
+40
-26
@@ -399,7 +399,7 @@ static inline Vec_Wec_t * Vec_WecDup( Vec_Wec_t * p )
|
||||
|
||||
/**Function*************************************************************
|
||||
|
||||
Synopsis [Comparison procedure for two arrays.]
|
||||
Synopsis [Sorting by array size.]
|
||||
|
||||
Description []
|
||||
|
||||
@@ -424,18 +424,6 @@ static int Vec_WecSortCompare2( Vec_Int_t * p1, Vec_Int_t * p2 )
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**Function*************************************************************
|
||||
|
||||
Synopsis [Sorting the entries by their integer value.]
|
||||
|
||||
Description []
|
||||
|
||||
SideEffects []
|
||||
|
||||
SeeAlso []
|
||||
|
||||
***********************************************************************/
|
||||
static inline void Vec_WecSort( Vec_Wec_t * p, int fReverse )
|
||||
{
|
||||
if ( fReverse )
|
||||
@@ -446,9 +434,10 @@ static inline void Vec_WecSort( Vec_Wec_t * p, int fReverse )
|
||||
(int (*)(const void *, const void *)) Vec_WecSortCompare1 );
|
||||
}
|
||||
|
||||
|
||||
/**Function*************************************************************
|
||||
|
||||
Synopsis [Comparison procedure for two integers.]
|
||||
Synopsis [Sorting by the first entry.]
|
||||
|
||||
Description []
|
||||
|
||||
@@ -473,18 +462,6 @@ static int Vec_WecSortCompare4( Vec_Int_t * p1, Vec_Int_t * p2 )
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**Function*************************************************************
|
||||
|
||||
Synopsis [Sorting the entries by their integer value.]
|
||||
|
||||
Description []
|
||||
|
||||
SideEffects []
|
||||
|
||||
SeeAlso []
|
||||
|
||||
***********************************************************************/
|
||||
static inline void Vec_WecSortByFirstInt( Vec_Wec_t * p, int fReverse )
|
||||
{
|
||||
if ( fReverse )
|
||||
@@ -495,6 +472,43 @@ static inline void Vec_WecSortByFirstInt( Vec_Wec_t * p, int fReverse )
|
||||
(int (*)(const void *, const void *)) Vec_WecSortCompare3 );
|
||||
}
|
||||
|
||||
/**Function*************************************************************
|
||||
|
||||
Synopsis [Sorting by the last entry.]
|
||||
|
||||
Description []
|
||||
|
||||
SideEffects []
|
||||
|
||||
SeeAlso []
|
||||
|
||||
***********************************************************************/
|
||||
static int Vec_WecSortCompare5( Vec_Int_t * p1, Vec_Int_t * p2 )
|
||||
{
|
||||
if ( Vec_IntEntryLast(p1) < Vec_IntEntryLast(p2) )
|
||||
return -1;
|
||||
if ( Vec_IntEntryLast(p1) > Vec_IntEntryLast(p2) )
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
static int Vec_WecSortCompare6( Vec_Int_t * p1, Vec_Int_t * p2 )
|
||||
{
|
||||
if ( Vec_IntEntryLast(p1) > Vec_IntEntryLast(p2) )
|
||||
return -1;
|
||||
if ( Vec_IntEntryLast(p1) < Vec_IntEntryLast(p2) )
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
static inline void Vec_WecSortByLastInt( Vec_Wec_t * p, int fReverse )
|
||||
{
|
||||
if ( fReverse )
|
||||
qsort( (void *)p->pArray, p->nSize, sizeof(Vec_Int_t),
|
||||
(int (*)(const void *, const void *)) Vec_WecSortCompare6 );
|
||||
else
|
||||
qsort( (void *)p->pArray, p->nSize, sizeof(Vec_Int_t),
|
||||
(int (*)(const void *, const void *)) Vec_WecSortCompare5 );
|
||||
}
|
||||
|
||||
/**Function*************************************************************
|
||||
|
||||
Synopsis []
|
||||
|
||||
Reference in New Issue
Block a user