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