aboutsummaryrefslogtreecommitdiff
path: root/src/pruning.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/pruning.c')
-rw-r--r--src/pruning.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/pruning.c b/src/pruning.c
index b000eb7..5073d69 100644
--- a/src/pruning.c
+++ b/src/pruning.c
@@ -167,6 +167,25 @@ genptable_branch(PruneData *pd, uint64_t ind, int d, Move *ms)
167 * This is a terribly inefficient way to deal with this. 167 * This is a terribly inefficient way to deal with this.
168 * TODO: make it more efficient. 168 * TODO: make it more efficient.
169 */ 169 */
170 /*
171 * IDEA (with the example of khuge in mind):
172 * The problem only happens when two position that are actually
173 * in the same class are considered different. This can happen
174 * because only CO is used to determine which transformation
175 * to apply to get a representative for the class. So if the
176 * corners are in a self-symmetric position more than one
177 * transformation to the representative is possible, only one
178 * (essentially at random) is picked, but this is not necessarily
179 * the correct one if the edges are not in a self-symmetric
180 * position.
181 * SOLUTION: Keep in mind which corner positions are
182 * self-symmetric (add a field to symdata). Add a function
183 * to coord that tells if a position has this problem, or
184 * even the list of transformations that need to be tried.
185 * The second option is a bit more complicated but more
186 * efficient and allows for removing the ntrans and trans
187 * field from struct coordinate.
188 */
170 for (i = 0; i < pd->coord->ntrans; i++) { 189 for (i = 0; i < pd->coord->ntrans; i++) {
171 c = i == 0 ? ci : 190 c = i == 0 ? ci :
172 apply_trans(pd->coord->trans[i], ci); 191 apply_trans(pd->coord->trans[i], ci);

Generated with cgit - Back to sebastiano.tronto.net