#6812: Enumerate integer vectors modulo to the action of a Permutation Group
------------------------------------------------------------------------+---
Reporter: nborie |
Owner: nborie
Type: enhancement |
Status: needs_work
Priority: major |
Milestone: sage-4.7
Component: combinatorics |
Keywords: enumeration, integer, list, permutation, group
Author: Nicolas Borie |
Upstream: N/A
Reviewer: Karl-Dieter Crisman, Simon King |
Merged:
Work_issues: long time tests, information about listing infinite sets |
------------------------------------------------------------------------+---
Comment(by nborie):
Thanks a lot for having regarded this...
For # long time, I do not know. I think I will select a subpart of the
tests and include them with long time. The developer guide say : "These
will not be run regularly during Sage development, but will get run before
major releases. No example should take more than about 30 seconds.".
Currently, on my three years old macbook, all tests take something like 6
minutes. Especially, there are also # optional - gap_database tests here.
I will select some groups and add some tests with long time.
I didn't know we can add pyx file in the doctree, I will add it. I will
also add comments on the fact that the is_canonical test is polymorph. I
just checked the only thing required is a comparison test:
{{{
sage: from sage.combinat.enumeration_mod_permgroup import is_canonical
sage: G = PermutationGroup([[(1,2,3,4,5,6)]])
sage: sgs = [map(lambda x: Permutation(x), trans) for trans in
G.strong_generating_system()]
sage: is_canonical(sgs, ['c','b','a','b','b','a'])
True
sage: is_canonical(sgs, [3,2,1,2,2,1])
True
}}}
As string can be compared with `<` and `>`, the function can be also used
on such object.
I think that examples in cdef functions aren't required just because one
cannot import them in the sage console. Try from file.pyx import <tab>.
There is perhaps another way to import them, but I don't know...
For the behavior of list(), I think it is ok. The category framework do
the job:
{{{
sage: I =
IntegerVectorsModPermutationGroup(PermutationGroup([[(1,2,3,4)]]))
sage: list(I)
...
NotImplementedError: infinite list
sage: I = IntegerRange(1,+Infinity, 5)
sage: I
{1, 6, ..}
sage: list(I)
...
NotImplementedError: infinite list
sage: I = InfiniteEnumeratedSets().example()
sage: I
An example of an infinite enumerated set: the non negative integers
sage: list(I)
...
NotImplementedError: infinite list
}}}
I going to improve the doc of IntegerVectorsModPermutationGroup. You're
definitely right and I think it deserves to stay the only entrance point
for this module.
Thanks for your comments.
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/6812#comment:23>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.