Ok, in case I get hit by lightning in the next twelve hours, I've at least figured out what the bug is, but fixing it will take some effort. Essentially, the bug is in double_coset.pyx, when we do the first set of refinements to get the left partition stack and the first partition stack set up. The problem is that the code is aborting early instead of backtracking, in the loop {{{while not PS_is_discrete(left_ps) and possible:}}}. What the code should do is two separate loops: one to establish the left partition stack, and the next to try to get a similar setup for the first partition stack. The second loop, instead of aborting (right now the code does {{{ if not possible: j = vertices_determining_current_stack[i] + 1 j = bitset_next(vertices_to_split[i], j) if j == -1: break }}} ), where it says "break" it should actually be backtracking up the first partition stack to try other combinations higher up.
Now that I understand the bug, my experience is it's best to sleep on it, and tackle fixing it tomorrow. This way I've given myself a nice outline towards doing that... -- Robert L. Miller http://www.rlmiller.org/ -- To post to this group, send an email to sage-devel@googlegroups.com To unsubscribe from this group, send an email to sage-devel+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URL: http://www.sagemath.org