#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.

Reply via email to