#15431: Transversal Design TD(6,12)
-------------------------+-------------------------------------------------
       Reporter:         |        Owner:
  ncohen                 |       Status:  needs_review
           Type:         |    Milestone:  sage-6.2
  enhancement            |   Resolution:
       Priority:  major  |    Merged in:
      Component:         |    Reviewers:
  combinatorics          |  Work issues:
       Keywords:         |       Commit:
        Authors:         |  4adf6b5792919daea356c66d511fc621776d0a77
  Nathann Cohen          |     Stopgaps:
Report Upstream:  N/A    |
         Branch:         |
  u/ncohen/15431         |
   Dependencies:         |
  #15287 #15368          |
-------------------------+-------------------------------------------------

Comment (by ncohen):

 Though perhaps I should tell you what I have in mind for these files :

 I do not like to have so many "if" in the functions.. Really, each "if"
 actually means "try this construction, and if it failed try this one, and
 if it failed try this one". As a result you have a lot of very different
 constructions in the same place, and it is hard to document them
 individually.

 Besides, the code will get worse because of #15310, because I need to add
 an argument to TD/OA : "do not build the design, just tell me if you can
 do it". This is useful because Wilson's construction is recursive, and
 because you do not want to build stuff that you may not be able to use in
 the end.

 This, in each of these "if" which try some construction, you also have to
 handle the case where you only want to return a boolean answer, or return
 the best MOLS you can build, stuff like that.

 And it does get messy.

 So what I thought is something like this : write three decorators
 {{{
 @mols_construction
 @td_construction
 @oa_construction
 }}}

 And when the @mols_construction is applied to a function F (defined
 anywhere in the file), then F is added to a global index of "mols
 constructions".

 And then, the code of "MOLS(k,n)" becomes "For every constructor in the
 global list, give it a try and answer if it returns something useful".

 As you can see, the TD6_12 is a function of its own, and it is only called
 in the constructor of TD. It's either this, or add the documentation of
 the different constructions in the doc of transversal_design, and that
 does not scale.

 Nathann

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