summaryrefslogtreecommitdiffstats
path: root/src/misc
diff options
context:
space:
mode:
Diffstat (limited to 'src/misc')
-rw-r--r--src/misc/extra/extraUtilTruth.c2
-rw-r--r--src/misc/nm/nmApi.c4
-rw-r--r--src/misc/nm/nmTable.c2
-rw-r--r--src/misc/vec/vecPtr.h8
4 files changed, 12 insertions, 4 deletions
diff --git a/src/misc/extra/extraUtilTruth.c b/src/misc/extra/extraUtilTruth.c
index 83153863..6b10813c 100644
--- a/src/misc/extra/extraUtilTruth.c
+++ b/src/misc/extra/extraUtilTruth.c
@@ -662,7 +662,7 @@ void Extra_TruthMux( unsigned * pOut, unsigned * pCof0, unsigned * pCof1, int nV
for ( i = 0; i < Step; i++ )
{
pOut[i] = pCof0[i];
- pOut[Step+i] = pCof1[i];
+ pOut[Step+i] = pCof1[Step+i];
}
pOut += 2*Step;
}
diff --git a/src/misc/nm/nmApi.c b/src/misc/nm/nmApi.c
index 3a9ac074..e44d1ef9 100644
--- a/src/misc/nm/nmApi.c
+++ b/src/misc/nm/nmApi.c
@@ -46,8 +46,8 @@ Nm_Man_t * Nm_ManCreate( int nSize )
p = ALLOC( Nm_Man_t, 1 );
memset( p, 0, sizeof(Nm_Man_t) );
// set the parameters
- p->nSizeFactor = 3; // determined how much larger the table should be compared to data in it
- p->nGrowthFactor = 3; // determined how much the table grows after resizing
+ p->nSizeFactor = 4; // determined how much larger the table should be compared to data in it
+ p->nGrowthFactor = 4; // determined how much the table grows after resizing
// allocate and clean the bins
p->nBins = Cudd_PrimeNm(p->nSizeFactor*nSize);
p->pBinsI2N = ALLOC( Nm_Entry_t *, p->nBins );
diff --git a/src/misc/nm/nmTable.c b/src/misc/nm/nmTable.c
index 65f16e04..4243244d 100644
--- a/src/misc/nm/nmTable.c
+++ b/src/misc/nm/nmTable.c
@@ -44,7 +44,7 @@ static unsigned Nm_HashString( char * pName, int TableSize )
};
unsigned i, Key = 0;
for ( i = 0; pName[i] != '\0'; i++ )
- Key ^= s_Primes[i%10]*pName[i]*pName[i];
+ Key ^= s_Primes[i%10]*pName[i]*pName[i]*pName[i];
return Key % TableSize;
}
diff --git a/src/misc/vec/vecPtr.h b/src/misc/vec/vecPtr.h
index f2413703..07ac0f17 100644
--- a/src/misc/vec/vecPtr.h
+++ b/src/misc/vec/vecPtr.h
@@ -525,10 +525,18 @@ static inline int Vec_PtrFind( Vec_Ptr_t * p, void * Entry )
static inline void Vec_PtrRemove( Vec_Ptr_t * p, void * Entry )
{
int i;
+ // delete assuming that it is closer to the end
+ for ( i = p->nSize - 1; i >= 0; i-- )
+ if ( p->pArray[i] == Entry )
+ break;
+ assert( i >= 0 );
+/*
+ // delete assuming that it is closer to the beginning
for ( i = 0; i < p->nSize; i++ )
if ( p->pArray[i] == Entry )
break;
assert( i < p->nSize );
+*/
for ( i++; i < p->nSize; i++ )
p->pArray[i-1] = p->pArray[i];
p->nSize--;