#16500: New recursive constructions of Orthogonal Arrays
-------------------------------------+-------------------------------------
       Reporter:  ncohen             |        Owner:
           Type:  enhancement        |       Status:  needs_review
       Priority:  major              |    Milestone:  sage-6.3
      Component:  combinatorial      |   Resolution:
  designs                            |    Merged in:
       Keywords:                     |    Reviewers:
        Authors:  Nathann Cohen      |  Work issues:
Report Upstream:  N/A                |       Commit:
         Branch:  u/ncohen/16500     |  a67c04f13bd0aa2b46e6998d2b996437f342470c
   Dependencies:  #16499             |     Stopgaps:
-------------------------------------+-------------------------------------

Comment (by vdelecroix):

 Replying to [comment:10 ncohen]:

 > > - Why you did not move `product`, `one_truncated_group` and
 `two_trucated_group` in the recursive construction?
 >
 > Because I thought that it would be abusing your kindness. I waste my
 health implementing those things, but I still try to makes patches somehow
 readable so that reviewing them will not be hell for you. I can add a
 commit for that if you don't mind. As I told you by email, "this is in the
 plan" `:-P`

 Ok. Will see that later. I postponed to #16535 if you agree.

 > > - Why not put the cache only for `find_recursive_construction`? (less
 cached function and less function calls)
 >
 > Because this function returns both OA and !True/False answers. The
 `find_*` functions I cached only return immutable stuff.

 But why not having `orthogonal_array` implements the three lines that are
 right now in `find_recursive_construction`? My main concern is about
 readability. I would prefer
 {{{
 @cached_method
 def find_recursive_construction(k,n):
     for find_c in [find_construction_3_3,
                    find_construction_3_4,
                    find_construction_3_5,
                    find_construction_3_6]:
         res = find_c(k,n)
         if res: return res
 }}}
 That way:
 - you still have the freedom to update `find_recursive_construction`
 without touching `orthogonal_array`
 - you keep an eye on who did what with the cache
 - you perform the work of adapting your answer only in `orthogonal_array`
 - if you changed your mind about the syntax `existence=True` and such you
 will not have to touch to `find_recursive_construction`
 - the file `orthogonal_array_recursive.py` will look like a "dynamical"
 database in the very same way that `database.py` is a static one

 Vincent

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