passagemath-combinat 10.6.1rc3__cp311-cp311-win_amd64.whl → 10.6.44__cp311-cp311-win_amd64.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.44.dist-info/DELVEWHEEL +2 -0
- {passagemath_combinat-10.6.1rc3.dist-info → passagemath_combinat-10.6.44.dist-info}/METADATA +30 -23
- {passagemath_combinat-10.6.1rc3.dist-info → passagemath_combinat-10.6.44.dist-info}/RECORD +76 -75
- passagemath_combinat-10.6.44.dist-info/top_level.txt +3 -0
- passagemath_combinat.libs/libgmp-10-20eff6468ebffd10e3a6f0c3780fee4e.dll +0 -0
- passagemath_combinat.libs/{libsymmetrica-3-1e2c5e20489b005650f13ca8d6065d77.dll → libsymmetrica-3-fa8ae274cd9618eec4c7c5aca1f11bc7.dll} +0 -0
- sage/algebras/all.py +0 -1
- sage/algebras/nil_coxeter_algebra.py +1 -1
- sage/all__sagemath_combinat.py +3 -3
- sage/combinat/chas/fsym.py +2 -2
- sage/combinat/cluster_complex.py +1 -1
- sage/combinat/colored_permutations.py +1 -1
- sage/combinat/crystals/letters.cp311-win_amd64.pyd +0 -0
- sage/combinat/crystals/pbw_datum.cp311-win_amd64.pyd +0 -0
- sage/combinat/crystals/spins.cp311-win_amd64.pyd +0 -0
- sage/combinat/crystals/tensor_product_element.cp311-win_amd64.pyd +0 -0
- sage/combinat/debruijn_sequence.cp311-win_amd64.pyd +0 -0
- sage/combinat/degree_sequences.cp311-win_amd64.pyd +0 -0
- sage/combinat/degree_sequences.pyx +2 -2
- sage/combinat/diagram_algebras.py +1 -1
- sage/combinat/expnums.cp311-win_amd64.pyd +0 -0
- sage/combinat/fast_vector_partitions.cp311-win_amd64.pyd +0 -0
- sage/combinat/gelfand_tsetlin_patterns.py +1 -1
- sage/combinat/growth.py +4 -4
- sage/combinat/matrices/hadamard_matrix.py +15 -11
- sage/combinat/ncsf_qsym/ncsf.py +8 -8
- sage/combinat/parallelogram_polyomino.py +14 -14
- sage/combinat/partition_algebra.py +18 -16
- sage/combinat/path_tableaux/dyck_path.py +1 -1
- sage/combinat/path_tableaux/semistandard.py +1 -1
- sage/combinat/plane_partition.py +1 -1
- sage/combinat/q_bernoulli.cp311-win_amd64.pyd +0 -0
- sage/combinat/quickref.py +1 -1
- sage/combinat/ribbon_shaped_tableau.py +1 -1
- sage/combinat/rigged_configurations/rigged_partition.cp311-win_amd64.pyd +0 -0
- sage/combinat/set_partition_iterator.cp311-win_amd64.pyd +0 -0
- sage/combinat/sf/character.py +7 -7
- sage/combinat/sf/classical.py +1 -1
- sage/combinat/sf/dual.py +2 -2
- sage/combinat/sf/hall_littlewood.py +6 -6
- sage/combinat/sf/hecke.py +1 -1
- sage/combinat/sf/jack.py +5 -5
- sage/combinat/sf/k_dual.py +25 -12
- sage/combinat/sf/llt.py +28 -10
- sage/combinat/sf/monomial.py +1 -1
- sage/combinat/sf/orthogonal.py +1 -1
- sage/combinat/sf/orthotriang.py +2 -2
- sage/combinat/sf/schur.py +14 -7
- sage/combinat/sf/sf.py +22 -15
- sage/combinat/sf/symplectic.py +1 -1
- sage/combinat/skew_partition.py +2 -2
- sage/combinat/sloane_functions.py +5 -3
- sage/combinat/species/cycle_species.py +2 -2
- sage/combinat/subword_complex_c.cp311-win_amd64.pyd +0 -0
- sage/combinat/symmetric_group_algebra.py +1 -1
- sage/combinat/symmetric_group_representations.py +16 -4
- sage/combinat/tableau.py +1 -1
- sage/combinat/tiling.py +19 -19
- sage/combinat/triangles_FHM.py +1 -0
- sage/combinat/tutorial.py +5 -5
- sage/combinat/words/finite_word.py +5 -4
- sage/combinat/words/word.py +24 -16
- sage/combinat/words/word_char.cp311-win_amd64.pyd +0 -0
- sage/combinat/words/word_datatypes.cp311-win_amd64.pyd +0 -0
- sage/combinat/words/word_generators.py +1 -1
- sage/databases/findstat.py +1 -1
- sage/games/sudoku_backtrack.cp311-win_amd64.pyd +0 -0
- sage/libs/symmetrica/symmetrica.cp311-win_amd64.pyd +0 -0
- sage/libs/symmetrica/symmetrica.pxi +1 -0
- sage/monoids/free_abelian_monoid_element.cp311-win_amd64.pyd +0 -0
- sage/monoids/string_monoid.py +8 -0
- sage/monoids/string_monoid_element.py +9 -2
- sage/monoids/string_ops.py +1 -1
- sage/sat/solvers/satsolver.cp311-win_amd64.pyd +0 -0
- passagemath_combinat-10.6.1rc3.dist-info/DELVEWHEEL +0 -2
- passagemath_combinat-10.6.1rc3.dist-info/top_level.txt +0 -2
- passagemath_combinat.libs/libgmp-10-bc1853bff119db9ebb9e2560702badbf.dll +0 -0
- {passagemath_combinat-10.6.1rc3.dist-info → passagemath_combinat-10.6.44.dist-info}/WHEEL +0 -0
|
@@ -244,9 +244,9 @@ The sequences produced by random graphs *are* degree sequences::
|
|
|
244
244
|
|
|
245
245
|
Checking that we indeed enumerate *all* the degree sequences for `n=5`::
|
|
246
246
|
|
|
247
|
-
sage: ds1 = Set([tuple(g.degree_sequence()) for g in graphs(5)]) # needs sage.graphs
|
|
247
|
+
sage: ds1 = Set([tuple(g.degree_sequence()) for g in graphs(5)]) # needs nauty sage.graphs
|
|
248
248
|
sage: ds2 = Set(map(tuple,list(DegreeSequences(5))))
|
|
249
|
-
sage: ds1 == ds2 # needs sage.graphs
|
|
249
|
+
sage: ds1 == ds2 # needs nauty sage.graphs
|
|
250
250
|
True
|
|
251
251
|
|
|
252
252
|
Checking the consistency of enumeration and test::
|
|
@@ -358,7 +358,7 @@ class AbstractPartitionDiagram(AbstractSetPartition):
|
|
|
358
358
|
sage: pd2 = da.AbstractPartitionDiagram(pd, [[[1,2],[-1,-2]]]) # indirect doctest
|
|
359
359
|
Traceback (most recent call last):
|
|
360
360
|
...
|
|
361
|
-
TypeError: unhashable type: 'list'
|
|
361
|
+
TypeError: ...unhashable type: 'list'...
|
|
362
362
|
"""
|
|
363
363
|
if self._base_diagram:
|
|
364
364
|
tst = frozenset(e for B in self._base_diagram for e in B)
|
|
Binary file
|
|
Binary file
|
sage/combinat/growth.py
CHANGED
|
@@ -2427,6 +2427,7 @@ class RuleLLMS(Rule):
|
|
|
2427
2427
|
|
|
2428
2428
|
EXAMPLES::
|
|
2429
2429
|
|
|
2430
|
+
sage: # needs sage.modules
|
|
2430
2431
|
sage: LLMS4 = GrowthDiagram.rules.LLMS(4)
|
|
2431
2432
|
sage: v = LLMS4.vertices(3)[1]; v
|
|
2432
2433
|
[2, 1]
|
|
@@ -3711,12 +3712,12 @@ class RuleRSK(RulePartitions):
|
|
|
3711
3712
|
Instead of passing the rule to :class:`GrowthDiagram`, we can
|
|
3712
3713
|
also call the rule to create growth diagrams. For example::
|
|
3713
3714
|
|
|
3715
|
+
sage: # needs sage.modules
|
|
3714
3716
|
sage: m = matrix([[0,0,0,0,1],[1,1,0,2,0], [0,3,0,0,0]])
|
|
3715
3717
|
sage: G = RuleRSK(m); G
|
|
3716
3718
|
0 0 0 0 1
|
|
3717
3719
|
1 1 0 2 0
|
|
3718
3720
|
0 3 0 0 0
|
|
3719
|
-
|
|
3720
3721
|
sage: ascii_art([G.P_symbol(), G.Q_symbol()])
|
|
3721
3722
|
[ 1 2 2 2 3 1 2 2 2 2 ]
|
|
3722
3723
|
[ 2 3 4 4 ]
|
|
@@ -3736,13 +3737,12 @@ class RuleRSK(RulePartitions):
|
|
|
3736
3737
|
Because the of the coordinate conventions in
|
|
3737
3738
|
:func:`~sage.combinat.rsk.RSK`, we have to transpose matrices::
|
|
3738
3739
|
|
|
3740
|
+
sage: # needs sage.modules
|
|
3739
3741
|
sage: [G.P_symbol(), G.Q_symbol()] == RSK(m.transpose())
|
|
3740
3742
|
True
|
|
3741
|
-
|
|
3742
3743
|
sage: n = 5; l = [(pi, RuleRSK(pi)) for pi in Permutations(n)]
|
|
3743
3744
|
sage: all([G.P_symbol(), G.Q_symbol()] == RSK(pi) for pi, G in l)
|
|
3744
3745
|
True
|
|
3745
|
-
|
|
3746
3746
|
sage: n = 5; l = [(w, RuleRSK(w)) for w in Words([1,2,3], 5)]
|
|
3747
3747
|
sage: all([G.P_symbol(), G.Q_symbol()] == RSK(pi) for pi, G in l)
|
|
3748
3748
|
True
|
|
@@ -3876,12 +3876,12 @@ class RuleBurge(RulePartitions):
|
|
|
3876
3876
|
Instead of passing the rule to :class:`GrowthDiagram`, we can
|
|
3877
3877
|
also call the rule to create growth diagrams. For example::
|
|
3878
3878
|
|
|
3879
|
+
sage: # needs sage.modules
|
|
3879
3880
|
sage: m = matrix([[2,0,0,1,0],[1,1,0,0,0], [0,0,0,0,3]])
|
|
3880
3881
|
sage: G = Burge(m); G
|
|
3881
3882
|
2 0 0 1 0
|
|
3882
3883
|
1 1 0 0 0
|
|
3883
3884
|
0 0 0 0 3
|
|
3884
|
-
|
|
3885
3885
|
sage: ascii_art([G.P_symbol(), G.Q_symbol()])
|
|
3886
3886
|
[ 1 2 3 1 2 5 ]
|
|
3887
3887
|
[ 1 3 1 5 ]
|
|
@@ -350,20 +350,21 @@ def hadamard_matrix_from_symmetric_conference_matrix(n, existence=False, check=T
|
|
|
350
350
|
By default the function returns the Hadamard matrix ::
|
|
351
351
|
|
|
352
352
|
sage: from sage.combinat.matrices.hadamard_matrix import hadamard_matrix_from_symmetric_conference_matrix
|
|
353
|
-
sage: hadamard_matrix_from_symmetric_conference_matrix(20)
|
|
353
|
+
sage: hadamard_matrix_from_symmetric_conference_matrix(20) # needs database_graphs
|
|
354
354
|
20 x 20 dense matrix over Integer Ring...
|
|
355
355
|
|
|
356
356
|
If ``existence`` is set to True, the function returns True if the matrix exists,
|
|
357
357
|
False if the conference matrix does not exist, and Unknown if the conference
|
|
358
358
|
matrix cannot be constructed yet ::
|
|
359
359
|
|
|
360
|
-
sage: hadamard_matrix_from_symmetric_conference_matrix(12, existence=True)
|
|
360
|
+
sage: hadamard_matrix_from_symmetric_conference_matrix(12, existence=True) # needs database_graphs
|
|
361
361
|
True
|
|
362
|
-
sage: hadamard_matrix_from_symmetric_conference_matrix(4*787, existence=True)
|
|
362
|
+
sage: hadamard_matrix_from_symmetric_conference_matrix(4*787, existence=True) # needs database_graphs
|
|
363
363
|
True
|
|
364
364
|
|
|
365
365
|
TESTS::
|
|
366
366
|
|
|
367
|
+
sage: # needs database_graphs
|
|
367
368
|
sage: from sage.combinat.matrices.hadamard_matrix import is_hadamard_matrix
|
|
368
369
|
sage: is_hadamard_matrix(hadamard_matrix_from_symmetric_conference_matrix(60, check=False))
|
|
369
370
|
True
|
|
@@ -430,16 +431,17 @@ def hadamard_matrix_miyamoto_construction(n, existence=False, check=True):
|
|
|
430
431
|
By default the function returns the Hadamard matrix ::
|
|
431
432
|
|
|
432
433
|
sage: from sage.combinat.matrices.hadamard_matrix import hadamard_matrix_miyamoto_construction
|
|
433
|
-
sage: hadamard_matrix_miyamoto_construction(20)
|
|
434
|
+
sage: hadamard_matrix_miyamoto_construction(20) # needs database_graphs
|
|
434
435
|
20 x 20 dense matrix over Integer Ring...
|
|
435
436
|
|
|
436
437
|
If ``existence`` is set to True, the function returns a boolean ::
|
|
437
438
|
|
|
438
|
-
sage: hadamard_matrix_miyamoto_construction(36, existence=True)
|
|
439
|
+
sage: hadamard_matrix_miyamoto_construction(36, existence=True) # needs database_graphs
|
|
439
440
|
True
|
|
440
441
|
|
|
441
442
|
TESTS::
|
|
442
443
|
|
|
444
|
+
sage: # needs database_graphs
|
|
443
445
|
sage: from sage.combinat.matrices.hadamard_matrix import is_hadamard_matrix
|
|
444
446
|
sage: is_hadamard_matrix(hadamard_matrix_miyamoto_construction(68, check=False))
|
|
445
447
|
True
|
|
@@ -1808,7 +1810,7 @@ def hadamard_matrix(n, existence=False, check=True, construction_name=False):
|
|
|
1808
1810
|
False
|
|
1809
1811
|
sage: matrix.hadamard(12,existence=True)
|
|
1810
1812
|
True
|
|
1811
|
-
sage: matrix.hadamard(668,existence=True)
|
|
1813
|
+
sage: matrix.hadamard(668,existence=True) # needs database_graphs
|
|
1812
1814
|
Unknown
|
|
1813
1815
|
sage: matrix.hadamard(10)
|
|
1814
1816
|
Traceback (most recent call last):
|
|
@@ -1960,7 +1962,7 @@ def hadamard_matrix_www(url_file, comments=False):
|
|
|
1960
1962
|
[ 1 -1 -1 1 1 1 -1 -1 -1 1 1 -1 -1 -1 1 1]
|
|
1961
1963
|
[ 1 -1 -1 1 -1 -1 1 1 -1 1 1 -1 1 1 -1 -1]
|
|
1962
1964
|
"""
|
|
1963
|
-
n =
|
|
1965
|
+
n = int(url_file.split(".")[1])
|
|
1964
1966
|
rws = []
|
|
1965
1967
|
url = "http://neilsloane.com/hadamard/" + url_file
|
|
1966
1968
|
with urlopen(url) as f:
|
|
@@ -2037,7 +2039,7 @@ def regular_symmetric_hadamard_matrix_with_constant_diagonal(n, e, existence=Fal
|
|
|
2037
2039
|
|
|
2038
2040
|
Recursive construction::
|
|
2039
2041
|
|
|
2040
|
-
sage: regular_symmetric_hadamard_matrix_with_constant_diagonal(144,-1)
|
|
2042
|
+
sage: regular_symmetric_hadamard_matrix_with_constant_diagonal(144,-1) # needs database_graphs
|
|
2041
2043
|
144 x 144 dense matrix over Integer Ring (use the '.str()' method to see the entries)
|
|
2042
2044
|
|
|
2043
2045
|
REFERENCE:
|
|
@@ -3378,7 +3380,7 @@ def symmetric_conference_matrix(n, check=True, existence=False):
|
|
|
3378
3380
|
EXAMPLES::
|
|
3379
3381
|
|
|
3380
3382
|
sage: from sage.combinat.matrices.hadamard_matrix import symmetric_conference_matrix
|
|
3381
|
-
sage: C = symmetric_conference_matrix(10); C
|
|
3383
|
+
sage: C = symmetric_conference_matrix(10); C # needs database_graphs
|
|
3382
3384
|
[ 0 1 1 1 1 1 1 1 1 1]
|
|
3383
3385
|
[ 1 0 -1 -1 1 -1 1 1 1 -1]
|
|
3384
3386
|
[ 1 -1 0 -1 1 1 -1 -1 1 1]
|
|
@@ -3389,7 +3391,7 @@ def symmetric_conference_matrix(n, check=True, existence=False):
|
|
|
3389
3391
|
[ 1 1 -1 1 1 1 -1 0 -1 -1]
|
|
3390
3392
|
[ 1 1 1 -1 -1 1 1 -1 0 -1]
|
|
3391
3393
|
[ 1 -1 1 1 1 -1 1 -1 -1 0]
|
|
3392
|
-
sage: C^2 == 9*identity_matrix(10) and C == C.T
|
|
3394
|
+
sage: C^2 == 9*identity_matrix(10) and C == C.T # needs database_graphs
|
|
3393
3395
|
True
|
|
3394
3396
|
"""
|
|
3395
3397
|
from sage.graphs.strongly_regular_db import strongly_regular_graph as srg
|
|
@@ -3505,6 +3507,7 @@ def rshcd_from_prime_power_and_conference_matrix(n):
|
|
|
3505
3507
|
|
|
3506
3508
|
A 36x36 example ::
|
|
3507
3509
|
|
|
3510
|
+
sage: # needs database_graphs
|
|
3508
3511
|
sage: from sage.combinat.matrices.hadamard_matrix import rshcd_from_prime_power_and_conference_matrix
|
|
3509
3512
|
sage: from sage.combinat.matrices.hadamard_matrix import is_hadamard_matrix
|
|
3510
3513
|
sage: H = rshcd_from_prime_power_and_conference_matrix(7); H
|
|
@@ -3514,6 +3517,7 @@ def rshcd_from_prime_power_and_conference_matrix(n):
|
|
|
3514
3517
|
|
|
3515
3518
|
Bigger examples, only provided by this construction ::
|
|
3516
3519
|
|
|
3520
|
+
sage: # needs database_graphs
|
|
3517
3521
|
sage: H = rshcd_from_prime_power_and_conference_matrix(27) # long time
|
|
3518
3522
|
sage: H == H.T and is_hadamard_matrix(H) # long time
|
|
3519
3523
|
True
|
|
@@ -3522,7 +3526,7 @@ def rshcd_from_prime_power_and_conference_matrix(n):
|
|
|
3522
3526
|
|
|
3523
3527
|
In this example the conference matrix is not Paley, as 45 is not a prime power ::
|
|
3524
3528
|
|
|
3525
|
-
sage: H = rshcd_from_prime_power_and_conference_matrix(47) # not tested (long time)
|
|
3529
|
+
sage: H = rshcd_from_prime_power_and_conference_matrix(47) # not tested (long time), needs database_graphs
|
|
3526
3530
|
|
|
3527
3531
|
REFERENCE:
|
|
3528
3532
|
|
sage/combinat/ncsf_qsym/ncsf.py
CHANGED
|
@@ -576,7 +576,7 @@ class NonCommutativeSymmetricFunctions(UniqueRepresentation, Parent):
|
|
|
576
576
|
|
|
577
577
|
EXAMPLES::
|
|
578
578
|
|
|
579
|
-
sage: # needs
|
|
579
|
+
sage: # needs lrcalc_python
|
|
580
580
|
sage: N = NonCommutativeSymmetricFunctions(QQ)
|
|
581
581
|
sage: R = N.ribbon()
|
|
582
582
|
sage: x = R.an_element(); x
|
|
@@ -1044,7 +1044,7 @@ class NonCommutativeSymmetricFunctions(UniqueRepresentation, Parent):
|
|
|
1044
1044
|
|
|
1045
1045
|
Testing the `\pi(f^{\ast}) = \pi(f)` relation noticed above::
|
|
1046
1046
|
|
|
1047
|
-
sage: # needs
|
|
1047
|
+
sage: # needs lrcalc_python
|
|
1048
1048
|
sage: NSym = NonCommutativeSymmetricFunctions(QQ)
|
|
1049
1049
|
sage: R = NSym.R()
|
|
1050
1050
|
sage: all( R(I).star_involution().to_symmetric_function()
|
|
@@ -1170,7 +1170,7 @@ class NonCommutativeSymmetricFunctions(UniqueRepresentation, Parent):
|
|
|
1170
1170
|
Testing the `\pi(\omega(f)) = \omega(\pi(f))` relation noticed
|
|
1171
1171
|
above::
|
|
1172
1172
|
|
|
1173
|
-
sage: # needs
|
|
1173
|
+
sage: # needs lrcalc_python
|
|
1174
1174
|
sage: NSym = NonCommutativeSymmetricFunctions(QQ)
|
|
1175
1175
|
sage: R = NSym.R()
|
|
1176
1176
|
sage: all( R(I).omega_involution().to_symmetric_function()
|
|
@@ -1284,7 +1284,7 @@ class NonCommutativeSymmetricFunctions(UniqueRepresentation, Parent):
|
|
|
1284
1284
|
|
|
1285
1285
|
sage: NSym = NonCommutativeSymmetricFunctions(QQ)
|
|
1286
1286
|
sage: R = NSym.R()
|
|
1287
|
-
sage: all( R(I).psi_involution().to_symmetric_function()
|
|
1287
|
+
sage: all( R(I).psi_involution().to_symmetric_function() # needs lrcalc_python
|
|
1288
1288
|
....: == R(I).to_symmetric_function().omega()
|
|
1289
1289
|
....: for I in Compositions(4) )
|
|
1290
1290
|
True
|
|
@@ -1296,7 +1296,7 @@ class NonCommutativeSymmetricFunctions(UniqueRepresentation, Parent):
|
|
|
1296
1296
|
sage: M = QSym.M()
|
|
1297
1297
|
sage: NSym = NonCommutativeSymmetricFunctions(QQ)
|
|
1298
1298
|
sage: S = NSym.S()
|
|
1299
|
-
sage: all( all( M(I).psi_involution().duality_pairing(S(J))
|
|
1299
|
+
sage: all( all( M(I).psi_involution().duality_pairing(S(J)) # needs lrcalc_python
|
|
1300
1300
|
....: == M(I).duality_pairing(S(J).psi_involution())
|
|
1301
1301
|
....: for I in Compositions(2) )
|
|
1302
1302
|
....: for J in Compositions(3) )
|
|
@@ -1497,7 +1497,7 @@ class NonCommutativeSymmetricFunctions(UniqueRepresentation, Parent):
|
|
|
1497
1497
|
....: if x != y:
|
|
1498
1498
|
....: return False
|
|
1499
1499
|
....: return True
|
|
1500
|
-
sage: testpi(3) # needs
|
|
1500
|
+
sage: testpi(3) # needs lrcalc_python
|
|
1501
1501
|
True
|
|
1502
1502
|
|
|
1503
1503
|
TESTS::
|
|
@@ -1682,7 +1682,7 @@ class NonCommutativeSymmetricFunctions(UniqueRepresentation, Parent):
|
|
|
1682
1682
|
|
|
1683
1683
|
EXAMPLES::
|
|
1684
1684
|
|
|
1685
|
-
sage: # needs
|
|
1685
|
+
sage: # needs lrcalc_python
|
|
1686
1686
|
sage: N = NonCommutativeSymmetricFunctions(QQ)
|
|
1687
1687
|
sage: R = N.ribbon()
|
|
1688
1688
|
sage: x = R.an_element(); x
|
|
@@ -2669,7 +2669,7 @@ class NonCommutativeSymmetricFunctions(UniqueRepresentation, Parent):
|
|
|
2669
2669
|
|
|
2670
2670
|
EXAMPLES::
|
|
2671
2671
|
|
|
2672
|
-
sage: # needs
|
|
2672
|
+
sage: # needs lrcalc_python
|
|
2673
2673
|
sage: R = NonCommutativeSymmetricFunctions(QQ).R()
|
|
2674
2674
|
sage: R.to_symmetric_function_on_basis(Composition([3,1,1]))
|
|
2675
2675
|
s[3, 1, 1]
|
|
@@ -569,7 +569,7 @@ class _drawing_tool:
|
|
|
569
569
|
|
|
570
570
|
EXAMPLES::
|
|
571
571
|
|
|
572
|
-
sage: # needs sage.plot
|
|
572
|
+
sage: # needs sage.plot sage.symbolic
|
|
573
573
|
sage: from sage.combinat.parallelogram_polyomino import (
|
|
574
574
|
....: _drawing_tool, default_tikz_options,
|
|
575
575
|
....: ParallelogramPolyominoesOptions
|
|
@@ -606,7 +606,7 @@ class _drawing_tool:
|
|
|
606
606
|
|
|
607
607
|
EXAMPLES::
|
|
608
608
|
|
|
609
|
-
sage: # needs sage.plot
|
|
609
|
+
sage: # needs sage.plot sage.symbolic
|
|
610
610
|
sage: from sage.combinat.parallelogram_polyomino import (
|
|
611
611
|
....: _drawing_tool, default_tikz_options,
|
|
612
612
|
....: ParallelogramPolyominoesOptions
|
|
@@ -645,7 +645,7 @@ class _drawing_tool:
|
|
|
645
645
|
|
|
646
646
|
EXAMPLES::
|
|
647
647
|
|
|
648
|
-
sage: # needs sage.plot
|
|
648
|
+
sage: # needs sage.plot sage.symbolic
|
|
649
649
|
sage: from sage.combinat.parallelogram_polyomino import (
|
|
650
650
|
....: _drawing_tool, ParallelogramPolyominoesOptions
|
|
651
651
|
....: )
|
|
@@ -756,7 +756,7 @@ class _drawing_tool:
|
|
|
756
756
|
|
|
757
757
|
EXAMPLES::
|
|
758
758
|
|
|
759
|
-
sage: # needs sage.plot
|
|
759
|
+
sage: # needs sage.plot sage.symbolic
|
|
760
760
|
sage: from sage.combinat.parallelogram_polyomino import (
|
|
761
761
|
....: _drawing_tool, ParallelogramPolyominoesOptions
|
|
762
762
|
....: )
|
|
@@ -796,7 +796,7 @@ class _drawing_tool:
|
|
|
796
796
|
|
|
797
797
|
EXAMPLES::
|
|
798
798
|
|
|
799
|
-
sage: # needs sage.plot
|
|
799
|
+
sage: # needs sage.plot sage.symbolic
|
|
800
800
|
sage: from sage.combinat.parallelogram_polyomino import (
|
|
801
801
|
....: _drawing_tool, ParallelogramPolyominoesOptions
|
|
802
802
|
....: )
|
|
@@ -833,7 +833,7 @@ class _drawing_tool:
|
|
|
833
833
|
|
|
834
834
|
EXAMPLES::
|
|
835
835
|
|
|
836
|
-
sage: # needs sage.plot
|
|
836
|
+
sage: # needs sage.plot sage.symbolic
|
|
837
837
|
sage: from sage.combinat.parallelogram_polyomino import (
|
|
838
838
|
....: _drawing_tool, ParallelogramPolyominoesOptions
|
|
839
839
|
....: )
|
|
@@ -1463,7 +1463,7 @@ class ParallelogramPolyomino(ClonableList,
|
|
|
1463
1463
|
....: [1, 1, 0, 1, 1, 0, 0, 0, 1, 0]
|
|
1464
1464
|
....: ]
|
|
1465
1465
|
....: )
|
|
1466
|
-
sage: pp._to_binary_tree_Aval_Boussicault()
|
|
1466
|
+
sage: pp._to_binary_tree_Aval_Boussicault() # needs sage.graphs
|
|
1467
1467
|
[[., [[., .], [[., [., .]], .]]], [[., .], .]]
|
|
1468
1468
|
|
|
1469
1469
|
sage: pp = ParallelogramPolyomino([[0, 1], [1, 0]])
|
|
@@ -1522,7 +1522,7 @@ class ParallelogramPolyomino(ClonableList,
|
|
|
1522
1522
|
....: [1, 1, 0, 1, 1, 0, 0, 0, 1, 0]
|
|
1523
1523
|
....: ]
|
|
1524
1524
|
....: )
|
|
1525
|
-
sage: pp.to_binary_tree()
|
|
1525
|
+
sage: pp.to_binary_tree() # needs sage.graphs
|
|
1526
1526
|
[[., [[., .], [[., [., .]], .]]], [[., .], .]]
|
|
1527
1527
|
|
|
1528
1528
|
sage: pp = ParallelogramPolyomino([[0, 1], [1, 0]])
|
|
@@ -2703,7 +2703,7 @@ class ParallelogramPolyomino(ClonableList,
|
|
|
2703
2703
|
|
|
2704
2704
|
TESTS::
|
|
2705
2705
|
|
|
2706
|
-
sage: # needs sage.plot
|
|
2706
|
+
sage: # needs sage.plot sage.symbolic
|
|
2707
2707
|
sage: pp = ParallelogramPolyomino(
|
|
2708
2708
|
....: [[0, 0, 1, 0, 0, 0, 1, 1], [1, 0, 1, 1, 0, 0, 0, 0]]
|
|
2709
2709
|
....: )
|
|
@@ -2772,7 +2772,7 @@ class ParallelogramPolyomino(ClonableList,
|
|
|
2772
2772
|
|
|
2773
2773
|
TESTS::
|
|
2774
2774
|
|
|
2775
|
-
sage: # needs sage.plot
|
|
2775
|
+
sage: # needs sage.plot sage.symbolic
|
|
2776
2776
|
sage: pp = ParallelogramPolyomino(
|
|
2777
2777
|
....: [[0, 0, 0, 1, 1, 0, 1, 1], [1, 0, 1, 1, 0, 1, 0, 0]]
|
|
2778
2778
|
....: )
|
|
@@ -2886,7 +2886,7 @@ class ParallelogramPolyomino(ClonableList,
|
|
|
2886
2886
|
|
|
2887
2887
|
TESTS::
|
|
2888
2888
|
|
|
2889
|
-
sage: # needs sage.plot
|
|
2889
|
+
sage: # needs sage.plot sage.symbolic
|
|
2890
2890
|
sage: pp = ParallelogramPolyomino(
|
|
2891
2891
|
....: [[0, 0, 0, 1, 1, 0, 1, 1], [1, 0, 1, 1, 0, 1, 0, 0]]
|
|
2892
2892
|
....: )
|
|
@@ -3509,7 +3509,7 @@ class ParallelogramPolyomino(ClonableList,
|
|
|
3509
3509
|
|
|
3510
3510
|
EXAMPLES::
|
|
3511
3511
|
|
|
3512
|
-
sage: # needs sage.plot
|
|
3512
|
+
sage: # needs sage.plot sage.symbolic
|
|
3513
3513
|
sage: pp = ParallelogramPolyomino(
|
|
3514
3514
|
....: [[0,0,0,1,1,0,1,0,0,1,1,1],[1,1,1,0,0,1,1,0,0,1,0,0]]
|
|
3515
3515
|
....: )
|
|
@@ -3887,7 +3887,7 @@ class ParallelogramPolyomino(ClonableList,
|
|
|
3887
3887
|
|
|
3888
3888
|
EXAMPLES::
|
|
3889
3889
|
|
|
3890
|
-
sage: # needs sage.plot
|
|
3890
|
+
sage: # needs sage.plot sage.symbolic
|
|
3891
3891
|
sage: pp = ParallelogramPolyomino([[0,1],[1,0]])
|
|
3892
3892
|
sage: latex(pp)
|
|
3893
3893
|
<BLANKLINE>
|
|
@@ -3906,7 +3906,7 @@ class ParallelogramPolyomino(ClonableList,
|
|
|
3906
3906
|
|
|
3907
3907
|
EXAMPLES::
|
|
3908
3908
|
|
|
3909
|
-
sage: # needs sage.plot
|
|
3909
|
+
sage: # needs sage.plot sage.symbolic
|
|
3910
3910
|
sage: pp = ParallelogramPolyomino([[0,1],[1,0]])
|
|
3911
3911
|
sage: print(pp._latex_drawing())
|
|
3912
3912
|
<BLANKLINE>
|
|
@@ -115,10 +115,10 @@ def SetPartitionsAk(k):
|
|
|
115
115
|
{{1, 2, 3, -1, -3, -2}}
|
|
116
116
|
sage: A3.last() #random
|
|
117
117
|
{{-1}, {-2}, {3}, {1}, {-3}, {2}}
|
|
118
|
-
sage: A3.random_element() #random
|
|
118
|
+
sage: A3.random_element() #random # needs sage.symbolic
|
|
119
119
|
{{1, 3, -3, -1}, {2, -2}}
|
|
120
120
|
|
|
121
|
-
sage: A3.cardinality()
|
|
121
|
+
sage: A3.cardinality() # needs sage.libs.flint
|
|
122
122
|
203
|
|
123
123
|
|
|
124
124
|
sage: A2p5 = SetPartitionsAk(2.5); A2p5
|
|
@@ -130,7 +130,7 @@ def SetPartitionsAk(k):
|
|
|
130
130
|
{{1, 2, 3, -1, -3, -2}}
|
|
131
131
|
sage: A2p5.last() #random
|
|
132
132
|
{{-1}, {-2}, {2}, {3, -3}, {1}}
|
|
133
|
-
sage: A2p5.random_element() #random
|
|
133
|
+
sage: A2p5.random_element() #random # needs sage.symbolic
|
|
134
134
|
{{-1}, {-2}, {3, -3}, {1, 2}}
|
|
135
135
|
"""
|
|
136
136
|
is_int, k = _int_or_half_int(k)
|
|
@@ -272,7 +272,7 @@ def SetPartitionsSk(k):
|
|
|
272
272
|
{{2, -2}, {3, -3}, {1, -1}}
|
|
273
273
|
sage: S3.last() #random
|
|
274
274
|
{{1, -3}, {2, -2}, {3, -1}}
|
|
275
|
-
sage: S3.random_element() #random
|
|
275
|
+
sage: S3.random_element() #random # needs sage.symbolic
|
|
276
276
|
{{1, -3}, {2, -1}, {3, -2}}
|
|
277
277
|
|
|
278
278
|
sage: S3p5 = SetPartitionsSk(3.5); S3p5
|
|
@@ -291,7 +291,7 @@ def SetPartitionsSk(k):
|
|
|
291
291
|
{{2, -2}, {3, -3}, {1, -1}, {4, -4}}
|
|
292
292
|
sage: S3p5.last() #random
|
|
293
293
|
{{1, -3}, {2, -2}, {4, -4}, {3, -1}}
|
|
294
|
-
sage: S3p5.random_element() #random
|
|
294
|
+
sage: S3p5.random_element() #random # needs sage.symbolic
|
|
295
295
|
{{1, -3}, {2, -2}, {4, -4}, {3, -1}}
|
|
296
296
|
"""
|
|
297
297
|
is_int, k = _int_or_half_int(k)
|
|
@@ -460,7 +460,7 @@ def SetPartitionsIk(k):
|
|
|
460
460
|
{{1, 2, 3, -1, -3, -2}}
|
|
461
461
|
sage: I3.last() #random
|
|
462
462
|
{{-1}, {-2}, {3}, {1}, {-3}, {2}}
|
|
463
|
-
sage: I3.random_element() #random
|
|
463
|
+
sage: I3.random_element() #random # needs sage.symbolic
|
|
464
464
|
{{-1}, {-3, -2}, {2, 3}, {1}}
|
|
465
465
|
|
|
466
466
|
sage: I2p5 = SetPartitionsIk(2.5); I2p5
|
|
@@ -472,7 +472,7 @@ def SetPartitionsIk(k):
|
|
|
472
472
|
{{1, 2, 3, -1, -3, -2}}
|
|
473
473
|
sage: I2p5.last() #random
|
|
474
474
|
{{-1}, {-2}, {2}, {3, -3}, {1}}
|
|
475
|
-
sage: I2p5.random_element() #random
|
|
475
|
+
sage: I2p5.random_element() #random # needs sage.symbolic
|
|
476
476
|
{{-1}, {-2}, {1, 3, -3}, {2}}
|
|
477
477
|
"""
|
|
478
478
|
is_int, k = _int_or_half_int(k)
|
|
@@ -616,11 +616,12 @@ def SetPartitionsBk(k):
|
|
|
616
616
|
sage: B3 = SetPartitionsBk(3); B3
|
|
617
617
|
Set partitions of {1, ..., 3, -1, ..., -3} with block size 2
|
|
618
618
|
|
|
619
|
+
sage: # needs sage.graphs
|
|
619
620
|
sage: B3.first() #random
|
|
620
621
|
{{2, -2}, {1, -3}, {3, -1}}
|
|
621
622
|
sage: B3.last() #random
|
|
622
623
|
{{1, 2}, {3, -2}, {-3, -1}}
|
|
623
|
-
sage: B3.random_element() #random
|
|
624
|
+
sage: B3.random_element() #random # needs sage.symbolic
|
|
624
625
|
{{2, -1}, {1, -3}, {3, -2}}
|
|
625
626
|
|
|
626
627
|
sage: B3.cardinality()
|
|
@@ -629,11 +630,12 @@ def SetPartitionsBk(k):
|
|
|
629
630
|
sage: B2p5 = SetPartitionsBk(2.5); B2p5
|
|
630
631
|
Set partitions of {1, ..., 3, -1, ..., -3} with 3 and -3 in the same block and with block size 2
|
|
631
632
|
|
|
633
|
+
sage: # needs sage.graphs
|
|
632
634
|
sage: B2p5.first() #random
|
|
633
635
|
{{2, -1}, {3, -3}, {1, -2}}
|
|
634
636
|
sage: B2p5.last() #random
|
|
635
637
|
{{1, 2}, {3, -3}, {-1, -2}}
|
|
636
|
-
sage: B2p5.random_element() #random
|
|
638
|
+
sage: B2p5.random_element() #random # needs sage.symbolic
|
|
637
639
|
{{2, -2}, {3, -3}, {1, -1}}
|
|
638
640
|
|
|
639
641
|
sage: B2p5.cardinality()
|
|
@@ -703,14 +705,14 @@ class SetPartitionsBk_k(SetPartitionsAk_k):
|
|
|
703
705
|
"""
|
|
704
706
|
TESTS::
|
|
705
707
|
|
|
706
|
-
sage: SetPartitionsBk(1).list()
|
|
708
|
+
sage: SetPartitionsBk(1).list() # needs sage.graphs
|
|
707
709
|
[{{-1, 1}}]
|
|
708
710
|
|
|
709
711
|
::
|
|
710
712
|
|
|
711
|
-
sage: SetPartitionsBk(2).list() #random
|
|
713
|
+
sage: SetPartitionsBk(2).list() #random # needs sage.graphs
|
|
712
714
|
[{{2, -1}, {1, -2}}, {{2, -2}, {1, -1}}, {{1, 2}, {-1, -2}}]
|
|
713
|
-
sage: SetPartitionsBk(3).list() #random
|
|
715
|
+
sage: SetPartitionsBk(3).list() #random # needs sage.graphs
|
|
714
716
|
[{{2, -2}, {1, -3}, {3, -1}},
|
|
715
717
|
{{2, -1}, {1, -3}, {3, -2}},
|
|
716
718
|
{{1, -3}, {2, 3}, {-1, -2}},
|
|
@@ -733,7 +735,7 @@ class SetPartitionsBk_k(SetPartitionsAk_k):
|
|
|
733
735
|
::
|
|
734
736
|
|
|
735
737
|
sage: bks = [SetPartitionsBk(i) for i in range(1, 6)]
|
|
736
|
-
sage: all(bk.cardinality() == len(bk.list()) for bk in bks)
|
|
738
|
+
sage: all(bk.cardinality() == len(bk.list()) for bk in bks) # needs sage.graphs
|
|
737
739
|
True
|
|
738
740
|
"""
|
|
739
741
|
for sp in SetPartitions(self._set, [2] * (len(self._set) // 2)):
|
|
@@ -833,7 +835,7 @@ def SetPartitionsPk(k):
|
|
|
833
835
|
{{1, 2, 3, -1, -3, -2}}
|
|
834
836
|
sage: P3.last() #random
|
|
835
837
|
{{-1}, {-2}, {3}, {1}, {-3}, {2}}
|
|
836
|
-
sage: P3.random_element() #random
|
|
838
|
+
sage: P3.random_element() #random # needs sage.symbolic
|
|
837
839
|
{{1, 2, -1}, {-3}, {3, -2}}
|
|
838
840
|
|
|
839
841
|
sage: P2p5 = SetPartitionsPk(2.5); P2p5
|
|
@@ -845,7 +847,7 @@ def SetPartitionsPk(k):
|
|
|
845
847
|
{{1, 2, 3, -1, -3, -2}}
|
|
846
848
|
sage: P2p5.last() #random
|
|
847
849
|
{{-1}, {-2}, {2}, {3, -3}, {1}}
|
|
848
|
-
sage: P2p5.random_element() #random
|
|
850
|
+
sage: P2p5.random_element() #random # needs sage.symbolic
|
|
849
851
|
{{1, 2, 3, -3}, {-1, -2}}
|
|
850
852
|
"""
|
|
851
853
|
is_int, k = _int_or_half_int(k)
|
|
@@ -1002,7 +1004,7 @@ def SetPartitionsTk(k):
|
|
|
1002
1004
|
{{1, -3}, {2, 3}, {-1, -2}}
|
|
1003
1005
|
sage: T3.last() # random
|
|
1004
1006
|
{{1, 2}, {3, -1}, {-3, -2}}
|
|
1005
|
-
sage: T3.random_element() # random
|
|
1007
|
+
sage: T3.random_element() # random # needs sage.symbolic
|
|
1006
1008
|
{{1, -3}, {2, 3}, {-1, -2}}
|
|
1007
1009
|
|
|
1008
1010
|
sage: T2p5 = SetPartitionsTk(2.5); T2p5
|
|
@@ -139,7 +139,7 @@ class DyckPath(PathTableau):
|
|
|
139
139
|
sage: path_tableaux.DyckPath([0,1,2.5,1,0])
|
|
140
140
|
Traceback (most recent call last):
|
|
141
141
|
...
|
|
142
|
-
ValueError: [0, 1, 2.
|
|
142
|
+
ValueError: [0, 1, 2.5..., 1, 0] is not a sequence of integers
|
|
143
143
|
sage: path_tableaux.DyckPath(Partition([3,2,1]))
|
|
144
144
|
Traceback (most recent call last):
|
|
145
145
|
...
|
|
@@ -137,7 +137,7 @@ class SemistandardPathTableau(PathTableau):
|
|
|
137
137
|
[(), (5/2,), (7/2, 2)]
|
|
138
138
|
|
|
139
139
|
sage: path_tableaux.SemistandardPathTableau([[], [2.5], [3.5,2]])
|
|
140
|
-
[(), (2.
|
|
140
|
+
[(), (2.5...,), (3.5..., 2)]
|
|
141
141
|
"""
|
|
142
142
|
|
|
143
143
|
@staticmethod
|
sage/combinat/plane_partition.py
CHANGED
|
@@ -662,7 +662,7 @@ class PlanePartition(ClonableArray,
|
|
|
662
662
|
EXAMPLES::
|
|
663
663
|
|
|
664
664
|
sage: PP = PlanePartition([[4,3,3,1],[2,1,1],[1,1]])
|
|
665
|
-
sage: PP.plot() # needs sage.plot
|
|
665
|
+
sage: PP.plot() # needs sage.plot sage.symbolic
|
|
666
666
|
Graphics object consisting of 27 graphics primitives
|
|
667
667
|
"""
|
|
668
668
|
from sage.functions.trig import cos, sin
|
|
Binary file
|
sage/combinat/quickref.py
CHANGED
|
@@ -49,7 +49,7 @@ Polytopes::
|
|
|
49
49
|
|
|
50
50
|
sage: points = random_matrix(ZZ, 6, 3, x=7).rows() # needs sage.modules
|
|
51
51
|
sage: L = LatticePolytope(points) # needs sage.geometry.polyhedron sage.modules
|
|
52
|
-
sage: L.npoints(); L.plot3d() # random # needs sage.geometry.polyhedron sage.modules sage.plot
|
|
52
|
+
sage: L.npoints(); L.plot3d() # random # needs palp sage.geometry.polyhedron sage.modules sage.plot
|
|
53
53
|
|
|
54
54
|
:ref:`Root systems, Coxeter and Weyl groups <sage.combinat.root_system.all>`::
|
|
55
55
|
|
|
@@ -453,7 +453,7 @@ class StandardRibbonShapedTableaux_shape(StandardRibbonShapedTableaux):
|
|
|
453
453
|
|
|
454
454
|
EXAMPLES::
|
|
455
455
|
|
|
456
|
-
sage: [t for t in StandardRibbonShapedTableaux([2,2])] # needs sage.graphs
|
|
456
|
+
sage: [t for t in StandardRibbonShapedTableaux([2,2])] # needs sage.graphs sage.modules
|
|
457
457
|
[[[None, 1, 3], [2, 4]],
|
|
458
458
|
[[None, 1, 2], [3, 4]],
|
|
459
459
|
[[None, 2, 3], [1, 4]],
|
|
Binary file
|
|
Binary file
|
sage/combinat/sf/character.py
CHANGED
|
@@ -100,7 +100,7 @@ class Character_generic(SFA_generic):
|
|
|
100
100
|
sage: s = Sym.s()
|
|
101
101
|
sage: st._other_to_self(s[1] + s([]))
|
|
102
102
|
2*st[] + st[1]
|
|
103
|
-
sage: 7 * st[[]] * st[[]]
|
|
103
|
+
sage: 7 * st[[]] * st[[]] # needs lrcalc_python
|
|
104
104
|
7*st[]
|
|
105
105
|
"""
|
|
106
106
|
if sexpr == 0:
|
|
@@ -182,7 +182,7 @@ class InducedTrivialCharacterBasis(Character_generic):
|
|
|
182
182
|
st[] + 2*st[1] + st[1, 1] + 2*st[2] + st[2, 1] + st[3]
|
|
183
183
|
sage: ht(st[2,1])
|
|
184
184
|
ht[1] - ht[1, 1] + ht[2, 1] - ht[3]
|
|
185
|
-
sage: ht[2]*ht[1,1]
|
|
185
|
+
sage: ht[2]*ht[1,1] # needs lrcalc_python
|
|
186
186
|
ht[1, 1] + 2*ht[1, 1, 1] + ht[2, 1, 1]
|
|
187
187
|
sage: h[4,2].kronecker_product(h[4,1,1])
|
|
188
188
|
h[2, 2, 1, 1] + 2*h[3, 1, 1, 1] + h[4, 1, 1]
|
|
@@ -190,14 +190,14 @@ class InducedTrivialCharacterBasis(Character_generic):
|
|
|
190
190
|
3*s[1] - 2*s[1, 1] - 2*s[2] + s[2, 1]
|
|
191
191
|
sage: st(s[2,1])
|
|
192
192
|
st[] + 3*st[1] + 2*st[1, 1] + 2*st[2] + st[2, 1]
|
|
193
|
-
sage: st[2]*st[1]
|
|
193
|
+
sage: st[2]*st[1] # needs lrcalc_python
|
|
194
194
|
st[1] + st[1, 1] + st[2] + st[2, 1] + st[3]
|
|
195
195
|
sage: s[4,2].kronecker_product(s[5,1])
|
|
196
196
|
s[3, 2, 1] + s[3, 3] + s[4, 1, 1] + s[4, 2] + s[5, 1]
|
|
197
197
|
|
|
198
198
|
TESTS::
|
|
199
199
|
|
|
200
|
-
sage: TestSuite(ht).run()
|
|
200
|
+
sage: TestSuite(ht).run() # needs lrcalc_python
|
|
201
201
|
"""
|
|
202
202
|
|
|
203
203
|
def __init__(self, Sym):
|
|
@@ -399,20 +399,20 @@ class IrreducibleCharacterBasis(Character_generic):
|
|
|
399
399
|
3*s[1] - 2*s[1, 1] - 2*s[2] + s[2, 1]
|
|
400
400
|
sage: st(s[2,1])
|
|
401
401
|
st[] + 3*st[1] + 2*st[1, 1] + 2*st[2] + st[2, 1]
|
|
402
|
-
sage: st[2]*st[1]
|
|
402
|
+
sage: st[2]*st[1] # needs lrcalc_python
|
|
403
403
|
st[1] + st[1, 1] + st[2] + st[2, 1] + st[3]
|
|
404
404
|
sage: s[4,2].kronecker_product(s[5,1])
|
|
405
405
|
s[3, 2, 1] + s[3, 3] + s[4, 1, 1] + s[4, 2] + s[5, 1]
|
|
406
406
|
sage: st[1,1,1].counit()
|
|
407
407
|
-1
|
|
408
|
-
sage: all(sum(c*st(la)*st(mu).antipode() for
|
|
408
|
+
sage: all(sum(c*st(la)*st(mu).antipode() for # needs lrcalc_python
|
|
409
409
|
....: ((la,mu),c) in st(ga).coproduct())==st(st(ga).counit())
|
|
410
410
|
....: for ga in Partitions(3))
|
|
411
411
|
True
|
|
412
412
|
|
|
413
413
|
TESTS::
|
|
414
414
|
|
|
415
|
-
sage: TestSuite(st).run()
|
|
415
|
+
sage: TestSuite(st).run() # needs lrcalc_python
|
|
416
416
|
"""
|
|
417
417
|
|
|
418
418
|
def __init__(self, Sym):
|
sage/combinat/sf/classical.py
CHANGED
|
@@ -79,7 +79,7 @@ class SymmetricFunctionAlgebra_classical(sfa.SymmetricFunctionAlgebra_generic):
|
|
|
79
79
|
|
|
80
80
|
TESTS::
|
|
81
81
|
|
|
82
|
-
sage: # needs
|
|
82
|
+
sage: # needs lrcalc_python
|
|
83
83
|
sage: TestSuite(SymmetricFunctions(QQ).s()).run()
|
|
84
84
|
sage: TestSuite(SymmetricFunctions(QQ).h()).run()
|
|
85
85
|
sage: TestSuite(SymmetricFunctions(QQ).m()).run()
|