Hello,

I think that I was the main reviewer of the module on
orthogonal_array, so I take part in responsability! But on the other
hand I know the code quite well and can answer to some of the design
decisions.

It is still largely possible to refactor the code, especially the
functions that are available from the global namespace. And it can be
done easily as it is just about modifying "design_catalog.py" which is
rather independent from the coming tickets.

For the internals, many constructions in combinatorial designs are
recursive and complicated. So separating the existence from
construction means do an exact copy of the code. The boolean answer is
just intended to cut the actual construction (the object are rather
big). So we can not live with two functions. On the other hand, this
function can be hidden from the global namespace.

Nevertheless, there is an intermediate solution which I proposed
recently in #16347 comment:12. Let me repeat it here. Instead of
returning an OA or a boolean we can write a function
"orthogonal_array_construction(k, n)" whose specification would be
"return a pair (f, args) such that f(*args) is an OA(k,n) or return
None if Sage has no idea how to build it". That way, even the internal
function would be clean.

For the external, as Nathann already said, multiplying the namespace with
 designs.orthogonal_array(k, n)
 designs.orthogonal_array_existence(k, n)
 designs.orthogonal_array_maximum_size(n)
looks ugly to me as there are many combinatorial designs on which you
would have the same. It might also be gathered with no cost as
 designs.orthogonal_array.SOMETHING
Perhaps better, I am not sure.

All best,
Vincent

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to