#10530: De Bruijn Sequence construction for combinat
---------------------------------+------------------------------------------
   Reporter:  eviatarbach        |          Owner:  eviatarbach 
       Type:  enhancement        |         Status:  needs_review
   Priority:  major              |      Milestone:  sage-4.7    
  Component:  combinatorics      |       Keywords:              
Work_issues:                     |       Upstream:  N/A         
   Reviewer:  Nicolas M. ThiƩry  |         Author:  Eviatar Bach
     Merged:                     |   Dependencies:              
---------------------------------+------------------------------------------

Comment(by ncohen):

 Hello again !

     * doctest coverage still isn't to 100% (even though only the __init__
 is missing.

     * The first line in the docstring of a method should be a description
 of what it does. It is missing in many methods.

     * It would be nice to add a formal definition of what a DeBruijn
 sequence is. A "sequence that incorporates all substrings of a certain
 length of an alphabet" is a bit vague. And even when it is made clear that
 they are contiguous substrings, there is something to mention about the
 fact that is actually does *not* contain them all, are one has to assume
 there is a sequence of trailing zeroes.

       {{{
       sage: DeBruijnSequences(2,3).an_element()
       [0, 0, 0, 1, 0, 1, 1, 1]
       }}}

       Here the sequences 110 and 100 do not appear, except when
 considering trailing zeroes, and even though I think this is what is
 called a de Bruijn sequence, it has to be made clear somewhere (perhaps
 the best is in ``DeBruijnSequences?``).

     * We usually push the TESTS section of each docstring to the end, as
 it is usually long and the least relevant to the user.

     * References (bibliography) are still wrong

     * Couldn't the debruijn_sequence function (in Cython) be improved by
 defining the recursive method outside, as a cdef function ? Here I fear
 the recursive calls are made in Python.

     * I remember Minh  telling me that we should stick to

       {{{
       raise ValueError("message")
       }}}
       instead of

       {{{
       raise ValueError, "message"
       }}}

       It has something to do with the next version of Python that we may
 have to use somewhere in the distant future.

     * There is a warning when building documentation

       {{{
          /home/ncohen/.Sage/local/lib/python2.6/site-
 packages/sage/combinat/debruijn_sequences.py:docstring of
 sage.combinat.debruijn_sequences.DeBruijnSequences:4: (WARNING/2) Bullet
 list ends without a blank line; unexpected unindent.
       }}}

 Nathann

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