#16534: Basic Block design methods
-------------------------------------+-------------------------------------
       Reporter:  brett              |        Owner:
           Type:  enhancement        |       Status:  needs_review
       Priority:  major              |    Milestone:  sage-6.4
      Component:  combinatorial      |   Resolution:
  designs                            |    Merged in:
       Keywords:  Block Design,      |    Reviewers:
  Incidence Structure, Residual,     |  Work issues:
  Derived, Complement, Supplement,   |       Commit:
  Union                              |  910b4370825c97971adf1320722162fce6b3c52c
        Authors:  Brett Stevens      |     Stopgaps:
Report Upstream:  N/A                |
         Branch:  u/brett/design     |
   Dependencies:  #16553             |
-------------------------------------+-------------------------------------

Comment (by ncohen):

 Helloooooooo Brett,

 - Replaced the links to [Col2007] to links toward the existing
 bibliographical
   entry [DesignHandbook]. In order to link toward a bibliographical entry,
 you
   must type '[DesignHandbook]_'.

 - Replaced {{{``complementary``}}} (appears as Python code) with
   {{{*complementary*}}} appears in italic.

 - Several lines contained what we call "trailing whitespaces". I removed
 them,
   which explains why some lines of my commit seem to make no modification
 at
   all.

 - {{{int_points = frozenset(self._point_to_index[x] for x in
   points).difference(points)}}}: leads to that:

   {{{
   sage: IncidenceStructure([['a','b','c']]).trace(['a','b']).blocks()
   [['a', 'b']]
   sage:
 IncidenceStructure([['a','b','c']]).trace(['a','b'],delete=True).blocks()
   [['a', 'b']]
   }}}

   I fixed it and added a doctest.

 - Please do not leave commented lines in the code (unless you think we
 might
   need them later), e.g.

   {{{
   #        from sage.combinat.combination import Combinations
 }}}

 - The following modifications is a bit incorrect, as what it describes is
 a pair
   of Python variables. I reverted it.

   {{{
   #!diff
   -          ``(boolean_answer,(t,v,k,l))``.
   +          (boolean_answer,`(t,v,k,l)`).
   }}}

 - The implemented code of 'derived' does not match the definition. If
 there are
   repeated blocks you only remove one of them as you compare the indices.
 Do
   whatever you think is best, but please make the doc consistent with the
   implementation.

 - `derived` (and some other functions I believe) do not handle non-integer
   ground sets:

   {{{
   sage:
 
IncidenceStructure([[1,2,3],['a','b','c'],['a','b']]).residual(at_block=['a','b','c'])
   ...
   ValueError: ['a', 'b', 'c'] is not in list
   }}}

 - `keep_repeats` -- is this keyword different from the `simple` keyword
 used
   elsewhere?

 - These objects are incidence structures, thus the exceptions should not
 mention
   a 'design'.

 - {{{
   sage: IncidenceStructure("abc",["ab"]).complement()
   Incidence structure with 3 points and 0 blocks
   }}}

 I added a commit on top of yours at public/16534. Please mind corner-cases
 in
 your code (e.g. empty list of blocks, non-integer labels) and what
 actually
 happens in each command (useless copies of possibly big data).

 Cheers,

 Nathann

--
Ticket URL: <http://trac.sagemath.org/ticket/16534#comment:42>
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 unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to