#16323: Construction of BIBD with k=5
-------------------------------------+-------------------------------------
       Reporter:  ncohen             |        Owner:
           Type:  enhancement        |       Status:  needs_info
       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/16323     |  07a31304b9d48ef6e07f1dd96c1d3185b8fafc95
   Dependencies:  #16279             |     Stopgaps:
-------------------------------------+-------------------------------------

Comment (by ncohen):

 Yooooooooo !!

 > Perhaps not everything for that ticket but I would like to discuss
 several points.

 Thanks for reading it, though !

 > 1) `BalancedIncompleteBlockDesign` is upper case whereas we start to
 agree on lower case would be for "build me one if you know how to" and
 !CamelCase would be for "build me this precise design". Should I open a
 ticket for that ?

 Ahahahah... Yes, probably... `:-)`

 > 2) BIBD errors are not smart (compared to TD/OA/MOLS)
 > {{{
 > sage: designs.BalancedIncompleteBlockDesign(5,6)
 > ...
 > ValueError: No such design exists !
 > sage: designs.BalancedIncompleteBlockDesign(1,6)
 > ...
 > RuntimeError: maximum recursion depth exceeded while calling a Python
 object
 > sage: D=designs.BalancedIncompleteBlockDesign(1,5)
 > ...
 > EmptySetError: No Transversal Design exists when k>=n+2 if n>=2
 > }}}

 Well, the first one is correct, I am pretty sure I fixed the second
 somewhere but let's fix it again here, and the third one is really a
 mistake. I will write a ticket for the last two bugs in a second

 > 3) It would be nice to have `BIBD_from_difference_family` as a public
 function as it
 > may serve other purposes. Moreover, the {{{G(x if some_reason else
 [x])}}} is
 > ugly.  I know it is because of `AdditiveAbelianGroup` but it is ugly.

 Yes. But you know, it REALLY is because of `AdditiveAbelianGroup` ! Anyway
 now we have real cartesian products, I will use that.

 > There are
 > ways to avoid that (e.g. use `Zmod` for cyclic groups instead of
 > `AdditiveAbelianGroup`). For that particular point, I do have
 implementation that smooth everything in u/vdelecroix/16323.

 Oh... But Zmod is ugly too, because you have to change the way you think
 of the code.. We can use cartesian products now that we have them !

 > 4) More generally, there are recursive strategies to build difference
 family and
 > difference matrices... it would be nice to have functions
 > {{{
 > def difference_family(G, k, l=1, existence=False):
 >     r"""
 >     Return a (G,k,l)-difference family if we know how to...
 >     """
 >
 > def difference_matrix(G, k, l=1, existence=False):
 >     r"""
 >     Return a (G,k,l)-difference matrix if we know how to...
 >     """"
 > }}}
 > And moreover, such function might be used to simplify the database.

 I know nothing about ways to build difference families and differences
 matrices.

 Nathann

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