Skip to content

Commit dfb21ce

Browse files
author
Matthias Koeppe
committed
sage.combinat: More # optional
1 parent 55a6eb9 commit dfb21ce

File tree

3 files changed

+90
-89
lines changed

3 files changed

+90
-89
lines changed

src/sage/combinat/designs/bibd.py

Lines changed: 44 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -92,17 +92,18 @@ def biplane(n, existence=False):
9292
(16,6,2)-Balanced Incomplete Block Design
9393
sage: designs.biplane(7, existence=True) # optional - sage.schemes
9494
True
95-
sage: designs.biplane(11)
95+
sage: designs.biplane(11) # optional - sage.schemes
9696
(79,13,2)-Balanced Incomplete Block Design
9797
9898
TESTS::
9999
100-
sage: designs.biplane(9)
100+
sage: designs.biplane(9) # optional - sage.libs.gap
101101
(56,11,2)-Balanced Incomplete Block Design
102102
103103
Check all known biplanes::
104104
105-
sage: [n for n in [0,1,2,3,4,7,9,11] if designs.biplane(n, existence=True) is True]
105+
sage: [n for n in [0,1,2,3,4,7,9,11] # optional - sage.schemes
106+
....: if designs.biplane(n, existence=True) is True]
106107
[0, 1, 2, 3, 4, 7, 9, 11]
107108
"""
108109
k = n+2
@@ -161,7 +162,7 @@ def balanced_incomplete_block_design(v, k, lambd=1, existence=False, use_LJCR=Fa
161162
(66,6,1)-Balanced Incomplete Block Design
162163
sage: B.blocks() # optional - internet
163164
[[0, 1, 2, 3, 4, 65], [0, 5, 22, 32, 38, 58], [0, 6, 21, 30, 43, 48], ...
164-
sage: designs.balanced_incomplete_block_design(216, 6, 1)
165+
sage: designs.balanced_incomplete_block_design(216, 6, 1) # optional - sage.libs.pari
165166
Traceback (most recent call last):
166167
...
167168
NotImplementedError: I don't know how to build a (216,6,1)-BIBD!
@@ -170,11 +171,11 @@ def balanced_incomplete_block_design(v, k, lambd=1, existence=False, use_LJCR=Fa
170171
171172
sage: designs.balanced_incomplete_block_design(85,5,existence=True)
172173
True
173-
sage: _ = designs.balanced_incomplete_block_design(85,5)
174+
sage: _ = designs.balanced_incomplete_block_design(85,5) # optional - sage.libs.pari
174175
175176
A BIBD from a Finite Projective Plane::
176177
177-
sage: _ = designs.balanced_incomplete_block_design(21,5)
178+
sage: _ = designs.balanced_incomplete_block_design(21,5) # optional - sage.schemes
178179
179180
Some trivial BIBD::
180181
@@ -185,29 +186,29 @@ def balanced_incomplete_block_design(v, k, lambd=1, existence=False, use_LJCR=Fa
185186
186187
Existence of BIBD with `k=3,4,5`::
187188
188-
sage: [v for v in range(50) if designs.balanced_incomplete_block_design(v,3,existence=True)]
189+
sage: [v for v in range(50) if designs.balanced_incomplete_block_design(v,3,existence=True)] # optional - sage.schemes
189190
[1, 3, 7, 9, 13, 15, 19, 21, 25, 27, 31, 33, 37, 39, 43, 45, 49]
190-
sage: [v for v in range(100) if designs.balanced_incomplete_block_design(v,4,existence=True)]
191+
sage: [v for v in range(100) if designs.balanced_incomplete_block_design(v,4,existence=True)] # optional - sage.schemes
191192
[1, 4, 13, 16, 25, 28, 37, 40, 49, 52, 61, 64, 73, 76, 85, 88, 97]
192-
sage: [v for v in range(150) if designs.balanced_incomplete_block_design(v,5,existence=True)]
193+
sage: [v for v in range(150) if designs.balanced_incomplete_block_design(v,5,existence=True)] # optional - sage.schemes
193194
[1, 5, 21, 25, 41, 45, 61, 65, 81, 85, 101, 105, 121, 125, 141, 145]
194195
195196
For `k > 5` there are currently very few constructions::
196197
197-
sage: [v for v in range(300) if designs.balanced_incomplete_block_design(v,6,existence=True) is True]
198+
sage: [v for v in range(300) if designs.balanced_incomplete_block_design(v,6,existence=True) is True] # optional - sage.schemes
198199
[1, 6, 31, 66, 76, 91, 96, 106, 111, 121, 126, 136, 141, 151, 156, 171, 181, 186, 196, 201, 211, 241, 271]
199-
sage: [v for v in range(300) if designs.balanced_incomplete_block_design(v,6,existence=True) is Unknown]
200+
sage: [v for v in range(300) if designs.balanced_incomplete_block_design(v,6,existence=True) is Unknown] # optional - sage.schemes
200201
[51, 61, 81, 166, 216, 226, 231, 246, 256, 261, 276, 286, 291]
201202
202203
Here are some constructions with `k \geq 7` and `v` a prime power::
203204
204-
sage: designs.balanced_incomplete_block_design(169,7)
205+
sage: designs.balanced_incomplete_block_design(169,7) # optional - sage.libs.pari
205206
(169,7,1)-Balanced Incomplete Block Design
206-
sage: designs.balanced_incomplete_block_design(617,8)
207+
sage: designs.balanced_incomplete_block_design(617,8) # optional - sage.libs.pari
207208
(617,8,1)-Balanced Incomplete Block Design
208-
sage: designs.balanced_incomplete_block_design(433,9)
209+
sage: designs.balanced_incomplete_block_design(433,9) # optional - sage.libs.pari
209210
(433,9,1)-Balanced Incomplete Block Design
210-
sage: designs.balanced_incomplete_block_design(1171,10)
211+
sage: designs.balanced_incomplete_block_design(1171,10) # optional - sage.libs.pari
211212
(1171,10,1)-Balanced Incomplete Block Design
212213
213214
And we know some nonexistence results::
@@ -219,22 +220,22 @@ def balanced_incomplete_block_design(v, k, lambd=1, existence=False, use_LJCR=Fa
219220
220221
sage: designs.balanced_incomplete_block_design(176, 50, 14, existence=True)
221222
True
222-
sage: designs.balanced_incomplete_block_design(64,28,12)
223+
sage: designs.balanced_incomplete_block_design(64,28,12) # optional - sage.libs.pari
223224
(64,28,12)-Balanced Incomplete Block Design
224-
sage: designs.balanced_incomplete_block_design(37,9,8)
225+
sage: designs.balanced_incomplete_block_design(37,9,8) # optional - sage.libs.pari
225226
(37,9,8)-Balanced Incomplete Block Design
226-
sage: designs.balanced_incomplete_block_design(15,7,3)
227+
sage: designs.balanced_incomplete_block_design(15,7,3) # optional - sage.schemes
227228
(15,7,3)-Balanced Incomplete Block Design
228229
229230
Some BIBDs from the recursive construction ::
230231
231-
sage: designs.balanced_incomplete_block_design(76,16,4)
232+
sage: designs.balanced_incomplete_block_design(76,16,4) # optional - sage.libs.pari
232233
(76,16,4)-Balanced Incomplete Block Design
233-
sage: designs.balanced_incomplete_block_design(10,4,2)
234+
sage: designs.balanced_incomplete_block_design(10,4,2) # optional - sage.libs.pari
234235
(10,4,2)-Balanced Incomplete Block Design
235-
sage: designs.balanced_incomplete_block_design(50,25,24)
236+
sage: designs.balanced_incomplete_block_design(50,25,24) # optional - sage.schemes
236237
(50,25,24)-Balanced Incomplete Block Design
237-
sage: designs.balanced_incomplete_block_design(29,15,15)
238+
sage: designs.balanced_incomplete_block_design(29,15,15) # optional - sage.libs.pari
238239
(29,15,15)-Balanced Incomplete Block Design
239240
"""
240241
# Trivial BIBD
@@ -577,16 +578,16 @@ def BIBD_from_TD(v,k,existence=False):
577578
Second construction::
578579
579580
sage: from sage.combinat.designs.bibd import BIBD_from_TD
580-
sage: BIBD_from_TD(21,5,existence=True)
581+
sage: BIBD_from_TD(21,5,existence=True) # optional - sage.schemes
581582
True
582-
sage: _ = BlockDesign(21,BIBD_from_TD(21,5))
583+
sage: _ = BlockDesign(21,BIBD_from_TD(21,5)) # optional - sage.schemes
583584
584585
Third construction::
585586
586587
sage: from sage.combinat.designs.bibd import BIBD_from_TD
587-
sage: BIBD_from_TD(85,5,existence=True)
588+
sage: BIBD_from_TD(85,5,existence=True) # optional - sage.schemes
588589
True
589-
sage: _ = BlockDesign(85,BIBD_from_TD(85,5))
590+
sage: _ = BlockDesign(85,BIBD_from_TD(85,5)) # optional - sage.schemes
590591
591592
No idea::
592593
@@ -960,7 +961,7 @@ def PBD_4_5_8_9_12(v, check=True):
960961
Check that :trac:`16476` is fixed::
961962
962963
sage: from sage.combinat.designs.bibd import PBD_4_5_8_9_12
963-
sage: for v in (0,1,4,5,8,9,12,13,16,17,20,21,24,25):
964+
sage: for v in (0,1,4,5,8,9,12,13,16,17,20,21,24,25): # optional - sage.schemes
964965
....: _ = PBD_4_5_8_9_12(v)
965966
"""
966967
if v % 4 not in [0, 1]:
@@ -1122,7 +1123,7 @@ def v_5_1_BIBD(v, check=True):
11221123
11231124
sage: from sage.combinat.designs.bibd import v_5_1_BIBD
11241125
sage: i = 0
1125-
sage: while i<200:
1126+
sage: while i<200: # optional - sage.libs.pari
11261127
....: i += 20
11271128
....: _ = v_5_1_BIBD(i+1)
11281129
....: _ = v_5_1_BIBD(i+5)
@@ -1131,7 +1132,7 @@ def v_5_1_BIBD(v, check=True):
11311132
11321133
Check that the needed difference families are there::
11331134
1134-
sage: for v in [21,41,61,81,141,161,281]:
1135+
sage: for v in [21,41,61,81,141,161,281]: # optional - sage.libs.pari
11351136
....: assert designs.difference_family(v,5,existence=True)
11361137
....: _ = designs.difference_family(v,5)
11371138
"""
@@ -1329,7 +1330,7 @@ def BIBD_from_arc_in_desarguesian_projective_plane(n,k,existence=False):
13291330
13301331
Other parameters::
13311332
1332-
sage: all(BIBD_from_arc_in_desarguesian_projective_plane(n,k,existence=True)
1333+
sage: all(BIBD_from_arc_in_desarguesian_projective_plane(n,k,existence=True) # optional - sage.libs.pari
13331334
....: for n,k in
13341335
....: [(120, 8), (232, 8), (456, 8), (904, 8), (496, 16),
13351336
....: (976, 16), (1936, 16), (2016, 32), (4000, 32), (8128, 64)])
@@ -1598,32 +1599,32 @@ def arc(self, s=2, solver=None, verbose=0, *, integrality_tolerance=1e-3):
15981599
Some other examples which are not maximal::
15991600
16001601
sage: B = designs.balanced_incomplete_block_design(25, 4)
1601-
sage: a2 = B.arc(2)
1602+
sage: a2 = B.arc(2) # optional - sage.numerical.mip
16021603
sage: r = (25-1)//(4-1)
1603-
sage: len(a2), 1 + r
1604+
sage: len(a2), 1 + r # optional - sage.numerical.mip
16041605
(8, 9)
1605-
sage: sa2 = set(a2)
1606-
sage: set(len(sa2.intersection(b)) for b in B.blocks())
1606+
sage: sa2 = set(a2) # optional - sage.numerical.mip
1607+
sage: set(len(sa2.intersection(b)) for b in B.blocks()) # optional - sage.numerical.mip
16071608
{0, 1, 2}
1608-
sage: B.trace(a2).is_t_design(2)
1609+
sage: B.trace(a2).is_t_design(2) # optional - sage.numerical.mip
16091610
False
16101611
1611-
sage: a3 = B.arc(3)
1612-
sage: len(a3), 1 + 2*r
1612+
sage: a3 = B.arc(3) # optional - sage.numerical.mip
1613+
sage: len(a3), 1 + 2*r # optional - sage.numerical.mip
16131614
(15, 17)
1614-
sage: sa3 = set(a3)
1615-
sage: set(len(sa3.intersection(b)) for b in B.blocks()) == set([0,3])
1615+
sage: sa3 = set(a3) # optional - sage.numerical.mip
1616+
sage: set(len(sa3.intersection(b)) for b in B.blocks()) == set([0,3]) # optional - sage.numerical.mip
16161617
False
1617-
sage: B.trace(a3).is_t_design(3)
1618+
sage: B.trace(a3).is_t_design(3) # optional - sage.numerical.mip
16181619
False
16191620
16201621
TESTS:
16211622
16221623
Test consistency with relabeling::
16231624
1624-
sage: b = designs.balanced_incomplete_block_design(7,3)
1625-
sage: b.relabel(list("abcdefg"))
1626-
sage: set(b.arc()).issubset(b.ground_set())
1625+
sage: b = designs.balanced_incomplete_block_design(7,3) # optional - sage.schemes
1626+
sage: b.relabel(list("abcdefg")) # optional - sage.schemes
1627+
sage: set(b.arc()).issubset(b.ground_set()) # optional - sage.schemes
16271628
True
16281629
"""
16291630
s = int(s)

src/sage/combinat/designs/database.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2430,7 +2430,7 @@ def QDM_57_9_1_1_8():
24302430
24312431
sage: from sage.combinat.designs.database import QDM_57_9_1_1_8
24322432
sage: from sage.combinat.designs.designs_pyx import is_quasi_difference_matrix
2433-
sage: G,M = QDM_57_9_1_1_8()
2433+
sage: G,M = QDM_57_9_1_1_8() # optional - sage.schemes
24342434
sage: is_quasi_difference_matrix(M,G,9,1,1,8) # optional - sage.schemes
24352435
True
24362436
"""

0 commit comments

Comments
 (0)