#7145: Interval exchange transformations
-----------------------------+----------------------------------------------
   Reporter:  vdelecroix     |       Owner:  vdelecroix       
       Type:  enhancement    |      Status:  needs_review     
   Priority:  major          |   Milestone:  sage-4.3         
  Component:  combinatorics  |    Keywords:                   
Work_issues:                 |      Author:  Vincent Delecroix
   Upstream:  N/A            |    Reviewer:                   
     Merged:                 |  
-----------------------------+----------------------------------------------
Changes (by vdelecroix):

  * status:  needs_work => needs_review


Old description:

> This module implement Interval exchange transformations (iet) (and linear
> involutions (li)) from a combinatorial point of vue. It also makes the
> link with strata of Abelian differentials on Riemann surfaces. The three
> main objects defined in this module are:
>
>   - Special kinds of permutations
>   - Rauzy diagrams (oriented graph)
>   - Strata of differentials
>
> There are different class of permutations associated to iet, but all are
> constructed within a class factory:
>
> {{{
> sage: p = PermutationIET('a b c d','d c b a')
> sage: p
> a b c d
> d c b a
> sage: p.stratum()
> H(2)
> }}}
>
> The object which links those permutations to the dynamic (Teichmüller
> flow) of strata of differentials is the Rauzy diagram:
>
> {{{
> sage: p = PermutationIET('a b c','c b a')
> sage: d = p.rauzy_diagram()
> Rauzy diagram with 3 permutations
> }}}

New description:

 This module implement Interval exchange transformations (iet) (and linear
 involutions (li)) from a combinatorial point of vue. It also makes the
 link with strata of Abelian differentials on Riemann surfaces. The three
 main objects defined in this module are:

   - Special kinds of permutations
   - Rauzy diagrams (oriented graph)
   - Strata of differentials

 There are different class of permutations associated to iet, but all are
 constructed within a class factory:

 {{{
 sage: p = iet.Permutation('a b c d','d c b a')
 sage: p
 a b c d
 d c b a
 sage: p.stratum()
 H(2)
 }}}

 The object which links those permutations to the dynamic (Teichmüller
 flow) of strata of differentials is the Rauzy diagram:

 {{{
 sage: p = iet.Permutation('a b c','c b a')
 sage: d = p.rauzy_diagram()
 Rauzy diagram with 3 permutations
 }}}

--

Comment:

 >  - Create a class constructor containing the functions
 `PermutationsIET`, `PermutationIET`, `PermutationLI`,
 `GeneralizedPermutation`, `RauzyDiagram`,
 `IntervalExchangeTransformation`.
 >  - Create the object `IET` = `constructor()`

 done. Everything is in constructor.py which is imported as iet. Then the
 iet.<tab> gives the (approximately) the following list

    * Permutation
    * RauzyDiagram
    * IntervalExchangeTransformation

 >  - Rename `PermutationsIET` to `PermutationsIET_iterator`

 done

 >  - Add a function named `IntervalExchangeTransformation` to the class
 constructor that wrapped the constructor of IET in `iet.py`.

 done

 >  - Do we want `AbelianStratum`, `QuadraticStratum` and `AbelianStrata`
 to be wrapped in constructor as well? I don't know, but if it is realated
 to everything in iet folder, then it would clearly help the user to know
 about it.

 I don't know... the strata here means strata of Abelian differentials on
 Riemann surfaces. The fact is we need them to understand precisely the
 structure of Rauzy diagram. It is hence related to Rauzy diagram but
 somewhat independent of the theory of interval exchange transformations.

 >
 > For iet.py
 >
 >  - Rename `IntervalExchangeTransformation.__mul__` to something like
 `multiply_lengths`.

 done. In fact, it's implemented in .normalize()

 >  - Keep `IntervalExchangeTransformation.__mul__` for multiplication of
 two IET.

 done. But a little todo remains. I choose to create canonic labels from
 the labels of the two iets and this force a conversion of labels to
 strings. It's not so beautiful if we do not need the labels.

 >  - Change `IntervalExchangeTransformation._repr_` to look more like an
 `IET` and less as two tuples. For example it could say Interval exchange
 transformation from [0, 1[ to [0, 1[ of permutation ?.

 done.

 >  - Rename `IntervalExchangeTransformation.copy` as `__copy__` or
 `__deepcopy__` if it corresponds to what you want. This may applies to
 many other classes in the files.

 done.

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/7145#comment:7>
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