Skip to content
1,061 changes: 531 additions & 530 deletions src/sage/algebras/quantum_groups/quantum_group_gap.py

Large diffs are not rendered by default.

12 changes: 6 additions & 6 deletions src/sage/coding/code_bounds.py
Original file line number Diff line number Diff line change
Expand Up @@ -255,11 +255,11 @@ def codesize_upper_bound(n, d, q, algorithm=None):
93
sage: codes.bounds.codesize_upper_bound(24,8,2,algorithm="LP")
4096
sage: codes.bounds.codesize_upper_bound(10,3,2,algorithm="gap") # optional - gap_packages (Guava package)
sage: codes.bounds.codesize_upper_bound(10,3,2,algorithm="gap") # optional - gap_package_guava
85
sage: codes.bounds.codesize_upper_bound(11,3,4,algorithm=None)
123361
sage: codes.bounds.codesize_upper_bound(11,3,4,algorithm="gap") # optional - gap_packages (Guava package)
sage: codes.bounds.codesize_upper_bound(11,3,4,algorithm="gap") # optional - gap_package_guava
123361
sage: codes.bounds.codesize_upper_bound(11,3,4,algorithm="LP")
109226
Expand All @@ -270,7 +270,7 @@ def codesize_upper_bound(n, d, q, algorithm=None):

sage: codes.bounds.codesize_upper_bound(19,10,2)
20
sage: codes.bounds.codesize_upper_bound(19,10,2,algorithm="gap") # optional - gap_packages (Guava package)
sage: codes.bounds.codesize_upper_bound(19,10,2,algorithm="gap") # optional - gap_package_guava
20

Meaningless parameters are rejected::
Expand Down Expand Up @@ -379,7 +379,7 @@ def plotkin_upper_bound(n,q,d, algorithm=None):

