Bounds on the number of mutually orthogonal Latin squares¶
This module contains known lower bounds on the number of mutually orthogonal
Latin squares (MOLS) of a given size, and consists (almost) entirely of an
internal, constant tuple of Python integers corresponding to Table 3.87 in the
Handbook of Combinatorial Designs, 2nd edition, by Colbourn and Dinitz. One public
function, lower_bound(), is provided to access it.
Make sure we have all of the entries:
sage: from sage.combinat.designs import MOLS_handbook_data
sage: len(MOLS_handbook_data._LOWER_BOUNDS)
10000
>>> from sage.all import *
>>> from sage.combinat.designs import MOLS_handbook_data
>>> len(MOLS_handbook_data._LOWER_BOUNDS)
10000
Jeff Dinitz’s website (at UVM) provides the following two updates to the table as printed in the second edition:
sage: from sage.combinat.designs import MOLS_handbook_data
sage: MOLS_handbook_data.lower_bound(60)
5
sage: MOLS_handbook_data.lower_bound(7968)
31
>>> from sage.all import *
>>> from sage.combinat.designs import MOLS_handbook_data
>>> MOLS_handbook_data.lower_bound(Integer(60))
5
>>> MOLS_handbook_data.lower_bound(Integer(7968))
31
- sage.combinat.designs.MOLS_handbook_data.lower_bound(order)[source]¶
Return the best known lower bound on the number of MOLS of the given
order.The source of this information is Table 3.87 in the Handbook of Combinatorial Designs, 2nd edition, by Colbourn and Dinitz. A few updates have subsequently been provided on Jeff Dinitz’s website.
Parameters¶
- orderint
The order (also known as the side) for which you’d like a lower bound on the number of MOLS instances. In the language of the Handbook, this is
n, and it should be between 0 and 9999.
Returns¶
- int
A lower bound on the number of MOLS.
Raises¶
- IndexError
If you ask for an order that isn’t contained in the table.
Examples¶
There are no MOLS of order zero:
sage: from sage.combinat.designs import MOLS_handbook_data sage: MOLS_handbook_data.lower_bound(0) 0
>>> from sage.all import * >>> from sage.combinat.designs import MOLS_handbook_data >>> MOLS_handbook_data.lower_bound(Integer(0)) 0