diff options
Diffstat (limited to 'src/pruning.c')
| -rw-r--r-- | src/pruning.c | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/src/pruning.c b/src/pruning.c index 36445b7..6cab7e7 100644 --- a/src/pruning.c +++ b/src/pruning.c | |||
| @@ -258,22 +258,20 @@ genptable_compress(PruneData *pd) | |||
| 258 | static void | 258 | static void |
| 259 | genptable_fixnasty(PruneData *pd, int d) | 259 | genptable_fixnasty(PruneData *pd, int d) |
| 260 | { | 260 | { |
| 261 | uint64_t i, ii, mask; | 261 | uint64_t i, ii; |
| 262 | Trans t; | 262 | int j, n; |
| 263 | Trans t, aux[NTRANS]; | ||
| 263 | 264 | ||
| 264 | if (pd->coord->sd == NULL) | 265 | if (pd->coord->tfind == NULL) |
| 265 | return; | 266 | return; |
| 266 | 267 | ||
| 267 | for (i = 0; i < pd->coord->max; i++) { | 268 | for (i = 0; i < pd->coord->max; i++) { |
| 268 | if (ptableval_index(pd, i) == d) { | 269 | if (ptableval_index(pd, i) == d) { |
| 269 | mask = pd->coord->sd->selfsim[i]; | 270 | if ((n = pd->coord->tfind(i, aux)) == 1) |
| 270 | if (mask == (1 << uf)) | ||
| 271 | continue; | 271 | continue; |
| 272 | 272 | ||
| 273 | for (t = 0; t < NTRANS; t++) { | 273 | for (j = 0; j < n; j++) { |
| 274 | if (!((1 << t) & mask)) | 274 | t = aux[j]; |
| 275 | continue; | ||
| 276 | |||
| 277 | ii = pd->coord->transform(t, i); | 275 | ii = pd->coord->transform(t, i); |
| 278 | if (ptableval_index(pd, ii) > d) { | 276 | if (ptableval_index(pd, ii) > d) { |
| 279 | ptable_update_index(pd, ii, d); | 277 | ptable_update_index(pd, ii, d); |
