Go to the source code of this file.
|
| Msat_IntVec_t * | Msat_IntVecAlloc (int nCap) |
| | FUNCTION DEFINITIONS ///.
|
| |
| Msat_IntVec_t * | Msat_IntVecAllocArray (int *pArray, int nSize) |
| |
| Msat_IntVec_t * | Msat_IntVecAllocArrayCopy (int *pArray, int nSize) |
| |
| Msat_IntVec_t * | Msat_IntVecDup (Msat_IntVec_t *pVec) |
| |
| Msat_IntVec_t * | Msat_IntVecDupArray (Msat_IntVec_t *pVec) |
| |
| void | Msat_IntVecFree (Msat_IntVec_t *p) |
| |
| void | Msat_IntVecFill (Msat_IntVec_t *p, int nSize, int Entry) |
| |
| int * | Msat_IntVecReleaseArray (Msat_IntVec_t *p) |
| |
| int * | Msat_IntVecReadArray (Msat_IntVec_t *p) |
| |
| int | Msat_IntVecReadSize (Msat_IntVec_t *p) |
| |
| int | Msat_IntVecReadEntry (Msat_IntVec_t *p, int i) |
| |
| void | Msat_IntVecWriteEntry (Msat_IntVec_t *p, int i, int Entry) |
| |
| int | Msat_IntVecReadEntryLast (Msat_IntVec_t *p) |
| |
| void | Msat_IntVecGrow (Msat_IntVec_t *p, int nCapMin) |
| |
| void | Msat_IntVecShrink (Msat_IntVec_t *p, int nSizeNew) |
| |
| void | Msat_IntVecClear (Msat_IntVec_t *p) |
| |
| void | Msat_IntVecPush (Msat_IntVec_t *p, int Entry) |
| |
| int | Msat_IntVecPushUnique (Msat_IntVec_t *p, int Entry) |
| |
| void | Msat_IntVecPushUniqueOrder (Msat_IntVec_t *p, int Entry, int fIncrease) |
| |
| int | Msat_IntVecPop (Msat_IntVec_t *p) |
| |
| void | Msat_IntVecSort (Msat_IntVec_t *p, int fReverse) |
| |
◆ Msat_IntVecAlloc()
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Allocates a vector with the given capacity.]
Description []
SideEffects []
SeeAlso []
Definition at line 48 of file msatVec.c.
49{
52 if ( nCap > 0 && nCap < 16 )
53 nCap = 16;
58}
#define ABC_ALLOC(type, num)
struct Msat_IntVec_t_ Msat_IntVec_t
◆ Msat_IntVecAllocArray()
| Msat_IntVec_t * Msat_IntVecAllocArray |
( |
int * | pArray, |
|
|
int | nSize ) |
Function*************************************************************
Synopsis [Creates the vector from an integer array of the given size.]
Description []
SideEffects []
SeeAlso []
Definition at line 71 of file msatVec.c.
◆ Msat_IntVecAllocArrayCopy()
| Msat_IntVec_t * Msat_IntVecAllocArrayCopy |
( |
int * | pArray, |
|
|
int | nSize ) |
Function*************************************************************
Synopsis [Creates the vector from an integer array of the given size.]
Description []
SideEffects []
SeeAlso []
Definition at line 92 of file msatVec.c.
93{
99 memcpy(
p->pArray, pArray,
sizeof(
int) * nSize );
101}
◆ Msat_IntVecClear()
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 335 of file msatVec.c.
◆ Msat_IntVecDup()
Function*************************************************************
Synopsis [Duplicates the integer array.]
Description []
SideEffects []
SeeAlso []
Definition at line 114 of file msatVec.c.
115{
119 p->nCap = pVec->
nCap;
123}
◆ Msat_IntVecDupArray()
Function*************************************************************
Synopsis [Transfers the array into another vector.]
Description []
SideEffects []
SeeAlso []
Definition at line 136 of file msatVec.c.
137{
141 p->nCap = pVec->
nCap;
147}
◆ Msat_IntVecFill()
Function*************************************************************
Synopsis [Fills the vector with given number of entries.]
Description []
SideEffects []
SeeAlso []
Definition at line 177 of file msatVec.c.
178{
179 int i;
182 for ( i = 0; i <
p->nSize; i++ )
183 p->pArray[i] = Entry;
184}
void Msat_IntVecGrow(Msat_IntVec_t *p, int nCapMin)
◆ Msat_IntVecFree()
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 160 of file msatVec.c.
◆ Msat_IntVecGrow()
Function*************************************************************
Synopsis [Resizes the vector to the given capacity.]
Description []
SideEffects []
SeeAlso []
Definition at line 299 of file msatVec.c.
300{
301 if (
p->nCap >= nCapMin )
302 return;
305}
#define ABC_REALLOC(type, obj, num)
◆ Msat_IntVecPop()
Function*************************************************************
Synopsis [Returns the last entry and removes it from the list.]
Description []
SideEffects []
SeeAlso []
Definition at line 425 of file msatVec.c.
426{
428 return p->pArray[--
p->nSize];
429}
◆ Msat_IntVecPush()
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 351 of file msatVec.c.
352{
353 if (
p->nSize ==
p->nCap )
354 {
357 else
359 }
360 p->pArray[
p->nSize++] = Entry;
361}
◆ Msat_IntVecPushUnique()
Function*************************************************************
Synopsis [Add the element while ensuring uniqueness.]
Description [Returns 1 if the element was found, and 0 if it was new. ]
SideEffects []
SeeAlso []
Definition at line 374 of file msatVec.c.
375{
376 int i;
377 for ( i = 0; i <
p->nSize; i++ )
378 if (
p->pArray[i] == Entry )
379 return 1;
381 return 0;
382}
void Msat_IntVecPush(Msat_IntVec_t *p, int Entry)
◆ Msat_IntVecPushUniqueOrder()
| void Msat_IntVecPushUniqueOrder |
( |
Msat_IntVec_t * | p, |
|
|
int | Entry, |
|
|
int | fIncrease ) |
Function*************************************************************
Synopsis [Inserts the element while sorting in the increasing order.]
Description []
SideEffects []
SeeAlso []
Definition at line 395 of file msatVec.c.
396{
397 int Entry1, Entry2;
398 int i;
400
401 for ( i =
p->nSize-1; i > 0; i-- )
402 {
403 Entry1 =
p->pArray[i ];
404 Entry2 =
p->pArray[i-1];
405 if (( fIncrease && Entry1 >= Entry2) ||
406 (!fIncrease && Entry1 <= Entry2) )
407 break;
408 p->pArray[i ] = Entry2;
409 p->pArray[i-1] = Entry1;
410 }
411}
int Msat_IntVecPushUnique(Msat_IntVec_t *p, int Entry)
◆ Msat_IntVecReadArray()
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 217 of file msatVec.c.
◆ Msat_IntVecReadEntry()
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 249 of file msatVec.c.
250{
251 assert( i >= 0 && i < p->nSize );
253}
◆ Msat_IntVecReadEntryLast()
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 283 of file msatVec.c.
284{
285 return p->pArray[
p->nSize-1];
286}
◆ Msat_IntVecReadSize()
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 233 of file msatVec.c.
◆ Msat_IntVecReleaseArray()
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 197 of file msatVec.c.
198{
199 int * pArray =
p->pArray;
203 return pArray;
204}
◆ Msat_IntVecShrink()
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 318 of file msatVec.c.
319{
320 assert(
p->nSize >= nSizeNew );
322}
◆ Msat_IntVecSort()
Function*************************************************************
Synopsis [Sorting the entries by their integer value.]
Description []
SideEffects []
SeeAlso []
Definition at line 442 of file msatVec.c.
443{
444 if ( fReverse )
445 qsort( (
void *)
p->pArray, (
size_t)
p->nSize,
sizeof(
int),
446 (int (*)(const void *, const void *)) Msat_IntVecSortCompare2 );
447 else
448 qsort( (
void *)
p->pArray, (
size_t)
p->nSize,
sizeof(
int),
449 (int (*)(const void *, const void *)) Msat_IntVecSortCompare1 );
450}
◆ Msat_IntVecWriteEntry()
| void Msat_IntVecWriteEntry |
( |
Msat_IntVec_t * | p, |
|
|
int | i, |
|
|
int | Entry ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 266 of file msatVec.c.
267{
268 assert( i >= 0 && i < p->nSize );
269 p->pArray[i] = Entry;
270}