From 845de7ad889f88f1e5a32baa757fd6a6939a2bc7 Mon Sep 17 00:00:00 2001 From: Nathann Cohen Date: Sat, 26 Jul 2014 09:33:06 +0200 Subject: [PATCH] trac #16716: OA for n=262,950 --- src/sage/combinat/designs/database.py | 54 ++++++++++++++++++++++ src/sage/combinat/designs/latin_squares.py | 4 +- 2 files changed, 56 insertions(+), 2 deletions(-) diff --git a/src/sage/combinat/designs/database.py b/src/sage/combinat/designs/database.py index eee5b5ccc44..f1685e2345b 100644 --- a/src/sage/combinat/designs/database.py +++ b/src/sage/combinat/designs/database.py @@ -64,6 +64,7 @@ :func:`OA(16,208) `, :func:`OA(12,210) `, :func:`OA(15,224) `, + :func:`OA(10,262) `, :func:`OA(18,273) `, :func:`OA(12,276) `, :func:`OA(12,298) `, @@ -76,6 +77,7 @@ :func:`OA(11,640) `, :func:`OA(10,796) `, :func:`OA(15,896) `, + :func:`OA(14,950) `, :func:`OA(33,993) `, :func:`OA(10,1046) `, :func:`OA(10,1059) `, @@ -2731,6 +2733,31 @@ def OA_15_224(): return _helper_function_when_n_is_prime_times_power_of_2(15,224,zip(*A),Y) +def OA_10_262(): + r""" + Returns an OA(10,262) + + Given by Julian R. Abel. + + .. SEEALSO:: + + :func:`sage.combinat.designs.orthogonal_arrays.OA_from_Vmt` + + EXAMPLES:: + + sage: from sage.combinat.designs.designs_pyx import is_orthogonal_array + sage: from sage.combinat.designs.database import OA_10_262 + sage: OA = OA_10_262() + sage: print is_orthogonal_array(OA,10,262,2) + True + + The design is available from the general constructor:: + + sage: designs.orthogonal_array(10,262,existence=True) + True + """ + return OA_from_Vmt(8,29,[0,1,4,11,94,60,85,16,198]) + def OA_18_273(): r""" Returns an OA(18,273) @@ -3235,6 +3262,31 @@ def OA_15_896(): return _helper_function_when_n_is_prime_times_power_of_2(15,896,zip(*A),Y) +def OA_14_950(): + r""" + Returns an OA(14,950) + + Given by Julian R. Abel. + + .. SEEALSO:: + + :func:`sage.combinat.designs.orthogonal_arrays.OA_from_Vmt` + + EXAMPLES:: + + sage: from sage.combinat.designs.designs_pyx import is_orthogonal_array + sage: from sage.combinat.designs.database import OA_14_950 + sage: OA = OA_14_950() # not tested -- around 10s + sage: print is_orthogonal_array(OA,14,950,2) # not tested + True + + The design is available from the general constructor:: + + sage: designs.orthogonal_array(14,950,existence=True) + True + """ + return OA_from_Vmt(12,73,[0, 1, 607, 719, 837, 496, 240, 645, 184, 829, 451, 830, 770]) + def OA_33_993(): r""" Returns an OA(33,993) @@ -3490,6 +3542,7 @@ def _helper_function_when_n_is_prime_times_power_of_2(k,n,A,Y): 208 : (16 , OA_16_208), 210 : (12 , OA_12_210), 224 : (15 , OA_15_224), + 262 : (10 , OA_10_262), 273 : (18 , OA_18_273), 276 : (12 , OA_12_276), 298 : (12 , OA_12_298), @@ -3502,6 +3555,7 @@ def _helper_function_when_n_is_prime_times_power_of_2(k,n,A,Y): 640 : (11 , OA_11_640), 796 : (10 , OA_10_796), 896 : (15 , OA_15_896), + 950 : (14 , OA_14_950), 993 : (33 , OA_33_993), 1046: (10, OA_10_1046), 1059: (10, OA_10_1059), diff --git a/src/sage/combinat/designs/latin_squares.py b/src/sage/combinat/designs/latin_squares.py index 0dd0942c686..b1210a2f161 100644 --- a/src/sage/combinat/designs/latin_squares.py +++ b/src/sage/combinat/designs/latin_squares.py @@ -36,7 +36,7 @@ 200| 7 7 6 7 6 7 6 8 14 11 10 210 6 7 6 7 7 8 6 10 220| 6 12 6 222 13 8 6 226 6 228 6 7 7 232 6 7 6 7 6 238 240| 7 240 6 242 6 7 6 12 7 7 6 250 6 10 7 7 255 256 6 12 - 260| 6 8 7 262 7 8 7 10 7 268 7 270 15 16 6 13 10 276 6 9 + 260| 6 8 8 262 7 8 7 10 7 268 7 270 15 16 6 13 10 276 6 9 280| 7 280 6 282 6 12 6 7 15 288 6 6 6 292 6 6 7 10 10 12 300| 7 7 7 7 15 15 6 306 7 7 7 310 7 312 7 10 7 316 7 10 320| 15 15 6 16 8 12 6 7 7 9 6 330 7 8 7 6 7 336 6 7 @@ -74,7 +74,7 @@ 200| - - 220| 240| - - - 260| - + 260| 280| 300| 320| -