#6571: Improve iterator of word morphisms
-------------------------+--------------------------------------------------
 Reporter:  slabbe       |       Owner:  slabbe         
     Type:  enhancement  |      Status:  new            
 Priority:  major        |   Milestone:  sage-4.1.1     
Component:  algebra      |    Keywords:  words morphisms
 Reviewer:               |      Author:  Sébastien Labbé
   Merged:               |  
-------------------------+--------------------------------------------------
 Right now, we can iterate over word morphisms with specific image lengths
 :

 {{{
     Iterator over morphisms with specific image lengths::

         sage: map(str, W.iter_morphisms([2, 1]))
         ['WordMorphism: a->aa, b->a',
          'WordMorphism: a->aa, b->b',
          'WordMorphism: a->ab, b->a',
          'WordMorphism: a->ab, b->b',
          'WordMorphism: a->ba, b->a',
          'WordMorphism: a->ba, b->b',
          'WordMorphism: a->bb, b->a',
          'WordMorphism: a->bb, b->b']
         sage: map(str, W.iter_morphisms([2, 2]))
         ['WordMorphism: a->aa, b->aa',
          'WordMorphism: a->aa, b->ab',
          'WordMorphism: a->aa, b->ba',
          'WordMorphism: a->aa, b->bb',
          'WordMorphism: a->ab, b->aa',
          'WordMorphism: a->ab, b->ab',
          'WordMorphism: a->ab, b->ba',
          'WordMorphism: a->ab, b->bb',
          'WordMorphism: a->ba, b->aa',
          'WordMorphism: a->ba, b->ab',
          'WordMorphism: a->ba, b->ba',
          'WordMorphism: a->ba, b->bb',
          'WordMorphism: a->bb, b->aa',
          'WordMorphism: a->bb, b->ab',
          'WordMorphism: a->bb, b->ba',
          'WordMorphism: a->bb, b->bb']
         sage: map(str, W.iter_morphisms([0, 0]))
         ['WordMorphism: a->, b->']
         sage: map(str, W.iter_morphisms([0, 1]))
         ['WordMorphism: a->, b->a', 'WordMorphism: a->, b->b']
 }}}

 I want to iterate over all (non erasing) morphisms! In particuliar, I want
 the following to work :

 {{{
     sage: W = Words('ab')
     sage: it = W.iter_morphisms()
     sage: for _ in range(10): print it.next()
     WordMorphism: a->a, b->a
     WordMorphism: a->a, b->b
     WordMorphism: a->b, b->a
     WordMorphism: a->b, b->b
     WordMorphism: a->aa, b->a
     WordMorphism: a->aa, b->b
     WordMorphism: a->ab, b->a
     WordMorphism: a->ab, b->b
     WordMorphism: a->ba, b->a
     WordMorphism: a->ba, b->b
 }}}

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/6571>
Sage <http://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