#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.