sage: codes.bounds.plotkin_upper_bound(10,2,3)
192
sage: codes.bounds.plotkin_upper_bound(10,2,3,algorithm="gap") # optional - gap_packages (Guava package)
sage: codes.bounds.plotkin_upper_bound(10,2,3,algorithm="gap") # optional - gap_package_guava
192
"""
_check_n_q_d(n, q, d, field_based=False)
Expand Down Expand Up @@ -430,7 +430,7 @@ def griesmer_upper_bound(n,q,d,algorithm=None):

sage: codes.bounds.griesmer_upper_bound(10,2,3)
128
sage: codes.bounds.griesmer_upper_bound(10,2,3,algorithm="gap") # optional - gap_packages (Guava package)
sage: codes.bounds.griesmer_upper_bound(10,2,3,algorithm="gap") # optional - gap_package_guava
128

TESTS::
Expand Down Expand Up @@ -471,7 +471,7 @@ def elias_upper_bound(n,q,d,algorithm=None):

sage: codes.bounds.elias_upper_bound(10,2,3)
232
sage: codes.bounds.elias_upper_bound(10,2,3,algorithm="gap") # optional - gap_packages (Guava package)
sage: codes.bounds.elias_upper_bound(10,2,3,algorithm="gap") # optional - gap_package_guava
232
"""
_check_n_q_d(n, q, d, field_based=False)
Expand Down
4 changes: 2 additions & 2 deletions src/sage/coding/code_constructions.py
Original file line number Diff line number Diff line change
Expand Up @@ -731,7 +731,7 @@ def ToricCode(P,F):
[36, 5] linear code over GF(7)
sage: C.minimum_distance()
24
sage: C.minimum_distance(algorithm="guava") # optional - gap_packages (Guava package)
sage: C.minimum_distance(algorithm="guava") # optional - gap_package_guava
...
24
sage: C = codes.ToricCode([[-2,-2],[-1,-2],[-1,-1],[-1,0],
Expand All @@ -740,7 +740,7 @@ def ToricCode(P,F):
[16, 9] linear code over GF(5)
sage: C.minimum_distance()
6
sage: C.minimum_distance(algorithm="guava") # optional - gap_packages (Guava package)
sage: C.minimum_distance(algorithm="guava") # optional - gap_package_guava
6
sage: C = codes.ToricCode([[0,0],[1,1],[1,2],[1,3],[1,4],[2,1],
....: [2,2],[2,3],[3,1],[3,2],[4,1]], GF(8,"a"))
Expand Down
10 changes: 5 additions & 5 deletions src/sage/coding/databases.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,11 @@ def best_linear_code_in_guava(n, k, F):

EXAMPLES::

sage: codes.databases.best_linear_code_in_guava(10,5,GF(2)) # long time; optional - gap_packages (Guava package)
sage: codes.databases.best_linear_code_in_guava(10,5,GF(2)) # long time; optional - gap_package_guava
[10, 5] linear code over GF(2)
sage: libgap.LoadPackage('guava') # long time; optional - gap_packages (Guava package)
sage: libgap.LoadPackage('guava') # long time; optional - gap_package_guava
...
sage: libgap.BestKnownLinearCode(10,5,libgap.GF(2)) # long time; optional - gap_packages (Guava package)
sage: libgap.BestKnownLinearCode(10,5,libgap.GF(2)) # long time; optional - gap_package_guava
a linear [10,5,4]2..4 shortened code

This means that the best possible binary linear code of length 10 and
Expand Down Expand Up @@ -86,8 +86,8 @@ def bounds_on_minimum_distance_in_guava(n, k, F):

EXAMPLES::

sage: gap_rec = codes.databases.bounds_on_minimum_distance_in_guava(10,5,GF(2)) # optional - gap_packages (Guava package)
sage: gap_rec.Display() # optional - gap_packages (Guava package)
sage: gap_rec = codes.databases.bounds_on_minimum_distance_in_guava(10,5,GF(2)) # optional - gap_package_guava
sage: gap_rec.Display() # optional - gap_package_guava
rec(
construction := [ <Operation "ShortenedCode">,
[ [ <Operation "UUVCode">,
Expand Down
6 changes: 3 additions & 3 deletions src/sage/coding/guava.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ def QuasiQuadraticResidueCode(p):

EXAMPLES::

sage: C = codes.QuasiQuadraticResidueCode(11); C # optional - gap_packages (Guava package)
sage: C = codes.QuasiQuadraticResidueCode(11); C # optional - gap_package_guava
[22, 11] linear code over GF(2)

These are self-orthogonal in general and self-dual when `p \equiv 3 \pmod 4`.
Expand Down Expand Up @@ -93,9 +93,9 @@ def RandomLinearCodeGuava(n, k, F):

EXAMPLES::

sage: C = codes.RandomLinearCodeGuava(30,15,GF(2)); C # optional - gap_packages (Guava package)
sage: C = codes.RandomLinearCodeGuava(30,15,GF(2)); C # optional - gap_package_guava
[30, 15] linear code over GF(2)
sage: C = codes.RandomLinearCodeGuava(10,5,GF(4,'a')); C # optional - gap_packages (Guava package)
sage: C = codes.RandomLinearCodeGuava(10,5,GF(4,'a')); C # optional - gap_package_guava
[10, 5] linear code over GF(4)

AUTHOR: David Joyner (11-2005)
Expand Down
45 changes: 25 additions & 20 deletions src/sage/coding/linear_code.py
Original file line number Diff line number Diff line change
Expand Up @@ -410,7 +410,7 @@ def __init__(self, base_field, length, default_encoder_name, default_decoder_nam
1
sage: C.is_self_orthogonal()
False
sage: print(C.divisor()) #long time
sage: print(C.divisor()) #long time
1
"""
from sage.coding.information_set_decoder import LinearCodeInformationSetDecoder
Expand Down Expand Up @@ -910,12 +910,12 @@ def covering_radius(self):
EXAMPLES::

sage: C = codes.HammingCode(GF(2), 5)
sage: C.covering_radius() # optional - gap_packages (Guava package)
sage: C.covering_radius() # optional - gap_package_guava
...
1

sage: C = codes.random_linear_code(GF(263), 5, 1)
sage: C.covering_radius() # optional - gap_packages (Guava package)
sage: C.covering_radius() # optional - gap_package_guava
Traceback (most recent call last):
...
NotImplementedError: the GAP algorithm that Sage is using
Expand Down Expand Up @@ -1374,7 +1374,7 @@ def minimum_distance(self, algorithm=None):
sage: C.minimum_distance(algorithm="gap") # optional - sage.libs.gap
3
sage: libgap.SetAllInfoLevels(0) # to suppress extra info messages # optional - sage.libs.gap
sage: C.minimum_distance(algorithm="guava") # optional - gap_packages (Guava package)
sage: C.minimum_distance(algorithm="guava") # optional - gap_package_guava
...
3

Expand Down Expand Up @@ -1612,13 +1612,13 @@ def permutation_automorphism_group(self, algorithm="partition"):
[5, 3] Hamming Code over GF(4)
sage: G = C.permutation_automorphism_group(algorithm="partition"); G # optional - sage.groups
Permutation Group with generators [(1,3)(4,5), (1,4)(3,5)]
sage: GG = C.permutation_automorphism_group(algorithm="codecan") # long time, optional - sage.groups
sage: GG == G # long time, optional - sage.groups
sage: GG = C.permutation_automorphism_group(algorithm="codecan") # long time, optional - sage.groups
sage: GG == G # long time, optional - sage.groups
True
sage: C.permutation_automorphism_group(algorithm="gap") # optional - gap_packages (Guava package) sage.groups
sage: C.permutation_automorphism_group(algorithm="gap") # optional - gap_package_guava sage.groups
Permutation Group with generators [(1,3)(4,5), (1,4)(3,5)]
sage: C = codes.GolayCode(GF(3), True)
sage: C.permutation_automorphism_group(algorithm="gap") # optional - gap_packages (Guava package) sage.groups
sage: C.permutation_automorphism_group(algorithm="gap") # optional - gap_package_guava sage.groups
Permutation Group with generators
[(5,7)(6,11)(8,9)(10,12), (4,6,11)(5,8,12)(7,10,9), (3,4)(6,8)(9,11)(10,12),
(2,3)(6,11)(8,12)(9,10), (1,2)(5,10)(7,12)(8,9)]
Expand Down Expand Up @@ -1839,23 +1839,25 @@ def weight_distribution(self, algorithm=None):
[1, 0, 0, 30, 15, 18]
sage: C = codes.HammingCode(GF(2), 3); C
[7, 4] Hamming Code over GF(2)
sage: C.weight_distribution(algorithm="leon") # optional - gap_packages (Guava package)
sage: C.weight_distribution(algorithm="leon") # optional - gap_package_guava
[1, 0, 0, 7, 7, 0, 0, 1]
sage: C.weight_distribution(algorithm="gap") # optional - sage.libs.gap
[1, 0, 0, 7, 7, 0, 0, 1]
sage: C.weight_distribution(algorithm="binary")
[1, 0, 0, 7, 7, 0, 0, 1]

sage: # optional - gap_package_guava
sage: C = codes.HammingCode(GF(3), 3); C
[13, 10] Hamming Code over GF(3)
sage: C.weight_distribution() == C.weight_distribution(algorithm="leon") # optional - gap_packages (Guava package)
sage: C.weight_distribution() == C.weight_distribution(algorithm="leon")
True
sage: C = codes.HammingCode(GF(5), 2); C
[6, 4] Hamming Code over GF(5)
sage: C.weight_distribution() == C.weight_distribution(algorithm="leon") # optional - gap_packages (Guava package)
sage: C.weight_distribution() == C.weight_distribution(algorithm="leon")
True
sage: C = codes.HammingCode(GF(7), 2); C
[8, 6] Hamming Code over GF(7)
sage: C.weight_distribution() == C.weight_distribution(algorithm="leon") # optional - gap_packages (Guava package)
sage: C.weight_distribution() == C.weight_distribution(algorithm="leon")
True

"""
Expand Down Expand Up @@ -2001,14 +2003,17 @@ def zeta_polynomial(self, name="T"):
sage: C = codes.HammingCode(GF(2), 3)
sage: C.zeta_polynomial()
2/5*T^2 + 2/5*T + 1/5
sage: C = codes.databases.best_linear_code_in_guava(6,3,GF(2)) # optional - gap_packages (Guava package)
sage: C.minimum_distance() # optional - gap_packages (Guava package)

sage: C = codes.databases.best_linear_code_in_guava(6, 3, GF(2)) # optional - gap_package_guava
sage: C.minimum_distance() # optional - gap_package_guava
3
sage: C.zeta_polynomial() # optional - gap_packages (Guava package)
sage: C.zeta_polynomial() # optional - gap_package_guava
2/5*T^2 + 2/5*T + 1/5

sage: C = codes.HammingCode(GF(2), 4)
sage: C.zeta_polynomial()
16/429*T^6 + 16/143*T^5 + 80/429*T^4 + 32/143*T^3 + 30/143*T^2 + 2/13*T + 1/13

sage: F.<z> = GF(4,"z")
sage: MS = MatrixSpace(F, 3, 6)
sage: G = MS([[1,0,0,1,z,z],[0,1,0,z,1,z],[0,0,1,z,z,1]])
Expand Down Expand Up @@ -2601,7 +2606,7 @@ class LinearCodeSyndromeDecoder(Decoder):
We build a first syndrome decoder, and pick a ``maximum_error_weight``
smaller than both the covering radius and half the minimum distance::

sage: D = C.decoder("Syndrome", maximum_error_weight = 1)
sage: D = C.decoder("Syndrome", maximum_error_weight=1)
sage: D.decoder_type()
{'always-succeed', 'bounded_distance', 'hard-decision'}
sage: D.decoding_radius()
Expand All @@ -2614,7 +2619,7 @@ class LinearCodeSyndromeDecoder(Decoder):
``maximum_error_weight`` is chosen to be bigger than half the minimum distance,
but lower than the covering radius::

sage: D = C.decoder("Syndrome", maximum_error_weight = 3)
sage: D = C.decoder("Syndrome", maximum_error_weight=3)
sage: D.decoder_type()
{'bounded_distance', 'hard-decision', 'might-error'}
sage: D.decoding_radius()
Expand All @@ -2628,10 +2633,10 @@ class LinearCodeSyndromeDecoder(Decoder):
And now, we build a third syndrome decoder, whose ``maximum_error_weight``
is bigger than both the covering radius and half the minimum distance::

sage: D = C.decoder("Syndrome", maximum_error_weight = 5) # long time
sage: D.decoder_type() # long time
sage: D = C.decoder("Syndrome", maximum_error_weight=5) # long time
sage: D.decoder_type() # long time
{'complete', 'hard-decision', 'might-error'}
sage: D.decoding_radius() # long time
sage: D.decoding_radius() # long time
4

In that case, the decoder might still return an unexpected codeword, but
Expand Down
4 changes: 2 additions & 2 deletions src/sage/coding/linear_code_no_metric.py
Original file line number Diff line number Diff line change
Expand Up @@ -1004,8 +1004,8 @@ def is_self_orthogonal(self):
sage: C = codes.HammingCode(GF(2), 3)
sage: C.is_self_orthogonal()
False
sage: C = codes.QuasiQuadraticResidueCode(11) # optional - gap_packages (Guava package)
sage: C.is_self_orthogonal() # optional - gap_packages (Guava package)
sage: C = codes.QuasiQuadraticResidueCode(11) # optional - gap_package_guava
sage: C.is_self_orthogonal() # optional - gap_package_guava
True
"""
return self.is_subcode(self.dual_code())
Expand Down
12 changes: 6 additions & 6 deletions src/sage/combinat/designs/block_design.py
Original file line number Diff line number Diff line change
Expand Up @@ -245,8 +245,8 @@ def ProjectiveGeometryDesign(n, d, F, algorithm=None, point_coordinates=True, ch

Check that the constructor using gap also works::

sage: BD = designs.ProjectiveGeometryDesign(2, 1, GF(2), algorithm="gap") # optional - gap_packages (design package)
sage: BD.is_t_design(return_parameters=True) # optional - gap_packages (design package)
sage: BD = designs.ProjectiveGeometryDesign(2, 1, GF(2), algorithm="gap") # optional - gap_package_design
sage: BD.is_t_design(return_parameters=True) # optional - gap_package_design
(True, (2, 7, 3, 1))
"""
try:
Expand Down Expand Up @@ -934,12 +934,12 @@ def WittDesign(n):

EXAMPLES::

sage: BD = designs.WittDesign(9) # optional - gap_packages (design package)
sage: BD.is_t_design(return_parameters=True) # optional - gap_packages (design package)
sage: BD = designs.WittDesign(9) # optional - gap_package_design
sage: BD.is_t_design(return_parameters=True) # optional - gap_package_design
(True, (2, 9, 3, 1))
sage: BD # optional - gap_packages (design package)
sage: BD # optional - gap_package_design
Incidence structure with 9 points and 12 blocks
sage: print(BD) # optional - gap_packages (design package)
sage: print(BD) # optional - gap_package_design
Incidence structure with 9 points and 12 blocks
"""
libgap.load_package("design")
Expand Down
10 changes: 5 additions & 5 deletions src/sage/combinat/designs/database.py
Original file line number Diff line number Diff line change
Expand Up @@ -4464,9 +4464,9 @@ def HigmanSimsDesign():

EXAMPLES::

sage: H = designs.HigmanSimsDesign(); H # optional - gap_packages
sage: H = designs.HigmanSimsDesign(); H # optional - gap_package_design
Incidence structure with 176 points and 176 blocks
sage: H.is_t_design(return_parameters=1) # optional - gap_packages
sage: H.is_t_design(return_parameters=1) # optional - gap_package_design
(True, (2, 176, 50, 14))

Make sure that the automorphism group of this designs is isomorphic to the
Expand All @@ -4475,9 +4475,9 @@ def HigmanSimsDesign():
first of those permutation groups acts on 176 points, while the second acts
on 100::

sage: gH = H.automorphism_group() # optional - gap_packages
sage: gG = graphs.HigmanSimsGraph().automorphism_group() # optional - gap_packages
sage: gG.is_isomorphic(gG) # long time # optional - gap_packages
sage: gH = H.automorphism_group() # optional - gap_package_design
sage: gG = graphs.HigmanSimsGraph().automorphism_group() # optional - gap_package_design
sage: gG.is_isomorphic(gG) # long time, optional - gap_package_design
True

REFERENCE:
Expand Down
2 changes: 1 addition & 1 deletion src/sage/combinat/designs/design_catalog.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
This module gathers all designs that can be reached through
``designs.<tab>``. Example with the Witt design on 24 points::

sage: designs.WittDesign(24) # optional - gap_packages
sage: designs.WittDesign(24) # optional - gap_package_design
Incidence structure with 24 points and 759 blocks

Or a Steiner Triple System on 19 points::
Expand Down
Loading