91 static char rcsid[]
DD_UNUSED =
"$Id: cuddRef.c,v 1.29 2012/02/05 01:07:19 fabio Exp $";
159 unsigned int live = table->
keys - table->
dead;
175 table->nodesDropped++;
222 unsigned int live = table->
keys - table->
dead;
238 table->nodesDropped++;
279 unsigned int live = table->
keys - table->
dead;
289 #ifdef DD_NO_DEATH_ROW 307 stack = table->
stack;
317 table->nodesDropped++;
328 #ifndef DD_NO_DEATH_ROW 344 if (newRow == NULL) {
402 table->nodesDropped++;
408 stack[SP++] =
cuddE(N);
475 #ifndef DD_NO_DEATH_ROW 481 size = manager->
size;
484 for (i = 0; i < size; i++) {
487 for (j = 0; (unsigned) j < subtable->slots; j++) {
489 while (node != sentinel) {
491 index = (int) node->
index;
492 if (node != manager->
vars[index]) {
495 if (node->
ref != 1) {
506 size = manager->
sizeZ;
510 for (i = 0; i < size; i++) {
513 for (j = 0; (unsigned) j < subtable->slots; j++) {
515 while (node != NULL) {
517 index = (int) node->
index;
518 if (node == manager->
univ[manager->
permZ[index]]) {
537 for (j = 0; (unsigned) j < manager->constants.slots; j++) {
539 while (node != NULL) {
541 if (node == manager->
one) {
542 if ((
int) node->
ref != remain) {
545 }
else if (node == manager->
zero ||
548 if (node->
ref != 1) {
588 double initialDead = table->
dead;
659 stack[SP++] =
cuddE(N);
687 #ifndef DD_NO_DEATH_ROW 691 for (i = table->
deathRowDepth/4; i < table->deathRowDepth; i++) {
692 if (table->
deathRow[i] == NULL)
break;
725 #ifndef DD_NO_DEATH_ROW 729 if (table->
deathRow[i] == NULL)
break;
762 #ifndef DD_NO_DEATH_ROW 794 #ifndef DD_NO_DEATH_ROW
void cuddReclaim(DdManager *table, DdNode *n)
void Cudd_OutOfMem(long size)
static char rcsid [] DD_UNUSED
unsigned int peakLiveNodes
#define Cudd_Regular(node)
int Cudd_CheckZeroRef(DdManager *manager)
void Cudd_RecursiveDeref(DdManager *table, DdNode *n)
void Cudd_RecursiveDerefZdd(DdManager *table, DdNode *n)
#define Cudd_IsComplement(node)
int cuddIsInDeathRow(DdManager *dd, DdNode *f)
#define cuddIsConstant(node)
void Cudd_IterDerefBdd(DdManager *table, DdNode *n)
void cuddReclaimZdd(DdManager *table, DdNode *n)
void(* MMoutOfMemory)(long)
void cuddShrinkDeathRow(DdManager *table)
#define REALLOC(type, obj, num)
void Cudd_DelayedDerefBdd(DdManager *table, DdNode *n)
int cuddTimesInDeathRow(DdManager *dd, DdNode *f)
void cuddClearDeathRow(DdManager *table)
void Cudd_Deref(DdNode *node)