mirror of
git://git.tartarus.org/simon/puzzles.git
synced 2025-04-20 23:51:29 -07:00
Remove conditioned-out dsf diagnostic code.
print_dsf was declared in puzzles.h, but never called, and its definition was commented out. So it probably wouldn't still have worked anyway. The other commented-out printfs in that file don't look very useful either, and they just mean more stuff will need messing about with as I continue to refactor.
This commit is contained in:
68
dsf.c
68
dsf.c
@ -14,58 +14,6 @@ struct DSF {
|
|||||||
int *p;
|
int *p;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*void print_dsf(int *dsf, int size)
|
|
||||||
{
|
|
||||||
int *printed_elements = snewn(size, int);
|
|
||||||
int *equal_elements = snewn(size, int);
|
|
||||||
int *inverse_elements = snewn(size, int);
|
|
||||||
int printed_count = 0, equal_count, inverse_count;
|
|
||||||
int i, n;
|
|
||||||
bool inverse;
|
|
||||||
|
|
||||||
memset(printed_elements, -1, sizeof(int) * size);
|
|
||||||
|
|
||||||
while (1) {
|
|
||||||
equal_count = 0;
|
|
||||||
inverse_count = 0;
|
|
||||||
for (i = 0; i < size; ++i) {
|
|
||||||
if (!memchr(printed_elements, i, sizeof(int) * size))
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (i == size)
|
|
||||||
goto done;
|
|
||||||
|
|
||||||
i = dsf_canonify(dsf, i);
|
|
||||||
|
|
||||||
for (n = 0; n < size; ++n) {
|
|
||||||
if (edsf_canonify(dsf, n, &inverse) == i) {
|
|
||||||
if (inverse)
|
|
||||||
inverse_elements[inverse_count++] = n;
|
|
||||||
else
|
|
||||||
equal_elements[equal_count++] = n;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (n = 0; n < equal_count; ++n) {
|
|
||||||
fprintf(stderr, "%d ", equal_elements[n]);
|
|
||||||
printed_elements[printed_count++] = equal_elements[n];
|
|
||||||
}
|
|
||||||
if (inverse_count) {
|
|
||||||
fprintf(stderr, "!= ");
|
|
||||||
for (n = 0; n < inverse_count; ++n) {
|
|
||||||
fprintf(stderr, "%d ", inverse_elements[n]);
|
|
||||||
printed_elements[printed_count++] = inverse_elements[n];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
fprintf(stderr, "\n");
|
|
||||||
}
|
|
||||||
done:
|
|
||||||
|
|
||||||
sfree(printed_elements);
|
|
||||||
sfree(equal_elements);
|
|
||||||
sfree(inverse_elements);
|
|
||||||
}*/
|
|
||||||
|
|
||||||
void dsf_reinit(DSF *dsf)
|
void dsf_reinit(DSF *dsf)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
@ -94,8 +42,6 @@ DSF *snew_dsf(int size)
|
|||||||
|
|
||||||
dsf_reinit(ret);
|
dsf_reinit(ret);
|
||||||
|
|
||||||
/*print_dsf(ret, size); */
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -126,9 +72,6 @@ int edsf_canonify(DSF *dsf, int index, bool *inverse_return)
|
|||||||
int start_index = index, canonical_index;
|
int start_index = index, canonical_index;
|
||||||
bool inverse = false;
|
bool inverse = false;
|
||||||
|
|
||||||
/* fprintf(stderr, "dsf = %p\n", dsf); */
|
|
||||||
/* fprintf(stderr, "Canonify %2d\n", index); */
|
|
||||||
|
|
||||||
assert(0 <= index && index < dsf->size && "Overrun in edsf_canonify");
|
assert(0 <= index && index < dsf->size && "Overrun in edsf_canonify");
|
||||||
|
|
||||||
/* Find the index of the canonical element of the 'equivalence class' of
|
/* Find the index of the canonical element of the 'equivalence class' of
|
||||||
@ -137,8 +80,6 @@ int edsf_canonify(DSF *dsf, int index, bool *inverse_return)
|
|||||||
while ((dsf->p[index] & 2) == 0) {
|
while ((dsf->p[index] & 2) == 0) {
|
||||||
inverse ^= (dsf->p[index] & 1);
|
inverse ^= (dsf->p[index] & 1);
|
||||||
index = dsf->p[index] >> 2;
|
index = dsf->p[index] >> 2;
|
||||||
/* fprintf(stderr, "index = %2d, ", index); */
|
|
||||||
/* fprintf(stderr, "inverse = %d\n", inverse); */
|
|
||||||
}
|
}
|
||||||
canonical_index = index;
|
canonical_index = index;
|
||||||
|
|
||||||
@ -158,8 +99,6 @@ int edsf_canonify(DSF *dsf, int index, bool *inverse_return)
|
|||||||
|
|
||||||
assert(!inverse);
|
assert(!inverse);
|
||||||
|
|
||||||
/* fprintf(stderr, "Return %2d\n", index); */
|
|
||||||
|
|
||||||
return index;
|
return index;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -170,9 +109,6 @@ void edsf_merge(DSF *dsf, int v1, int v2, bool inverse)
|
|||||||
assert(0 <= v1 && v1 < dsf->size && "Overrun in edsf_merge");
|
assert(0 <= v1 && v1 < dsf->size && "Overrun in edsf_merge");
|
||||||
assert(0 <= v2 && v2 < dsf->size && "Overrun in edsf_merge");
|
assert(0 <= v2 && v2 < dsf->size && "Overrun in edsf_merge");
|
||||||
|
|
||||||
/* fprintf(stderr, "dsf = %p\n", dsf); */
|
|
||||||
/* fprintf(stderr, "Merge [%2d,%2d], %d\n", v1, v2, inverse); */
|
|
||||||
|
|
||||||
v1 = edsf_canonify(dsf, v1, &i1);
|
v1 = edsf_canonify(dsf, v1, &i1);
|
||||||
assert(dsf->p[v1] & 2);
|
assert(dsf->p[v1] & 2);
|
||||||
inverse ^= i1;
|
inverse ^= i1;
|
||||||
@ -180,8 +116,6 @@ void edsf_merge(DSF *dsf, int v1, int v2, bool inverse)
|
|||||||
assert(dsf->p[v2] & 2);
|
assert(dsf->p[v2] & 2);
|
||||||
inverse ^= i2;
|
inverse ^= i2;
|
||||||
|
|
||||||
/* fprintf(stderr, "Doing [%2d,%2d], %d\n", v1, v2, inverse); */
|
|
||||||
|
|
||||||
if (v1 == v2)
|
if (v1 == v2)
|
||||||
assert(!inverse);
|
assert(!inverse);
|
||||||
else {
|
else {
|
||||||
@ -211,6 +145,4 @@ void edsf_merge(DSF *dsf, int v1, int v2, bool inverse)
|
|||||||
v2 = edsf_canonify(dsf, v2, &i2);
|
v2 = edsf_canonify(dsf, v2, &i2);
|
||||||
assert(v2 == v1);
|
assert(v2 == v1);
|
||||||
assert(i2 == inverse);
|
assert(i2 == inverse);
|
||||||
|
|
||||||
/* fprintf(stderr, "dsf[%2d] = %2d\n", v2, dsf->p[v2]); */
|
|
||||||
}
|
}
|
||||||
|
@ -430,8 +430,6 @@ typedef struct DSF DSF;
|
|||||||
DSF *snew_dsf(int size);
|
DSF *snew_dsf(int size);
|
||||||
void dsf_free(DSF *dsf);
|
void dsf_free(DSF *dsf);
|
||||||
|
|
||||||
void print_dsf(DSF *dsf, int size);
|
|
||||||
|
|
||||||
void dsf_copy(DSF *to, DSF *from);
|
void dsf_copy(DSF *to, DSF *from);
|
||||||
|
|
||||||
/* Return the canonical element of the equivalence class containing element
|
/* Return the canonical element of the equivalence class containing element
|
||||||
|
Reference in New Issue
Block a user