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

Reply via email to