passagemath-combinat 10.6.1__cp312-cp312-musllinux_1_2_aarch64.whl → 10.8.1a1__cp312-cp312-musllinux_1_2_aarch64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- passagemath_combinat/__init__.py +3 -0
- {passagemath_combinat-10.6.1.dist-info → passagemath_combinat-10.8.1a1.dist-info}/METADATA +17 -20
- {passagemath_combinat-10.6.1.dist-info → passagemath_combinat-10.8.1a1.dist-info}/RECORD +220 -218
- {passagemath_combinat-10.6.1.dist-info → passagemath_combinat-10.8.1a1.dist-info}/WHEEL +1 -1
- passagemath_combinat-10.8.1a1.dist-info/top_level.txt +3 -0
- sage/algebras/affine_nil_temperley_lieb.py +3 -3
- sage/algebras/all.py +0 -1
- sage/algebras/askey_wilson.py +1 -1
- sage/algebras/associated_graded.py +2 -2
- sage/algebras/cellular_basis.py +3 -6
- sage/algebras/cluster_algebra.py +2 -3
- sage/algebras/down_up_algebra.py +6 -6
- sage/algebras/free_algebra.py +3 -32
- sage/algebras/free_algebra_element.py +21 -25
- sage/algebras/free_algebra_quotient_element.py +9 -38
- sage/algebras/free_zinbiel_algebra.py +4 -3
- sage/algebras/hall_algebra.py +2 -2
- sage/algebras/hecke_algebras/ariki_koike_algebra.py +8 -8
- sage/algebras/hecke_algebras/ariki_koike_specht_modules.py +2 -2
- sage/algebras/hecke_algebras/cubic_hecke_algebra.py +11 -14
- sage/algebras/hecke_algebras/cubic_hecke_base_ring.py +1 -1
- sage/algebras/hecke_algebras/cubic_hecke_matrix_rep.py +5 -5
- sage/algebras/iwahori_hecke_algebra.py +59 -57
- sage/algebras/jordan_algebra.py +97 -89
- sage/algebras/lie_conformal_algebras/abelian_lie_conformal_algebra.py +6 -6
- sage/algebras/lie_conformal_algebras/affine_lie_conformal_algebra.py +14 -12
- sage/algebras/lie_conformal_algebras/bosonic_ghosts_lie_conformal_algebra.py +6 -6
- sage/algebras/lie_conformal_algebras/fermionic_ghosts_lie_conformal_algebra.py +4 -4
- sage/algebras/lie_conformal_algebras/finitely_freely_generated_lca.py +13 -13
- sage/algebras/lie_conformal_algebras/free_bosons_lie_conformal_algebra.py +8 -6
- sage/algebras/lie_conformal_algebras/free_fermions_lie_conformal_algebra.py +7 -5
- sage/algebras/lie_conformal_algebras/freely_generated_lie_conformal_algebra.py +7 -7
- sage/algebras/lie_conformal_algebras/graded_lie_conformal_algebra.py +6 -5
- sage/algebras/lie_conformal_algebras/lie_conformal_algebra.py +12 -11
- sage/algebras/lie_conformal_algebras/lie_conformal_algebra_element.py +3 -3
- sage/algebras/lie_conformal_algebras/lie_conformal_algebra_with_basis.py +3 -3
- sage/algebras/lie_conformal_algebras/lie_conformal_algebra_with_structure_coefs.py +11 -11
- sage/algebras/lie_conformal_algebras/n2_lie_conformal_algebra.py +3 -3
- sage/algebras/lie_conformal_algebras/neveu_schwarz_lie_conformal_algebra.py +8 -7
- sage/algebras/lie_conformal_algebras/virasoro_lie_conformal_algebra.py +9 -8
- sage/algebras/lie_conformal_algebras/weyl_lie_conformal_algebra.py +6 -5
- sage/algebras/nil_coxeter_algebra.py +4 -4
- sage/algebras/q_commuting_polynomials.py +6 -6
- sage/algebras/q_system.py +3 -3
- sage/algebras/quantum_clifford.py +8 -8
- sage/algebras/quantum_groups/fock_space.py +48 -8
- sage/algebras/quantum_groups/quantum_group_gap.py +5 -7
- sage/algebras/quantum_matrix_coordinate_algebra.py +7 -7
- sage/algebras/quantum_oscillator.py +3 -3
- sage/algebras/quaternion_algebra_element.py +5 -3
- sage/algebras/schur_algebra.py +3 -3
- sage/algebras/shuffle_algebra.py +5 -8
- sage/algebras/splitting_algebra.py +129 -85
- sage/algebras/tensor_algebra.py +7 -7
- sage/algebras/yangian.py +16 -15
- sage/algebras/yokonuma_hecke_algebra.py +13 -11
- sage/combinat/all.py +9 -0
- sage/combinat/all__sagemath_combinat.py +1 -0
- sage/combinat/alternating_sign_matrix.py +36 -29
- sage/combinat/baxter_permutations.py +32 -12
- sage/combinat/bijectionist.py +13 -17
- sage/combinat/chas/fsym.py +6 -6
- sage/combinat/chas/wqsym.py +23 -29
- sage/combinat/colored_permutations.py +9 -11
- sage/combinat/colored_permutations_representations.py +13 -12
- sage/combinat/composition_tableau.py +2 -2
- sage/combinat/constellation.py +57 -30
- sage/combinat/crystals/affine_factorization.py +5 -4
- sage/combinat/crystals/alcove_path.py +2 -2
- sage/combinat/crystals/fully_commutative_stable_grothendieck.py +3 -2
- sage/combinat/crystals/infinity_crystals.py +18 -18
- sage/combinat/crystals/kac_modules.py +1 -1
- sage/combinat/crystals/kirillov_reshetikhin.py +2 -2
- sage/combinat/crystals/letters.cpython-312-aarch64-linux-musl.so +0 -0
- sage/combinat/crystals/littelmann_path.py +1 -1
- sage/combinat/crystals/pbw_datum.cpython-312-aarch64-linux-musl.so +0 -0
- sage/combinat/crystals/pbw_datum.pyx +3 -2
- sage/combinat/crystals/spins.cpython-312-aarch64-linux-musl.so +0 -0
- sage/combinat/crystals/tensor_product.py +7 -5
- sage/combinat/crystals/tensor_product_element.cpython-312-aarch64-linux-musl.so +0 -0
- sage/combinat/debruijn_sequence.cpython-312-aarch64-linux-musl.so +0 -0
- sage/combinat/debruijn_sequence.pyx +1 -2
- sage/combinat/degree_sequences.cpython-312-aarch64-linux-musl.so +0 -0
- sage/combinat/degree_sequences.pyx +241 -188
- sage/combinat/derangements.py +28 -22
- sage/combinat/diagram_algebras.py +12 -14
- sage/combinat/dyck_word.py +15 -14
- sage/combinat/e_one_star.py +1 -1
- sage/combinat/expnums.cpython-312-aarch64-linux-musl.so +0 -0
- sage/combinat/fast_vector_partitions.cpython-312-aarch64-linux-musl.so +0 -0
- sage/combinat/fqsym.py +13 -19
- sage/combinat/free_dendriform_algebra.py +2 -2
- sage/combinat/free_prelie_algebra.py +2 -2
- sage/combinat/fully_commutative_elements.py +8 -8
- sage/combinat/fully_packed_loop.py +9 -9
- sage/combinat/gelfand_tsetlin_patterns.py +4 -5
- sage/combinat/gray_codes.py +3 -4
- sage/combinat/grossman_larson_algebras.py +2 -2
- sage/combinat/growth.py +13 -13
- sage/combinat/hall_polynomial.py +1 -1
- sage/combinat/hillman_grassl.py +1 -1
- sage/combinat/integer_matrices.py +5 -7
- sage/combinat/k_tableau.py +8 -7
- sage/combinat/kazhdan_lusztig.py +3 -3
- sage/combinat/key_polynomial.py +845 -298
- sage/combinat/knutson_tao_puzzles.py +11 -13
- sage/combinat/matrices/hadamard_matrix.py +1 -1
- sage/combinat/matrices/latin.py +75 -92
- sage/combinat/misc.py +3 -3
- sage/combinat/multiset_partition_into_sets_ordered.py +27 -10
- sage/combinat/ncsf_qsym/generic_basis_code.py +5 -5
- sage/combinat/ncsf_qsym/ncsf.py +6 -5
- sage/combinat/ncsf_qsym/qsym.py +9 -17
- sage/combinat/ncsym/ncsym.py +8 -12
- sage/combinat/nu_dyck_word.py +1 -1
- sage/combinat/parallelogram_polyomino.py +3 -5
- sage/combinat/parking_functions.py +6 -5
- sage/combinat/partition_algebra.py +22 -57
- sage/combinat/partition_kleshchev.py +4 -4
- sage/combinat/partition_tuple.py +12 -10
- sage/combinat/plane_partition.py +10 -13
- sage/combinat/positive_integer_semigroup_test.py +17 -0
- sage/combinat/q_bernoulli.cpython-312-aarch64-linux-musl.so +0 -0
- sage/combinat/quickref.py +2 -2
- sage/combinat/recognizable_series.py +2 -2
- sage/combinat/regular_sequence.py +7 -7
- sage/combinat/regular_sequence_bounded.py +15 -21
- sage/combinat/restricted_growth.py +3 -3
- sage/combinat/ribbon.py +3 -3
- sage/combinat/rigged_configurations/bijection.py +3 -3
- sage/combinat/rigged_configurations/rigged_partition.cpython-312-aarch64-linux-musl.so +0 -0
- sage/combinat/rsk.py +2 -0
- sage/combinat/schubert_polynomial.py +11 -2
- sage/combinat/set_partition.py +3 -7
- sage/combinat/set_partition_iterator.cpython-312-aarch64-linux-musl.so +0 -0
- sage/combinat/set_partition_iterator.pyx +0 -1
- sage/combinat/set_partition_ordered.py +2 -2
- sage/combinat/sf/classical.py +1 -1
- sage/combinat/sf/dual.py +4 -8
- sage/combinat/sf/elementary.py +13 -7
- sage/combinat/sf/hall_littlewood.py +10 -8
- sage/combinat/sf/homogeneous.py +6 -3
- sage/combinat/sf/jack.py +11 -9
- sage/combinat/sf/llt.py +4 -5
- sage/combinat/sf/macdonald.py +10 -11
- sage/combinat/sf/monomial.py +6 -0
- sage/combinat/sf/ns_macdonald.py +92 -51
- sage/combinat/sf/powersum.py +9 -14
- sage/combinat/sf/schur.py +6 -0
- sage/combinat/sf/sf.py +21 -19
- sage/combinat/sf/sfa.py +13 -64
- sage/combinat/shifted_primed_tableau.py +5 -7
- sage/combinat/shuffle.py +1 -1
- sage/combinat/sine_gordon.py +18 -38
- sage/combinat/skew_partition.py +9 -12
- sage/combinat/skew_tableau.py +2 -7
- sage/combinat/sloane_functions.py +1 -1
- sage/combinat/species/all.py +67 -2
- sage/combinat/species/characteristic_species.py +3 -0
- sage/combinat/species/composition_species.py +3 -0
- sage/combinat/species/cycle_species.py +4 -0
- sage/combinat/species/empty_species.py +3 -0
- sage/combinat/species/functorial_composition_species.py +3 -0
- sage/combinat/species/generating_series.py +3 -0
- sage/combinat/species/library.py +3 -0
- sage/combinat/species/linear_order_species.py +3 -0
- sage/combinat/species/partition_species.py +3 -0
- sage/combinat/species/permutation_species.py +4 -0
- sage/combinat/species/product_species.py +3 -0
- sage/combinat/species/recursive_species.py +3 -0
- sage/combinat/species/set_species.py +3 -0
- sage/combinat/species/species.py +13 -7
- sage/combinat/species/structure.py +8 -9
- sage/combinat/species/subset_species.py +3 -0
- sage/combinat/species/sum_species.py +3 -0
- sage/combinat/subword.py +4 -1
- sage/combinat/subword_complex.py +7 -7
- sage/combinat/subword_complex_c.cpython-312-aarch64-linux-musl.so +0 -0
- sage/combinat/superpartition.py +1 -1
- sage/combinat/symmetric_group_algebra.py +9 -9
- sage/combinat/symmetric_group_representations.py +5 -5
- sage/combinat/t_sequences.py +4 -4
- sage/combinat/tableau.py +3 -4
- sage/combinat/tableau_tuple.py +2 -2
- sage/combinat/tiling.py +39 -42
- sage/combinat/triangles_FHM.py +38 -15
- sage/combinat/tutorial.py +2 -2
- sage/combinat/vector_partition.py +43 -31
- sage/combinat/words/abstract_word.py +4 -4
- sage/combinat/words/alphabet.py +12 -12
- sage/combinat/words/finite_word.py +25 -229
- sage/combinat/words/infinite_word.py +1 -1
- sage/combinat/words/morphic.py +13 -13
- sage/combinat/words/morphism.py +3 -12
- sage/combinat/words/paths.py +16 -17
- sage/combinat/words/word.py +60 -35
- sage/combinat/words/word_char.cpython-312-aarch64-linux-musl.so +0 -0
- sage/combinat/words/word_char.pyx +46 -7
- sage/combinat/words/word_datatypes.cpython-312-aarch64-linux-musl.so +0 -0
- sage/combinat/words/word_generators.py +39 -38
- sage/databases/findstat.py +72 -31
- sage/databases/oeis.py +125 -25
- sage/databases/sloane.py +14 -8
- sage/games/sudoku_backtrack.cpython-312-aarch64-linux-musl.so +0 -0
- sage/groups/indexed_free_group.py +3 -4
- sage/libs/symmetrica/symmetrica.cpython-312-aarch64-linux-musl.so +0 -0
- sage/libs/symmetrica/symmetrica.pxi +1 -0
- sage/monoids/automatic_semigroup.py +1 -3
- sage/monoids/free_abelian_monoid.py +7 -33
- sage/monoids/free_abelian_monoid_element.cpython-312-aarch64-linux-musl.so +0 -0
- sage/monoids/free_monoid.py +8 -40
- sage/monoids/free_monoid_element.py +1 -9
- sage/monoids/string_monoid.py +5 -2
- sage/monoids/string_monoid_element.py +12 -66
- sage/rings/all__sagemath_combinat.py +7 -0
- sage/sat/solvers/__init__.py +3 -4
- sage/sat/solvers/cryptominisat.py +2 -3
- sage/sat/solvers/picosat.py +2 -3
- sage/sat/solvers/sat_lp.py +2 -2
- sage/sat/solvers/satsolver.cpython-312-aarch64-linux-musl.so +0 -0
- passagemath_combinat-10.6.1.dist-info/top_level.txt +0 -2
|
@@ -19,15 +19,15 @@ AUTHORS:
|
|
|
19
19
|
|
|
20
20
|
- Reimundo Heluani (2020-06-03): Initial implementation.
|
|
21
21
|
"""
|
|
22
|
-
|
|
22
|
+
# ***************************************************************************
|
|
23
23
|
# Copyright (C) 2020 Reimundo Heluani <heluani@potuz.net>
|
|
24
24
|
#
|
|
25
25
|
# This program is free software: you can redistribute it and/or modify
|
|
26
26
|
# it under the terms of the GNU General Public License as published by
|
|
27
27
|
# the Free Software Foundation, either version 2 of the License, or
|
|
28
28
|
# (at your option) any later version.
|
|
29
|
-
#
|
|
30
|
-
|
|
29
|
+
# https://www.gnu.org/licenses/
|
|
30
|
+
# ***************************************************************************
|
|
31
31
|
|
|
32
32
|
from .graded_lie_conformal_algebra import GradedLieConformalAlgebra
|
|
33
33
|
|
|
@@ -73,7 +73,7 @@ class FermionicGhostsLieConformalAlgebra(GradedLieConformalAlgebra):
|
|
|
73
73
|
sage: R.structure_coefficients()
|
|
74
74
|
Finite family {('a', 'c'): ((0, K),), ('b', 'd'): ((0, K),), ('c', 'a'): ((0, K),), ('d', 'b'): ((0, K),)}
|
|
75
75
|
"""
|
|
76
|
-
def __init__(self, R, ngens=2, names=None, index_set=None):
|
|
76
|
+
def __init__(self, R, ngens=2, names=None, index_set=None) -> None:
|
|
77
77
|
"""
|
|
78
78
|
Initialize ``self``.
|
|
79
79
|
|
|
@@ -7,21 +7,19 @@ AUTHORS:
|
|
|
7
7
|
|
|
8
8
|
- Reimundo Heluani (2019-08-09): Initial implementation.
|
|
9
9
|
"""
|
|
10
|
-
|
|
11
|
-
#******************************************************************************
|
|
10
|
+
# ****************************************************************************
|
|
12
11
|
# Copyright (C) 2019 Reimundo Heluani <heluani@potuz.net>
|
|
13
12
|
#
|
|
14
13
|
# This program is free software: you can redistribute it and/or modify
|
|
15
14
|
# it under the terms of the GNU General Public License as published by
|
|
16
15
|
# the Free Software Foundation, either version 2 of the License, or
|
|
17
16
|
# (at your option) any later version.
|
|
18
|
-
#
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
from sage.misc.cachefunc import cached_method
|
|
17
|
+
# https://www.gnu.org/licenses/
|
|
18
|
+
# ***************************************************************************
|
|
22
19
|
from sage.categories.lie_conformal_algebras import LieConformalAlgebras
|
|
23
20
|
from .freely_generated_lie_conformal_algebra import \
|
|
24
|
-
|
|
21
|
+
FreelyGeneratedLieConformalAlgebra
|
|
22
|
+
from sage.misc.cachefunc import cached_method
|
|
25
23
|
|
|
26
24
|
|
|
27
25
|
class FinitelyFreelyGeneratedLCA(FreelyGeneratedLieConformalAlgebra):
|
|
@@ -34,7 +32,7 @@ class FinitelyFreelyGeneratedLCA(FreelyGeneratedLieConformalAlgebra):
|
|
|
34
32
|
"""
|
|
35
33
|
def __init__(self, R, index_set=None, central_elements=None, category=None,
|
|
36
34
|
element_class=None, prefix=None, names=None, latex_names=None,
|
|
37
|
-
**kwds):
|
|
35
|
+
**kwds) -> None:
|
|
38
36
|
"""
|
|
39
37
|
Initialize ``self``.
|
|
40
38
|
|
|
@@ -54,7 +52,8 @@ class FinitelyFreelyGeneratedLCA(FreelyGeneratedLieConformalAlgebra):
|
|
|
54
52
|
raise TypeError("index_set must be a finite set")
|
|
55
53
|
|
|
56
54
|
super().__init__(R,
|
|
57
|
-
index_set=index_set,
|
|
55
|
+
index_set=index_set,
|
|
56
|
+
central_elements=central_elements,
|
|
58
57
|
category=category, element_class=element_class,
|
|
59
58
|
prefix=prefix, **kwds)
|
|
60
59
|
self._ngens = len(self._generators)
|
|
@@ -89,7 +88,7 @@ class FinitelyFreelyGeneratedLCA(FreelyGeneratedLieConformalAlgebra):
|
|
|
89
88
|
"""
|
|
90
89
|
return self.sum(self.gens())
|
|
91
90
|
|
|
92
|
-
def ngens(self):
|
|
91
|
+
def ngens(self) -> int:
|
|
93
92
|
"""
|
|
94
93
|
The number of generators of this Lie conformal algebra.
|
|
95
94
|
|
|
@@ -103,7 +102,7 @@ class FinitelyFreelyGeneratedLCA(FreelyGeneratedLieConformalAlgebra):
|
|
|
103
102
|
return self._ngens
|
|
104
103
|
|
|
105
104
|
@cached_method
|
|
106
|
-
def gens(self):
|
|
105
|
+
def gens(self) -> tuple:
|
|
107
106
|
"""
|
|
108
107
|
The generators for this Lie conformal algebra.
|
|
109
108
|
|
|
@@ -127,13 +126,14 @@ class FinitelyFreelyGeneratedLCA(FreelyGeneratedLieConformalAlgebra):
|
|
|
127
126
|
return self.lie_conformal_algebra_generators()
|
|
128
127
|
|
|
129
128
|
@cached_method
|
|
130
|
-
def central_elements(self):
|
|
129
|
+
def central_elements(self) -> tuple:
|
|
131
130
|
"""
|
|
132
131
|
The central elements of this Lie conformal algebra.
|
|
133
132
|
|
|
134
133
|
EXAMPLES::
|
|
135
134
|
|
|
136
|
-
sage: R = lie_conformal_algebras.NeveuSchwarz(QQ)
|
|
135
|
+
sage: R = lie_conformal_algebras.NeveuSchwarz(QQ)
|
|
136
|
+
sage: R.central_elements()
|
|
137
137
|
(C,)
|
|
138
138
|
"""
|
|
139
139
|
return tuple(FreelyGeneratedLieConformalAlgebra.central_elements(self))
|
|
@@ -23,15 +23,15 @@ AUTHORS:
|
|
|
23
23
|
- Reimundo Heluani (2019-08-09): Initial implementation.
|
|
24
24
|
"""
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
# ****************************************************************************
|
|
27
27
|
# Copyright (C) 2019 Reimundo Heluani <heluani@potuz.net>
|
|
28
28
|
#
|
|
29
29
|
# This program is free software: you can redistribute it and/or modify
|
|
30
30
|
# it under the terms of the GNU General Public License as published by
|
|
31
31
|
# the Free Software Foundation, either version 2 of the License, or
|
|
32
32
|
# (at your option) any later version.
|
|
33
|
-
#
|
|
34
|
-
|
|
33
|
+
# https://www.gnu.org/licenses/
|
|
34
|
+
# ***************************************************************************
|
|
35
35
|
|
|
36
36
|
from sage.matrix.special import identity_matrix
|
|
37
37
|
from .graded_lie_conformal_algebra import GradedLieConformalAlgebra
|
|
@@ -111,17 +111,19 @@ class FreeBosonsLieConformalAlgebra(GradedLieConformalAlgebra):
|
|
|
111
111
|
sage: TestSuite(V).run()
|
|
112
112
|
"""
|
|
113
113
|
from sage.matrix.matrix_space import MatrixSpace
|
|
114
|
-
if
|
|
114
|
+
if gram_matrix is not None:
|
|
115
115
|
if ngens is None:
|
|
116
116
|
ngens = gram_matrix.dimensions()[0]
|
|
117
117
|
try:
|
|
118
118
|
assert (gram_matrix in MatrixSpace(R, ngens, ngens))
|
|
119
119
|
except AssertionError:
|
|
120
120
|
raise ValueError("the gram_matrix should be a symmetric " +
|
|
121
|
-
|
|
121
|
+
"{0} x {0} matrix, got {1}".format(ngens,
|
|
122
|
+
gram_matrix))
|
|
122
123
|
if not gram_matrix.is_symmetric():
|
|
123
124
|
raise ValueError("the gram_matrix should be a symmetric " +
|
|
124
|
-
|
|
125
|
+
"{0} x {0} matrix, got {1}".format(ngens,
|
|
126
|
+
gram_matrix))
|
|
125
127
|
else:
|
|
126
128
|
if ngens is None:
|
|
127
129
|
ngens = 1
|
|
@@ -24,15 +24,15 @@ AUTHORS:
|
|
|
24
24
|
|
|
25
25
|
- Reimundo Heluani (2020-06-03): Initial implementation.
|
|
26
26
|
"""
|
|
27
|
-
|
|
27
|
+
# ***************************************************************************
|
|
28
28
|
# Copyright (C) 2020 Reimundo Heluani <heluani@potuz.net>
|
|
29
29
|
#
|
|
30
30
|
# This program is free software: you can redistribute it and/or modify
|
|
31
31
|
# it under the terms of the GNU General Public License as published by
|
|
32
32
|
# the Free Software Foundation, either version 2 of the License, or
|
|
33
33
|
# (at your option) any later version.
|
|
34
|
-
#
|
|
35
|
-
|
|
34
|
+
# https://www.gnu.org/licenses/
|
|
35
|
+
# ***************************************************************************
|
|
36
36
|
|
|
37
37
|
from .graded_lie_conformal_algebra import GradedLieConformalAlgebra
|
|
38
38
|
|
|
@@ -102,10 +102,12 @@ class FreeFermionsLieConformalAlgebra(GradedLieConformalAlgebra):
|
|
|
102
102
|
assert (gram_matrix in MatrixSpace(R, ngens, ngens))
|
|
103
103
|
except AssertionError:
|
|
104
104
|
raise ValueError("the Gram_matrix should be a symmetric " +
|
|
105
|
-
|
|
105
|
+
"{0} x {0} matrix, got {1}".format(ngens,
|
|
106
|
+
gram_matrix))
|
|
106
107
|
if not gram_matrix.is_symmetric():
|
|
107
108
|
raise ValueError("the Gram_matrix should be a symmetric " +
|
|
108
|
-
|
|
109
|
+
"{0} x {0} matrix, got {1}".format(ngens,
|
|
110
|
+
gram_matrix))
|
|
109
111
|
else:
|
|
110
112
|
if ngens is None:
|
|
111
113
|
ngens = 1
|
|
@@ -8,15 +8,15 @@ AUTHORS:
|
|
|
8
8
|
- Reimundo Heluani (2019-08-09): Initial implementation
|
|
9
9
|
"""
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
# ***************************************************************************
|
|
12
12
|
# Copyright (C) 2019 Reimundo Heluani <heluani@potuz.net>
|
|
13
13
|
#
|
|
14
14
|
# This program is free software: you can redistribute it and/or modify
|
|
15
15
|
# it under the terms of the GNU General Public License as published by
|
|
16
16
|
# the Free Software Foundation, either version 2 of the License, or
|
|
17
17
|
# (at your option) any later version.
|
|
18
|
-
#
|
|
19
|
-
|
|
18
|
+
# https://www.gnu.org/licenses/
|
|
19
|
+
# ***************************************************************************
|
|
20
20
|
|
|
21
21
|
from .lie_conformal_algebra_with_basis import LieConformalAlgebraWithBasis
|
|
22
22
|
from sage.sets.non_negative_integers import NonNegativeIntegers
|
|
@@ -40,7 +40,7 @@ class FreelyGeneratedLieConformalAlgebra(LieConformalAlgebraWithBasis):
|
|
|
40
40
|
some central generators `C_i` such that `TC_i = 0`.
|
|
41
41
|
"""
|
|
42
42
|
def __init__(self, R, index_set=None, central_elements=None, category=None,
|
|
43
|
-
element_class=None, prefix=None, **kwds):
|
|
43
|
+
element_class=None, prefix=None, **kwds) -> None:
|
|
44
44
|
"""
|
|
45
45
|
Initialize ``self``.
|
|
46
46
|
|
|
@@ -52,8 +52,8 @@ class FreelyGeneratedLieConformalAlgebra(LieConformalAlgebraWithBasis):
|
|
|
52
52
|
self._generators = Family(index_set)
|
|
53
53
|
E = cartesian_product([index_set, NonNegativeIntegers()])
|
|
54
54
|
if central_elements is not None:
|
|
55
|
-
self._generators = DisjointUnionEnumeratedSets(
|
|
56
|
-
|
|
55
|
+
self._generators = DisjointUnionEnumeratedSets(
|
|
56
|
+
[index_set, Family(central_elements)])
|
|
57
57
|
E = DisjointUnionEnumeratedSets((cartesian_product([
|
|
58
58
|
Family(central_elements), {Integer(0)}]), E))
|
|
59
59
|
|
|
@@ -89,7 +89,7 @@ class FreelyGeneratedLieConformalAlgebra(LieConformalAlgebraWithBasis):
|
|
|
89
89
|
return tuple(F)
|
|
90
90
|
return F
|
|
91
91
|
|
|
92
|
-
def central_elements(self):
|
|
92
|
+
def central_elements(self) -> Family:
|
|
93
93
|
"""
|
|
94
94
|
The central generators of this Lie conformal algebra.
|
|
95
95
|
|
|
@@ -37,20 +37,20 @@ AUTHORS:
|
|
|
37
37
|
"""
|
|
38
38
|
|
|
39
39
|
|
|
40
|
-
|
|
40
|
+
# ***************************************************************************
|
|
41
41
|
# Copyright (C) 2019 Reimundo Heluani <heluani@potuz.net>
|
|
42
42
|
#
|
|
43
43
|
# This program is free software: you can redistribute it and/or modify
|
|
44
44
|
# it under the terms of the GNU General Public License as published by
|
|
45
45
|
# the Free Software Foundation, either version 2 of the License, or
|
|
46
46
|
# (at your option) any later version.
|
|
47
|
-
#
|
|
48
|
-
|
|
47
|
+
# https://www.gnu.org/licenses/
|
|
48
|
+
# ***************************************************************************
|
|
49
49
|
|
|
50
50
|
|
|
51
51
|
from sage.categories.lie_conformal_algebras import LieConformalAlgebras
|
|
52
52
|
from .lie_conformal_algebra_with_structure_coefs import \
|
|
53
|
-
|
|
53
|
+
LieConformalAlgebraWithStructureCoefficients
|
|
54
54
|
|
|
55
55
|
|
|
56
56
|
class GradedLieConformalAlgebra(LieConformalAlgebraWithStructureCoefficients):
|
|
@@ -120,7 +120,8 @@ class GradedLieConformalAlgebra(LieConformalAlgebraWithStructureCoefficients):
|
|
|
120
120
|
else:
|
|
121
121
|
category = default_category.or_subcategory(category)
|
|
122
122
|
|
|
123
|
-
LieConformalAlgebraWithStructureCoefficients.__init__(
|
|
123
|
+
LieConformalAlgebraWithStructureCoefficients.__init__(
|
|
124
|
+
self, R,
|
|
124
125
|
s_coeff, index_set=index_set, central_elements=central_elements,
|
|
125
126
|
category=category, prefix=prefix,
|
|
126
127
|
names=names, latex_names=latex_names, parity=parity, **kwds)
|
|
@@ -164,15 +164,15 @@ AUTHORS:
|
|
|
164
164
|
"""
|
|
165
165
|
|
|
166
166
|
|
|
167
|
-
|
|
167
|
+
# ***************************************************************************
|
|
168
168
|
# Copyright (C) 2019 Reimundo Heluani <heluani@potuz.net>
|
|
169
169
|
#
|
|
170
170
|
# This program is free software: you can redistribute it and/or modify
|
|
171
171
|
# it under the terms of the GNU General Public License as published by
|
|
172
172
|
# the Free Software Foundation, either version 2 of the License, or
|
|
173
173
|
# (at your option) any later version.
|
|
174
|
-
#
|
|
175
|
-
|
|
174
|
+
# https://www.gnu.org/licenses/
|
|
175
|
+
# ***************************************************************************
|
|
176
176
|
|
|
177
177
|
from sage.structure.unique_representation import UniqueRepresentation
|
|
178
178
|
from sage.sets.family import Family
|
|
@@ -336,18 +336,19 @@ class LieConformalAlgebra(UniqueRepresentation, Parent):
|
|
|
336
336
|
graded = kwds.pop("graded", False)
|
|
337
337
|
if weights is not None or graded:
|
|
338
338
|
from .graded_lie_conformal_algebra import \
|
|
339
|
-
|
|
340
|
-
return GradedLieConformalAlgebra(
|
|
339
|
+
GradedLieConformalAlgebra
|
|
340
|
+
return GradedLieConformalAlgebra(
|
|
341
|
+
R, Family(arg0),
|
|
341
342
|
index_set=index_set, central_elements=central_elements,
|
|
342
343
|
category=category, prefix=prefix, names=names,
|
|
343
344
|
latex_names=latex_names, parity=parity, weights=weights,
|
|
344
345
|
**kwds)
|
|
345
346
|
else:
|
|
346
347
|
from .lie_conformal_algebra_with_structure_coefs import \
|
|
347
|
-
|
|
348
|
-
return LieConformalAlgebraWithStructureCoefficients(
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
348
|
+
LieConformalAlgebraWithStructureCoefficients
|
|
349
|
+
return LieConformalAlgebraWithStructureCoefficients(
|
|
350
|
+
R, Family(arg0),
|
|
351
|
+
index_set=index_set, central_elements=central_elements,
|
|
352
|
+
category=category, prefix=prefix, names=names,
|
|
353
|
+
latex_names=latex_names, parity=parity, **kwds)
|
|
353
354
|
raise NotImplementedError("not implemented")
|
|
@@ -74,7 +74,7 @@ class LCAWithGeneratorsElement(IndexedFreeModuleElement):
|
|
|
74
74
|
return p.zero()
|
|
75
75
|
return sum(mon.T(n) for mon in self.terms())
|
|
76
76
|
|
|
77
|
-
def is_monomial(self):
|
|
77
|
+
def is_monomial(self) -> bool:
|
|
78
78
|
"""
|
|
79
79
|
Whether this element is a monomial.
|
|
80
80
|
|
|
@@ -149,7 +149,7 @@ class LCAStructureCoefficientsElement(LCAWithGeneratorsElement):
|
|
|
149
149
|
ret[k] = ret.get(k, pz) + d[k]
|
|
150
150
|
return {k: v for k, v in ret.items() if v}
|
|
151
151
|
|
|
152
|
-
def _repr_(self):
|
|
152
|
+
def _repr_(self) -> str:
|
|
153
153
|
r"""
|
|
154
154
|
A visual representation of this element.
|
|
155
155
|
|
|
@@ -187,7 +187,7 @@ class LCAStructureCoefficientsElement(LCAWithGeneratorsElement):
|
|
|
187
187
|
|
|
188
188
|
return repr_lincomb(terms, strip_one=True)
|
|
189
189
|
|
|
190
|
-
def _latex_(self):
|
|
190
|
+
def _latex_(self) -> str:
|
|
191
191
|
r"""
|
|
192
192
|
A visual representation of this element.
|
|
193
193
|
|
|
@@ -8,15 +8,15 @@ AUTHORS:
|
|
|
8
8
|
- Reimundo Heluani (2019-08-09): Initial implementation
|
|
9
9
|
"""
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
# ***************************************************************************
|
|
12
12
|
# Copyright (C) 2019 Reimundo Heluani <heluani@potuz.net>
|
|
13
13
|
#
|
|
14
14
|
# This program is free software: you can redistribute it and/or modify
|
|
15
15
|
# it under the terms of the GNU General Public License as published by
|
|
16
16
|
# the Free Software Foundation, either version 2 of the License, or
|
|
17
17
|
# (at your option) any later version.
|
|
18
|
-
#
|
|
19
|
-
|
|
18
|
+
# https://www.gnu.org/licenses/
|
|
19
|
+
# ***************************************************************************
|
|
20
20
|
|
|
21
21
|
from sage.categories.lie_conformal_algebras import LieConformalAlgebras
|
|
22
22
|
from sage.combinat.free_module import CombinatorialFreeModule
|
|
@@ -29,7 +29,7 @@ from sage.structure.indexed_generators import (IndexedGenerators,
|
|
|
29
29
|
|
|
30
30
|
|
|
31
31
|
class LieConformalAlgebraWithStructureCoefficients(
|
|
32
|
-
|
|
32
|
+
FinitelyFreelyGeneratedLCA):
|
|
33
33
|
r"""
|
|
34
34
|
A Lie conformal algebra with a set of specified structure
|
|
35
35
|
coefficients.
|
|
@@ -172,17 +172,17 @@ class LieConformalAlgebraWithStructureCoefficients(
|
|
|
172
172
|
# We now add the skew-symmetric part to optimize
|
|
173
173
|
# brackets computations later
|
|
174
174
|
key = (mypair[1], mypair[0])
|
|
175
|
-
if index_to_parity[mypair[0]]*index_to_parity[mypair[1]]:
|
|
175
|
+
if index_to_parity[mypair[0]] * index_to_parity[mypair[1]]:
|
|
176
176
|
parsgn = -1
|
|
177
177
|
else:
|
|
178
178
|
parsgn = 1
|
|
179
179
|
maxpole = max(v)
|
|
180
180
|
vals = {}
|
|
181
|
-
for k in range(maxpole+1):
|
|
181
|
+
for k in range(maxpole + 1):
|
|
182
182
|
kth_product = {}
|
|
183
|
-
for j in range(maxpole+1-k):
|
|
184
|
-
if k+j in v.keys():
|
|
185
|
-
for i in v[k+j]:
|
|
183
|
+
for j in range(maxpole + 1 - k):
|
|
184
|
+
if k + j in v.keys():
|
|
185
|
+
for i in v[k + j]:
|
|
186
186
|
if (i[0] not in ce) or (
|
|
187
187
|
i[0] in ce and i[1] + j == 0):
|
|
188
188
|
kth_product[(i[0], i[1] + j)] = \
|
|
@@ -205,7 +205,7 @@ class LieConformalAlgebraWithStructureCoefficients(
|
|
|
205
205
|
|
|
206
206
|
def __init__(self, R, s_coeff, index_set=None, central_elements=None,
|
|
207
207
|
category=None, element_class=None, prefix=None, names=None,
|
|
208
|
-
latex_names=None, parity=None, **kwds):
|
|
208
|
+
latex_names=None, parity=None, **kwds) -> None:
|
|
209
209
|
"""
|
|
210
210
|
Initialize ``self``.
|
|
211
211
|
|
|
@@ -220,15 +220,15 @@ class LieConformalAlgebraWithStructureCoefficients(
|
|
|
220
220
|
|
|
221
221
|
if names is not None and names != tuple(index_set):
|
|
222
222
|
names2 = names + tuple(central_elements)
|
|
223
|
-
index_set2 = DisjointUnionEnumeratedSets(
|
|
224
|
-
Family(tuple(central_elements))))
|
|
223
|
+
index_set2 = DisjointUnionEnumeratedSets(
|
|
224
|
+
(index_set, Family(tuple(central_elements))))
|
|
225
225
|
d = {x: index_set2[i] for i, x in enumerate(names2)}
|
|
226
226
|
try:
|
|
227
227
|
# If we are given a dictionary with names as keys,
|
|
228
228
|
# convert to index_set as keys
|
|
229
229
|
s_coeff = {(d[k[0]], d[k[1]]):
|
|
230
230
|
{a: {(d[x[1]], x[2]): sck[a][x] for x in sck[a]}
|
|
231
|
-
for a in
|
|
231
|
+
for a in sck}
|
|
232
232
|
for k, sck in s_coeff.items()}
|
|
233
233
|
|
|
234
234
|
except KeyError:
|
|
@@ -284,7 +284,7 @@ class LieConformalAlgebraWithStructureCoefficients(
|
|
|
284
284
|
self._parity = dict(zip(self.gens(),
|
|
285
285
|
parity + (0,) * len(central_elements)))
|
|
286
286
|
|
|
287
|
-
def structure_coefficients(self):
|
|
287
|
+
def structure_coefficients(self) -> Family:
|
|
288
288
|
"""
|
|
289
289
|
The structure coefficients of this Lie conformal algebra.
|
|
290
290
|
|
|
@@ -74,14 +74,14 @@ class N2LieConformalAlgebra(GradedLieConformalAlgebra):
|
|
|
74
74
|
sage: G.bracket(G)
|
|
75
75
|
{0: 2*L, 2: 2/3*C}
|
|
76
76
|
"""
|
|
77
|
-
def __init__(self, R):
|
|
77
|
+
def __init__(self, R) -> None:
|
|
78
78
|
"""
|
|
79
79
|
Initialize ``self``.
|
|
80
80
|
|
|
81
81
|
TESTS::
|
|
82
82
|
|
|
83
83
|
sage: V = lie_conformal_algebras.N2(QQ)
|
|
84
|
-
sage: TestSuite(V).run()
|
|
84
|
+
sage: TestSuite(V).run() # long time (:issue:`39569`)
|
|
85
85
|
"""
|
|
86
86
|
n2dict = {('L', 'L'): {0: {('L', 1): 1},
|
|
87
87
|
1: {('L', 0): 2},
|
|
@@ -105,7 +105,7 @@ class N2LieConformalAlgebra(GradedLieConformalAlgebra):
|
|
|
105
105
|
central_elements=('C',),
|
|
106
106
|
weights=weights, parity=parity)
|
|
107
107
|
|
|
108
|
-
def _repr_(self):
|
|
108
|
+
def _repr_(self) -> str:
|
|
109
109
|
"""
|
|
110
110
|
The name of this Lie conformal algebra.
|
|
111
111
|
|
|
@@ -16,15 +16,15 @@ AUTHORS:
|
|
|
16
16
|
|
|
17
17
|
- Reimundo Heluani (2020-06-03): Initial implementation.
|
|
18
18
|
"""
|
|
19
|
-
|
|
19
|
+
# ***************************************************************************
|
|
20
20
|
# Copyright (C) 2020 Reimundo Heluani <heluani@potuz.net>
|
|
21
21
|
#
|
|
22
22
|
# This program is free software: you can redistribute it and/or modify
|
|
23
23
|
# it under the terms of the GNU General Public License as published by
|
|
24
24
|
# the Free Software Foundation, either version 2 of the License, or
|
|
25
25
|
# (at your option) any later version.
|
|
26
|
-
#
|
|
27
|
-
|
|
26
|
+
# https://www.gnu.org/licenses/
|
|
27
|
+
# ***************************************************************************
|
|
28
28
|
|
|
29
29
|
from .graded_lie_conformal_algebra import GradedLieConformalAlgebra
|
|
30
30
|
|
|
@@ -51,7 +51,7 @@ class NeveuSchwarzLieConformalAlgebra(GradedLieConformalAlgebra):
|
|
|
51
51
|
sage: G.degree()
|
|
52
52
|
3/2
|
|
53
53
|
"""
|
|
54
|
-
def __init__(self, R):
|
|
54
|
+
def __init__(self, R) -> None:
|
|
55
55
|
"""
|
|
56
56
|
Initialize ``self``.
|
|
57
57
|
|
|
@@ -71,9 +71,10 @@ class NeveuSchwarzLieConformalAlgebra(GradedLieConformalAlgebra):
|
|
|
71
71
|
weights = (2, QQ((3, 2)))
|
|
72
72
|
parity = (0, 1)
|
|
73
73
|
GradedLieConformalAlgebra.__init__(self, R, nsdict, names=('L', 'G'),
|
|
74
|
-
|
|
74
|
+
central_elements=('C',),
|
|
75
|
+
weights=weights, parity=parity)
|
|
75
76
|
|
|
76
|
-
def _repr_(self):
|
|
77
|
+
def _repr_(self) -> str:
|
|
77
78
|
"""
|
|
78
79
|
The name of this Lie Conformal algebra.
|
|
79
80
|
|
|
@@ -83,4 +84,4 @@ class NeveuSchwarzLieConformalAlgebra(GradedLieConformalAlgebra):
|
|
|
83
84
|
The Neveu-Schwarz super Lie conformal algebra over Finite Field of size 5
|
|
84
85
|
"""
|
|
85
86
|
return "The Neveu-Schwarz super Lie conformal algebra over {}".\
|
|
86
|
-
|
|
87
|
+
format(self.base_ring())
|
|
@@ -17,15 +17,15 @@ AUTHORS:
|
|
|
17
17
|
- Reimundo Heluani (2019-08-09): Initial implementation.
|
|
18
18
|
"""
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
# ***************************************************************************
|
|
21
21
|
# Copyright (C) 2019 Reimundo Heluani <heluani@potuz.net>
|
|
22
22
|
#
|
|
23
23
|
# This program is free software: you can redistribute it and/or modify
|
|
24
24
|
# it under the terms of the GNU General Public License as published by
|
|
25
25
|
# the Free Software Foundation, either version 2 of the License, or
|
|
26
26
|
# (at your option) any later version.
|
|
27
|
-
#
|
|
28
|
-
|
|
27
|
+
# https://www.gnu.org/licenses/
|
|
28
|
+
# ***************************************************************************
|
|
29
29
|
|
|
30
30
|
from .graded_lie_conformal_algebra import GradedLieConformalAlgebra
|
|
31
31
|
|
|
@@ -54,7 +54,7 @@ class VirasoroLieConformalAlgebra(GradedLieConformalAlgebra):
|
|
|
54
54
|
sage: Vir.gens()
|
|
55
55
|
(L, C)
|
|
56
56
|
"""
|
|
57
|
-
def __init__(self, R):
|
|
57
|
+
def __init__(self, R) -> None:
|
|
58
58
|
"""
|
|
59
59
|
Initialize ``self``.
|
|
60
60
|
|
|
@@ -66,10 +66,11 @@ class VirasoroLieConformalAlgebra(GradedLieConformalAlgebra):
|
|
|
66
66
|
virdict = {('L', 'L'): {0: {('L', 1): 1},
|
|
67
67
|
1: {('L', 0): 2},
|
|
68
68
|
3: {('C', 0): R(2).inverse_of_unit()}}}
|
|
69
|
-
GradedLieConformalAlgebra.__init__(self, R, virdict,
|
|
70
|
-
|
|
69
|
+
GradedLieConformalAlgebra.__init__(self, R, virdict, names=('L',),
|
|
70
|
+
central_elements=('C',),
|
|
71
|
+
weights=(2,))
|
|
71
72
|
|
|
72
|
-
def _repr_(self):
|
|
73
|
+
def _repr_(self) -> str:
|
|
73
74
|
"""
|
|
74
75
|
The name of this Lie conformal algebra.
|
|
75
76
|
|
|
@@ -79,4 +80,4 @@ class VirasoroLieConformalAlgebra(GradedLieConformalAlgebra):
|
|
|
79
80
|
The Virasoro Lie conformal algebra over Algebraic Field
|
|
80
81
|
"""
|
|
81
82
|
return "The Virasoro Lie conformal algebra over {}".format(
|
|
82
|
-
|
|
83
|
+
self.base_ring())
|
|
@@ -143,8 +143,9 @@ class WeylLieConformalAlgebra(LieConformalAlgebraWithStructureCoefficients):
|
|
|
143
143
|
try:
|
|
144
144
|
assert (gram_matrix in MatrixSpace(R, ngens, ngens))
|
|
145
145
|
except AssertionError:
|
|
146
|
-
raise ValueError("the Gram_matrix should be a
|
|
147
|
-
|
|
146
|
+
raise ValueError("the Gram_matrix should be a "
|
|
147
|
+
"skew-symmetric {0} x {0} matrix, got {1}"
|
|
148
|
+
.format(ngens, gram_matrix))
|
|
148
149
|
if (not gram_matrix.is_skew_symmetric() or
|
|
149
150
|
gram_matrix.is_singular()):
|
|
150
151
|
raise ValueError("the Gram_matrix should be a non degenerate "
|
|
@@ -163,8 +164,8 @@ class WeylLieConformalAlgebra(LieConformalAlgebraWithStructureCoefficients):
|
|
|
163
164
|
latex_names = tuple(r'\alpha_{%d}' % i
|
|
164
165
|
for i in range(ngens)) + ('K',)
|
|
165
166
|
names, index_set = standardize_names_index_set(names=names,
|
|
166
|
-
|
|
167
|
-
|
|
167
|
+
index_set=index_set,
|
|
168
|
+
ngens=ngens)
|
|
168
169
|
weyldict = {(i, j): {0: {('K', 0): gram_matrix[index_set.rank(i),
|
|
169
170
|
index_set.rank(j)]}}
|
|
170
171
|
for i in index_set for j in index_set}
|
|
@@ -175,7 +176,7 @@ class WeylLieConformalAlgebra(LieConformalAlgebraWithStructureCoefficients):
|
|
|
175
176
|
central_elements=('K',))
|
|
176
177
|
self._gram_matrix = gram_matrix
|
|
177
178
|
|
|
178
|
-
def _repr_(self):
|
|
179
|
+
def _repr_(self) -> str:
|
|
179
180
|
"""
|
|
180
181
|
The name of this Lie conformal algebra.
|
|
181
182
|
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
"""
|
|
4
4
|
Nil-Coxeter Algebra
|
|
5
5
|
"""
|
|
6
|
-
|
|
6
|
+
# ***************************************************************************
|
|
7
7
|
# Copyright (C) 2011 Chris Berg <cberg at fields.utoronto.ca>
|
|
8
8
|
# Anne Schilling <anne at math.ucdavis.edu>
|
|
9
9
|
#
|
|
10
10
|
# Distributed under the terms of the GNU General Public License (GPL)
|
|
11
|
-
#
|
|
12
|
-
|
|
11
|
+
# https://www.gnu.org/licenses/
|
|
12
|
+
# ***************************************************************************
|
|
13
13
|
from sage.algebras.iwahori_hecke_algebra import IwahoriHeckeAlgebra
|
|
14
14
|
from sage.combinat.sf.sf import SymmetricFunctions
|
|
15
15
|
from sage.misc.misc_c import prod
|
|
@@ -67,7 +67,7 @@ class NilCoxeterAlgebra(IwahoriHeckeAlgebra.T):
|
|
|
67
67
|
H = IwahoriHeckeAlgebra(W, 0, 0, base_ring=base_ring)
|
|
68
68
|
super(IwahoriHeckeAlgebra.T, self).__init__(H, prefix=prefix)
|
|
69
69
|
|
|
70
|
-
def _repr_(self):
|
|
70
|
+
def _repr_(self) -> str:
|
|
71
71
|
r"""
|
|
72
72
|
EXAMPLES::
|
|
73
73
|
|