@@ -320,15 +320,15 @@ def DesarguesianProjectivePlaneDesign(n, point_coordinates=True, check=True):
320
320
321
321
EXAMPLES::
322
322
323
- sage: designs.DesarguesianProjectivePlaneDesign(2)
323
+ sage: designs.DesarguesianProjectivePlaneDesign(2) # optional - sage.rings.finite_rings
324
324
(7,3,1)-Balanced Incomplete Block Design
325
- sage: designs.DesarguesianProjectivePlaneDesign(3)
325
+ sage: designs.DesarguesianProjectivePlaneDesign(3) # optional - sage.rings.finite_rings
326
326
(13,4,1)-Balanced Incomplete Block Design
327
- sage: designs.DesarguesianProjectivePlaneDesign(4)
327
+ sage: designs.DesarguesianProjectivePlaneDesign(4) # optional - sage.rings.finite_rings
328
328
(21,5,1)-Balanced Incomplete Block Design
329
- sage: designs.DesarguesianProjectivePlaneDesign(5)
329
+ sage: designs.DesarguesianProjectivePlaneDesign(5) # optional - sage.rings.finite_rings
330
330
(31,6,1)-Balanced Incomplete Block Design
331
- sage: designs.DesarguesianProjectivePlaneDesign(6)
331
+ sage: designs.DesarguesianProjectivePlaneDesign(6) # optional - sage.rings.finite_rings
332
332
Traceback (most recent call last):
333
333
...
334
334
ValueError: the order of a finite field must be a prime power
@@ -402,20 +402,20 @@ def q3_minus_one_matrix(K):
402
402
EXAMPLES::
403
403
404
404
sage: from sage.combinat.designs.block_design import q3_minus_one_matrix
405
- sage: m = q3_minus_one_matrix(GF(3))
406
- sage: m.multiplicative_order() == 3**3 - 1
405
+ sage: m = q3_minus_one_matrix(GF(3)) # optional - sage.rings.finite_rings
406
+ sage: m.multiplicative_order() == 3**3 - 1 # optional - sage.rings.finite_rings
407
407
True
408
408
409
- sage: m = q3_minus_one_matrix(GF(4, 'a'))
410
- sage: m.multiplicative_order() == 4**3 - 1
409
+ sage: m = q3_minus_one_matrix(GF(4, 'a')) # optional - sage.rings.finite_rings
410
+ sage: m.multiplicative_order() == 4**3 - 1 # optional - sage.rings.finite_rings
411
411
True
412
412
413
- sage: m = q3_minus_one_matrix(GF(5))
414
- sage: m.multiplicative_order() == 5**3 - 1
413
+ sage: m = q3_minus_one_matrix(GF(5)) # optional - sage.rings.finite_rings
414
+ sage: m.multiplicative_order() == 5**3 - 1 # optional - sage.rings.finite_rings
415
415
True
416
416
417
- sage: m = q3_minus_one_matrix(GF(9, 'a'))
418
- sage: m.multiplicative_order() == 9**3 - 1
417
+ sage: m = q3_minus_one_matrix(GF(9, 'a')) # optional - sage.rings.finite_rings
418
+ sage: m.multiplicative_order() == 9**3 - 1 # optional - sage.rings.finite_rings
419
419
True
420
420
"""
421
421
q = K .cardinality ()
@@ -452,24 +452,24 @@ def normalize_hughes_plane_point(p, q):
452
452
453
453
INPUT:
454
454
455
- - ``p`` -- point with the coordinates ` (x,y,z)` (a list, a vector, a tuple...)
455
+ - ``p`` -- point with the coordinates (x,y,z) (a list, a vector, a tuple...)
456
456
457
457
- ``q`` -- cardinality of the underlying finite field
458
458
459
459
EXAMPLES::
460
460
461
461
sage: from sage.combinat.designs.block_design import normalize_hughes_plane_point
462
- sage: K = FiniteField(9,'x')
463
- sage: x = K.gen()
464
- sage: normalize_hughes_plane_point((x, x + 1, x), 9)
462
+ sage: K = FiniteField(9,'x') # optional - sage.rings.finite_rings
463
+ sage: x = K.gen() # optional - sage.rings.finite_rings
464
+ sage: normalize_hughes_plane_point((x, x+ 1, x), 9) # optional - sage.rings.finite_rings
465
465
(1, x, 1)
466
- sage: normalize_hughes_plane_point(vector((x,x,x)), 9)
466
+ sage: normalize_hughes_plane_point(vector((x,x,x)), 9) # optional - sage.rings.finite_rings
467
467
(1, 1, 1)
468
- sage: zero = K.zero()
469
- sage: normalize_hughes_plane_point((2*x + 2, zero, zero), 9)
468
+ sage: zero = K.zero() # optional - sage.rings.finite_rings
469
+ sage: normalize_hughes_plane_point((2*x+ 2, zero, zero), 9) # optional - sage.rings.finite_rings
470
470
(1, 0, 0)
471
- sage: one = K.one()
472
- sage: normalize_hughes_plane_point((2*x, one, zero), 9)
471
+ sage: one = K.one() # optional - sage.rings.finite_rings
472
+ sage: normalize_hughes_plane_point((2*x, one, zero), 9) # optional - sage.rings.finite_rings
473
473
(2*x, 1, 0)
474
474
"""
475
475
for i in [2 ,1 ,0 ]:
@@ -528,7 +528,7 @@ def HughesPlane(q2, check=True):
528
528
529
529
EXAMPLES::
530
530
531
- sage: H = designs.HughesPlane(9); H
531
+ sage: H = designs.HughesPlane(9); H # optional - sage.rings.finite_rings
532
532
(91,10,1)-Balanced Incomplete Block Design
533
533
534
534
We prove in the following computations that the Desarguesian plane ``H`` is
@@ -537,45 +537,45 @@ def HughesPlane(q2, check=True):
537
537
`D_{1,10} \cap D_{70,59}` and `D_{10,0} \cap D_{59,57}` are on the same line
538
538
while `D_{0,70}`, `D_{1,59}` and `D_{10,57}` are not concurrent::
539
539
540
- sage: blocks = H.blocks()
541
- sage: line = lambda p,q: next(b for b in blocks if p in b and q in b)
540
+ sage: blocks = H.blocks() # optional - sage.rings.finite_rings
541
+ sage: line = lambda p,q: next(b for b in blocks if p in b and q in b) # optional - sage.rings.finite_rings
542
542
543
- sage: b_0_1 = line(0, 1)
544
- sage: b_1_10 = line(1, 10)
545
- sage: b_10_0 = line(10, 0)
546
- sage: b_57_70 = line(57, 70)
547
- sage: b_70_59 = line(70, 59)
548
- sage: b_59_57 = line(59, 57)
543
+ sage: b_0_1 = line(0, 1) # optional - sage.rings.finite_rings
544
+ sage: b_1_10 = line(1, 10) # optional - sage.rings.finite_rings
545
+ sage: b_10_0 = line(10, 0) # optional - sage.rings.finite_rings
546
+ sage: b_57_70 = line(57, 70) # optional - sage.rings.finite_rings
547
+ sage: b_70_59 = line(70, 59) # optional - sage.rings.finite_rings
548
+ sage: b_59_57 = line(59, 57) # optional - sage.rings.finite_rings
549
549
550
- sage: set(b_0_1).intersection(b_57_70)
550
+ sage: set(b_0_1).intersection(b_57_70) # optional - sage.rings.finite_rings
551
551
{2}
552
- sage: set(b_1_10).intersection(b_70_59)
552
+ sage: set(b_1_10).intersection(b_70_59) # optional - sage.rings.finite_rings
553
553
{73}
554
- sage: set(b_10_0).intersection(b_59_57)
554
+ sage: set(b_10_0).intersection(b_59_57) # optional - sage.rings.finite_rings
555
555
{60}
556
556
557
- sage: line(2, 73) == line(73, 60)
557
+ sage: line(2, 73) == line(73, 60) # optional - sage.rings.finite_rings
558
558
True
559
559
560
- sage: b_0_57 = line(0, 57)
561
- sage: b_1_70 = line(1, 70)
562
- sage: b_10_59 = line(10, 59)
560
+ sage: b_0_57 = line(0, 57) # optional - sage.rings.finite_rings
561
+ sage: b_1_70 = line(1, 70) # optional - sage.rings.finite_rings
562
+ sage: b_10_59 = line(10, 59) # optional - sage.rings.finite_rings
563
563
564
- sage: p = set(b_0_57).intersection(b_1_70)
565
- sage: q = set(b_1_70).intersection(b_10_59)
566
- sage: p == q
564
+ sage: p = set(b_0_57).intersection(b_1_70) # optional - sage.rings.finite_rings
565
+ sage: q = set(b_1_70).intersection(b_10_59) # optional - sage.rings.finite_rings
566
+ sage: p == q # optional - sage.rings.finite_rings
567
567
False
568
568
569
569
TESTS:
570
570
571
571
Some wrong input::
572
572
573
- sage: designs.HughesPlane(5)
573
+ sage: designs.HughesPlane(5) # optional - sage.rings.finite_rings
574
574
Traceback (most recent call last):
575
575
...
576
576
EmptySetError: No Hughes plane of non-square order exists.
577
577
578
- sage: designs.HughesPlane(16)
578
+ sage: designs.HughesPlane(16) # optional - sage.rings.finite_rings
579
579
Traceback (most recent call last):
580
580
...
581
581
EmptySetError: No Hughes plane of even order exists.
@@ -646,11 +646,13 @@ def projective_plane_to_OA(pplane, pt=None, check=True):
646
646
EXAMPLES::
647
647
648
648
sage: from sage.combinat.designs.block_design import projective_plane_to_OA
649
- sage: p2 = designs.DesarguesianProjectivePlaneDesign(2, point_coordinates=False)
650
- sage: projective_plane_to_OA(p2)
649
+ sage: p2 = designs.DesarguesianProjectivePlaneDesign(2, # optional - sage.rings.finite_rings
650
+ ....: point_coordinates=False)
651
+ sage: projective_plane_to_OA(p2) # optional - sage.rings.finite_rings
651
652
[[0, 0, 0], [0, 1, 1], [1, 0, 1], [1, 1, 0]]
652
- sage: p3 = designs.DesarguesianProjectivePlaneDesign(3, point_coordinates=False)
653
- sage: projective_plane_to_OA(p3)
653
+ sage: p3 = designs.DesarguesianProjectivePlaneDesign(3, # optional - sage.rings.finite_rings
654
+ ....: point_coordinates=False)
655
+ sage: projective_plane_to_OA(p3) # optional - sage.rings.finite_rings
654
656
[[0, 0, 0, 0],
655
657
[0, 1, 2, 1],
656
658
[0, 2, 1, 2],
@@ -661,10 +663,11 @@ def projective_plane_to_OA(pplane, pt=None, check=True):
661
663
[2, 1, 0, 2],
662
664
[2, 2, 2, 0]]
663
665
664
- sage: pp = designs.DesarguesianProjectivePlaneDesign(16, point_coordinates=False)
665
- sage: _ = projective_plane_to_OA(pp, pt=0)
666
- sage: _ = projective_plane_to_OA(pp, pt=3)
667
- sage: _ = projective_plane_to_OA(pp, pt=7)
666
+ sage: pp = designs.DesarguesianProjectivePlaneDesign(16, # optional - sage.rings.finite_rings
667
+ ....: point_coordinates=False)
668
+ sage: _ = projective_plane_to_OA(pp, pt=0) # optional - sage.rings.finite_rings
669
+ sage: _ = projective_plane_to_OA(pp, pt=3) # optional - sage.rings.finite_rings
670
+ sage: _ = projective_plane_to_OA(pp, pt=7) # optional - sage.rings.finite_rings
668
671
"""
669
672
from .bibd import _relabel_bibd
670
673
pplane = pplane .blocks ()
@@ -815,28 +818,28 @@ def AffineGeometryDesign(n, d, F, point_coordinates=True, check=True):
815
818
816
819
EXAMPLES::
817
820
818
- sage: BD = designs.AffineGeometryDesign(3, 1, GF(2))
819
- sage: BD.is_t_design(return_parameters=True)
821
+ sage: BD = designs.AffineGeometryDesign(3, 1, GF(2)) # optional - sage.rings.finite_rings
822
+ sage: BD.is_t_design(return_parameters=True) # optional - sage.rings.finite_rings
820
823
(True, (2, 8, 2, 1))
821
- sage: BD = designs.AffineGeometryDesign(3, 2, GF(4))
822
- sage: BD.is_t_design(return_parameters=True)
824
+ sage: BD = designs.AffineGeometryDesign(3, 2, GF(4)) # optional - sage.rings.finite_rings
825
+ sage: BD.is_t_design(return_parameters=True) # optional - sage.rings.finite_rings
823
826
(True, (2, 64, 16, 5))
824
- sage: BD = designs.AffineGeometryDesign(4, 2, GF(3))
825
- sage: BD.is_t_design(return_parameters=True)
827
+ sage: BD = designs.AffineGeometryDesign(4, 2, GF(3)) # optional - sage.rings.finite_rings
828
+ sage: BD.is_t_design(return_parameters=True) # optional - sage.rings.finite_rings
826
829
(True, (2, 81, 9, 13))
827
830
828
831
With ``F`` an integer instead of a finite field::
829
832
830
- sage: BD = designs.AffineGeometryDesign(3, 2, 4)
831
- sage: BD.is_t_design(return_parameters=True)
833
+ sage: BD = designs.AffineGeometryDesign(3, 2, 4) # optional - sage.rings.finite_rings
834
+ sage: BD.is_t_design(return_parameters=True) # optional - sage.rings.finite_rings
832
835
(True, (2, 64, 16, 5))
833
836
834
837
Testing the option ``point_coordinates``::
835
838
836
- sage: designs.AffineGeometryDesign(3, 1, GF(2),
839
+ sage: designs.AffineGeometryDesign(3, 1, GF(2), # optional - sage.rings.finite_rings
837
840
....: point_coordinates=True).blocks()[0]
838
841
[(0, 0, 0), (0, 0, 1)]
839
- sage: designs.AffineGeometryDesign(3, 1, GF(2),
842
+ sage: designs.AffineGeometryDesign(3, 1, GF(2), # optional - sage.rings.finite_rings
840
843
....: point_coordinates=False).blocks()[0]
841
844
[0, 1]
842
845
"""
0 commit comments