#12454: A draw_rauzy_fractal method for WordMorphism
----------------------------------------------------------------------+-----
Reporter: tjolivet |
Owner: sage-combinat
Type: enhancement |
Status: needs_review
Priority: major |
Milestone: sage-5.3
Component: combinatorics |
Resolution:
Keywords: rauzy fractal, substitution, word morphism, lounge | Work
issues:
Report Upstream: N/A |
Reviewers: Vincent Delecroix
Authors: Timo Jolivet |
Merged in:
Dependencies: |
Stopgaps:
----------------------------------------------------------------------+-----
Comment (by slabbe):
I am ready to give positive review provided the three following things are
satisfied :
- doctest timing do not take too much longer than before
- documentation issue are fixed (done in my first review patch)
- method {{{rauzy_fractal_points}}} is split into two (done in my second
review patch)
... and of course if Timo and others agree with my patches.
Indeed,
1. Testing the file {{{morphism.py}}} now takes way more time than before.
I think {{{sage -t sage_library_file.py}}} should run in 10s and {{{sage
-t -long -optional sage_library_file.py}}} in no more than 40 seconds
(these are my standards, I don't know if there exist any in the Sage
Developper Guide). Instead of drawing 10000 points, you can draw 100
points for the doctests. If you want to keep those doctests interesting
for the user, you may add {{{#not tested takes > 3 seconds}}}. Or, you can
add a remark at the beginning of the examples saying the value {{{n=100}}}
below is low for doctests purposes, larger values of n can be given by the
user.
BEFORE:
{{{
$ sage-5.2.rc0 -t morphism.py
sage -t "devel/sage-main/sage/combinat/words/morphism.py"
[4.4 s]
----------------------------------------------------------------------
All tests passed!
Total time for all tests: 4.4 seconds
$ sage-5.2.rc0 -t -long -optional morphism.py
sage -t -long -optional "devel/sage-main/sage/combinat/words/morphism.py"
[6.6 s]
----------------------------------------------------------------------
All tests passed!
Total time for all tests: 6.6 seconds
}}}
AFTER:
{{{
$ sage-5.2.rc0 -t morphism.py
sage -t "devel/sage-main/sage/combinat/words/morphism.py"
[30.4 s]
----------------------------------------------------------------------
All tests passed!
Total time for all tests: 30.4 seconds
$ sage-5.2.rc0 -t -long -optional morphism.py
sage -t -long -optional "devel/sage-main/sage/combinat/words/morphism.py"
[255.9 s]
----------------------------------------------------------------------
All tests passed!
Total time for all tests: 256.0 seconds
}}}
2. I uploaded two patches which applies on top of Timo's one. The first
fixes some documentation issues.
3. The second patch splits the method {{{rauzy_fractal_points}}} into two.
As I already explained verbaly to Timo, I dislike the idea of having
output types (dict vs 2-tuple of dict) depending on the input. Instead I
propose to split the method into two and doing it made me realize that the
second output only depends on two of the inputs. So, now the user can
obtain this output without generating points and by providing only the
necessary two inputs.
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/12454#comment:25>
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.