@@ -92,17 +92,18 @@ def biplane(n, existence=False):
92
92
(16,6,2)-Balanced Incomplete Block Design
93
93
sage: designs.biplane(7, existence=True) # optional - sage.schemes
94
94
True
95
- sage: designs.biplane(11)
95
+ sage: designs.biplane(11) # optional - sage.schemes
96
96
(79,13,2)-Balanced Incomplete Block Design
97
97
98
98
TESTS::
99
99
100
- sage: designs.biplane(9)
100
+ sage: designs.biplane(9) # optional - sage.libs.gap
101
101
(56,11,2)-Balanced Incomplete Block Design
102
102
103
103
Check all known biplanes::
104
104
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]
106
107
[0, 1, 2, 3, 4, 7, 9, 11]
107
108
"""
108
109
k = n + 2
@@ -161,7 +162,7 @@ def balanced_incomplete_block_design(v, k, lambd=1, existence=False, use_LJCR=Fa
161
162
(66,6,1)-Balanced Incomplete Block Design
162
163
sage: B.blocks() # optional - internet
163
164
[[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
165
166
Traceback (most recent call last):
166
167
...
167
168
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
170
171
171
172
sage: designs.balanced_incomplete_block_design(85,5,existence=True)
172
173
True
173
- sage: _ = designs.balanced_incomplete_block_design(85,5)
174
+ sage: _ = designs.balanced_incomplete_block_design(85,5) # optional - sage.libs.pari
174
175
175
176
A BIBD from a Finite Projective Plane::
176
177
177
- sage: _ = designs.balanced_incomplete_block_design(21,5)
178
+ sage: _ = designs.balanced_incomplete_block_design(21,5) # optional - sage.schemes
178
179
179
180
Some trivial BIBD::
180
181
@@ -185,29 +186,29 @@ def balanced_incomplete_block_design(v, k, lambd=1, existence=False, use_LJCR=Fa
185
186
186
187
Existence of BIBD with `k=3,4,5`::
187
188
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
189
190
[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
191
192
[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
193
194
[1, 5, 21, 25, 41, 45, 61, 65, 81, 85, 101, 105, 121, 125, 141, 145]
194
195
195
196
For `k > 5` there are currently very few constructions::
196
197
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
198
199
[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
200
201
[51, 61, 81, 166, 216, 226, 231, 246, 256, 261, 276, 286, 291]
201
202
202
203
Here are some constructions with `k \geq 7` and `v` a prime power::
203
204
204
- sage: designs.balanced_incomplete_block_design(169,7)
205
+ sage: designs.balanced_incomplete_block_design(169,7) # optional - sage.libs.pari
205
206
(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
207
208
(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
209
210
(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
211
212
(1171,10,1)-Balanced Incomplete Block Design
212
213
213
214
And we know some nonexistence results::
@@ -219,22 +220,22 @@ def balanced_incomplete_block_design(v, k, lambd=1, existence=False, use_LJCR=Fa
219
220
220
221
sage: designs.balanced_incomplete_block_design(176, 50, 14, existence=True)
221
222
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
223
224
(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
225
226
(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
227
228
(15,7,3)-Balanced Incomplete Block Design
228
229
229
230
Some BIBDs from the recursive construction ::
230
231
231
- sage: designs.balanced_incomplete_block_design(76,16,4)
232
+ sage: designs.balanced_incomplete_block_design(76,16,4) # optional - sage.libs.pari
232
233
(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
234
235
(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
236
237
(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
238
239
(29,15,15)-Balanced Incomplete Block Design
239
240
"""
240
241
# Trivial BIBD
@@ -577,16 +578,16 @@ def BIBD_from_TD(v,k,existence=False):
577
578
Second construction::
578
579
579
580
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
581
582
True
582
- sage: _ = BlockDesign(21,BIBD_from_TD(21,5))
583
+ sage: _ = BlockDesign(21,BIBD_from_TD(21,5)) # optional - sage.schemes
583
584
584
585
Third construction::
585
586
586
587
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
588
589
True
589
- sage: _ = BlockDesign(85,BIBD_from_TD(85,5))
590
+ sage: _ = BlockDesign(85,BIBD_from_TD(85,5)) # optional - sage.schemes
590
591
591
592
No idea::
592
593
@@ -960,7 +961,7 @@ def PBD_4_5_8_9_12(v, check=True):
960
961
Check that :trac:`16476` is fixed::
961
962
962
963
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
964
965
....: _ = PBD_4_5_8_9_12(v)
965
966
"""
966
967
if v % 4 not in [0 , 1 ]:
@@ -1122,7 +1123,7 @@ def v_5_1_BIBD(v, check=True):
1122
1123
1123
1124
sage: from sage.combinat.designs.bibd import v_5_1_BIBD
1124
1125
sage: i = 0
1125
- sage: while i<200:
1126
+ sage: while i<200: # optional - sage.libs.pari
1126
1127
....: i += 20
1127
1128
....: _ = v_5_1_BIBD(i+1)
1128
1129
....: _ = v_5_1_BIBD(i+5)
@@ -1131,7 +1132,7 @@ def v_5_1_BIBD(v, check=True):
1131
1132
1132
1133
Check that the needed difference families are there::
1133
1134
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
1135
1136
....: assert designs.difference_family(v,5,existence=True)
1136
1137
....: _ = designs.difference_family(v,5)
1137
1138
"""
@@ -1329,7 +1330,7 @@ def BIBD_from_arc_in_desarguesian_projective_plane(n,k,existence=False):
1329
1330
1330
1331
Other parameters::
1331
1332
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
1333
1334
....: for n,k in
1334
1335
....: [(120, 8), (232, 8), (456, 8), (904, 8), (496, 16),
1335
1336
....: (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):
1598
1599
Some other examples which are not maximal::
1599
1600
1600
1601
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
1602
1603
sage: r = (25-1)//(4-1)
1603
- sage: len(a2), 1 + r
1604
+ sage: len(a2), 1 + r # optional - sage.numerical.mip
1604
1605
(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
1607
1608
{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
1609
1610
False
1610
1611
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
1613
1614
(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
1616
1617
False
1617
- sage: B.trace(a3).is_t_design(3)
1618
+ sage: B.trace(a3).is_t_design(3) # optional - sage.numerical.mip
1618
1619
False
1619
1620
1620
1621
TESTS:
1621
1622
1622
1623
Test consistency with relabeling::
1623
1624
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
1627
1628
True
1628
1629
"""
1629
1630
s = int (s )
0 commit comments