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
sage/combinat/sf/sf.py
CHANGED
|
@@ -387,8 +387,8 @@ class SymmetricFunctions(UniqueRepresentation, Parent):
|
|
|
387
387
|
information::
|
|
388
388
|
|
|
389
389
|
sage: s = SymmetricFunctions(QQ).schur()
|
|
390
|
-
sage: f = s[2]^2
|
|
391
|
-
sage: f.inner_plethysm(s[2])
|
|
390
|
+
sage: f = s[2]^2 # needs lrcalc_python
|
|
391
|
+
sage: f.inner_plethysm(s[2]) # needs lrcalc_python
|
|
392
392
|
s[2]
|
|
393
393
|
|
|
394
394
|
.. rubric:: Hopf algebra structure
|
|
@@ -430,6 +430,7 @@ class SymmetricFunctions(UniqueRepresentation, Parent):
|
|
|
430
430
|
|
|
431
431
|
Here are further examples::
|
|
432
432
|
|
|
433
|
+
sage: # needs lrcalc_python
|
|
433
434
|
sage: f = s[2]^2
|
|
434
435
|
sage: f.antipode()
|
|
435
436
|
s[1, 1, 1, 1] + s[2, 1, 1] + s[2, 2]
|
|
@@ -609,18 +610,18 @@ class SymmetricFunctions(UniqueRepresentation, Parent):
|
|
|
609
610
|
|
|
610
611
|
sage: Sym = SymmetricFunctions(QQ)
|
|
611
612
|
sage: ks = Sym.kschur(3,1)
|
|
612
|
-
sage: f = ks[2,1]*ks[2,1]; f
|
|
613
|
+
sage: f = ks[2,1]*ks[2,1]; f # needs lrcalc_python
|
|
613
614
|
ks3[2, 2, 1, 1] + ks3[2, 2, 2] + ks3[3, 1, 1, 1]
|
|
614
615
|
|
|
615
616
|
or to lift to the ring of symmetric functions::
|
|
616
617
|
|
|
617
|
-
sage: f.lift()
|
|
618
|
+
sage: f.lift() # needs lrcalc_python
|
|
618
619
|
s[2, 2, 1, 1] + s[2, 2, 2] + s[3, 1, 1, 1] + 2*s[3, 2, 1] + s[3, 3] + s[4, 1, 1] + s[4, 2]
|
|
619
620
|
|
|
620
621
|
However, it is not always possible to convert a symmetric function to the `k`-bounded subspace::
|
|
621
622
|
|
|
622
623
|
sage: s = Sym.schur()
|
|
623
|
-
sage: ks(s[2,1,1])
|
|
624
|
+
sage: ks(s[2,1,1]) # needs lrcalc_python
|
|
624
625
|
Traceback (most recent call last):
|
|
625
626
|
...
|
|
626
627
|
ValueError: s[2, 1, 1] is not in the image
|
|
@@ -641,6 +642,7 @@ class SymmetricFunctions(UniqueRepresentation, Parent):
|
|
|
641
642
|
function and an `\ell`-Schur function is in the linear span of the `k+\ell`-Schur
|
|
642
643
|
functions::
|
|
643
644
|
|
|
645
|
+
sage: # needs lrcalc_python
|
|
644
646
|
sage: ks(ks[2,1]*ks[1,1])
|
|
645
647
|
Traceback (most recent call last):
|
|
646
648
|
...
|
|
@@ -658,6 +660,7 @@ class SymmetricFunctions(UniqueRepresentation, Parent):
|
|
|
658
660
|
`k`-split basis conjecturally expands positively in the `k`-Schur functions.
|
|
659
661
|
The definition can be found in [LLMSSZ]_ p. 81.::
|
|
660
662
|
|
|
663
|
+
sage: # needs lrcalc_python
|
|
661
664
|
sage: ksp3 = SymS3.ksplit()
|
|
662
665
|
sage: ksp3(Qp[2,1,1,1])
|
|
663
666
|
ksp3[2, 1, 1, 1] + t^2*ksp3[2, 2, 1] + (t^3+t^2)*ksp3[3, 1, 1] + t^4*ksp3[3, 2]
|
|
@@ -671,6 +674,7 @@ class SymmetricFunctions(UniqueRepresentation, Parent):
|
|
|
671
674
|
the ideal is generated by the monomial symmetric functions indexed by partitions
|
|
672
675
|
whose first part is greater than `k`.::
|
|
673
676
|
|
|
677
|
+
sage: # needs lrcalc_python
|
|
674
678
|
sage: Sym = SymmetricFunctions(QQ)
|
|
675
679
|
sage: SymQ3 = Sym.kBoundedQuotient(3,t=1)
|
|
676
680
|
sage: km = SymQ3.kmonomial()
|
|
@@ -686,6 +690,7 @@ class SymmetricFunctions(UniqueRepresentation, Parent):
|
|
|
686
690
|
the Hall-Littlewood symmetric functions in the P basis indexed by partitions with
|
|
687
691
|
first part greater than `k`.::
|
|
688
692
|
|
|
693
|
+
sage: # needs lrcalc_python
|
|
689
694
|
sage: Sym = SymmetricFunctions(FractionField(QQ['t']))
|
|
690
695
|
sage: SymQ3 = Sym.kBoundedQuotient(3)
|
|
691
696
|
sage: kHLP = SymQ3.kHallLittlewoodP()
|
|
@@ -702,6 +707,7 @@ class SymmetricFunctions(UniqueRepresentation, Parent):
|
|
|
702
707
|
expands positively in the `k`-bounded Hall-Littlewood functions and has positive
|
|
703
708
|
structure coefficients.::
|
|
704
709
|
|
|
710
|
+
sage: # needs lrcalc_python
|
|
705
711
|
sage: dks = SymQ3.dual_k_Schur()
|
|
706
712
|
sage: kHLP(dks[2,2])
|
|
707
713
|
(t^4+t^2)*HLP3[1, 1, 1, 1] + t*HLP3[2, 1, 1] + HLP3[2, 2]
|
|
@@ -718,7 +724,7 @@ class SymmetricFunctions(UniqueRepresentation, Parent):
|
|
|
718
724
|
sage: SymQ3 = Sym.kBoundedQuotient(3,t=1)
|
|
719
725
|
sage: dks = SymQ3.dual_k_Schur()
|
|
720
726
|
sage: F = SymQ3.affineSchur()
|
|
721
|
-
sage: F[3,1]==dks[3,1]
|
|
727
|
+
sage: F[3,1]==dks[3,1] # needs lrcalc_python
|
|
722
728
|
True
|
|
723
729
|
|
|
724
730
|
.. rubric:: Implementing new bases
|
|
@@ -778,6 +784,7 @@ class SymmetricFunctions(UniqueRepresentation, Parent):
|
|
|
778
784
|
Macdonald ``J`` basis are the coefficients `K_{\lambda\mu}(q,t)`.
|
|
779
785
|
Here is an example of its use::
|
|
780
786
|
|
|
787
|
+
sage: # needs lrcalc_python
|
|
781
788
|
sage: QQqt = QQ['q','t'].fraction_field()
|
|
782
789
|
sage: (q,t) = QQqt.gens()
|
|
783
790
|
sage: st = SFA_st(SymmetricFunctions(QQqt),t)
|
|
@@ -866,7 +873,7 @@ class SymmetricFunctions(UniqueRepresentation, Parent):
|
|
|
866
873
|
|
|
867
874
|
sage: Sym1 = SymmetricFunctions(FiniteField(23))
|
|
868
875
|
sage: Sym2 = SymmetricFunctions(Integers(23))
|
|
869
|
-
sage: TestSuite(Sym).run()
|
|
876
|
+
sage: TestSuite(Sym).run() # needs lrcalc_python
|
|
870
877
|
"""
|
|
871
878
|
# change the line below to assert(R in Rings()) once MRO issues from #15536, #15475 are resolved
|
|
872
879
|
assert R in Fields() or R in Rings() # side effect of this statement assures MRO exists for R
|
|
@@ -1181,7 +1188,7 @@ class SymmetricFunctions(UniqueRepresentation, Parent):
|
|
|
1181
1188
|
|
|
1182
1189
|
EXAMPLES::
|
|
1183
1190
|
|
|
1184
|
-
sage: SymmetricFunctions(QQ).symplectic()
|
|
1191
|
+
sage: SymmetricFunctions(QQ).symplectic() # needs lrcalc_python
|
|
1185
1192
|
Symmetric Functions over Rational Field in the symplectic basis
|
|
1186
1193
|
"""
|
|
1187
1194
|
from . import symplectic
|
|
@@ -1196,7 +1203,7 @@ class SymmetricFunctions(UniqueRepresentation, Parent):
|
|
|
1196
1203
|
|
|
1197
1204
|
EXAMPLES::
|
|
1198
1205
|
|
|
1199
|
-
sage: SymmetricFunctions(QQ).orthogonal()
|
|
1206
|
+
sage: SymmetricFunctions(QQ).orthogonal() # needs lrcalc_python
|
|
1200
1207
|
Symmetric Functions over Rational Field in the orthogonal basis
|
|
1201
1208
|
"""
|
|
1202
1209
|
from . import orthogonal
|
|
@@ -1524,14 +1531,14 @@ class SymmetricFunctions(UniqueRepresentation, Parent):
|
|
|
1524
1531
|
|
|
1525
1532
|
sage: Sym = SymmetricFunctions(QQ)
|
|
1526
1533
|
sage: ks = Sym.kschur(3,1)
|
|
1527
|
-
sage: ks[2]*ks[2]
|
|
1534
|
+
sage: ks[2]*ks[2] # needs lrcalc_python
|
|
1528
1535
|
ks3[2, 2] + ks3[3, 1]
|
|
1529
|
-
sage: ks[2,1,1].lift()
|
|
1536
|
+
sage: ks[2,1,1].lift() # needs lrcalc_python
|
|
1530
1537
|
s[2, 1, 1] + s[3, 1]
|
|
1531
1538
|
|
|
1532
1539
|
sage: Sym = SymmetricFunctions(QQ['t'])
|
|
1533
1540
|
sage: ks = Sym.kschur(3)
|
|
1534
|
-
sage: ks[2,2,1].lift()
|
|
1541
|
+
sage: ks[2,2,1].lift() # needs lrcalc_python
|
|
1535
1542
|
s[2, 2, 1] + t*s[3, 2]
|
|
1536
1543
|
"""
|
|
1537
1544
|
return self.kBoundedSubspace(k, t=t).kschur()
|
|
@@ -1544,14 +1551,14 @@ class SymmetricFunctions(UniqueRepresentation, Parent):
|
|
|
1544
1551
|
|
|
1545
1552
|
sage: Sym = SymmetricFunctions(QQ)
|
|
1546
1553
|
sage: ksp = Sym.ksplit(3,1)
|
|
1547
|
-
sage: ksp[2]*ksp[2]
|
|
1554
|
+
sage: ksp[2]*ksp[2] # needs lrcalc_python
|
|
1548
1555
|
ksp3[2, 2] + ksp3[3, 1]
|
|
1549
|
-
sage: ksp[2,1,1].lift()
|
|
1556
|
+
sage: ksp[2,1,1].lift() # needs lrcalc_python
|
|
1550
1557
|
s[2, 1, 1] + s[2, 2] + s[3, 1]
|
|
1551
1558
|
|
|
1552
1559
|
sage: Sym = SymmetricFunctions(QQ['t'])
|
|
1553
1560
|
sage: ksp = Sym.ksplit(3)
|
|
1554
|
-
sage: ksp[2,1,1].lift()
|
|
1561
|
+
sage: ksp[2,1,1].lift() # needs lrcalc_python
|
|
1555
1562
|
s[2, 1, 1] + t*s[2, 2] + t*s[3, 1]
|
|
1556
1563
|
"""
|
|
1557
1564
|
return self.kBoundedSubspace(k, t=t).ksplit()
|
sage/combinat/sf/symplectic.py
CHANGED
sage/combinat/skew_partition.py
CHANGED
|
@@ -1287,7 +1287,7 @@ class SkewPartition(CombinatorialElement):
|
|
|
1287
1287
|
We verify that the Frobenius image is the corresponding
|
|
1288
1288
|
skew Schur function::
|
|
1289
1289
|
|
|
1290
|
-
sage: s[3,2,1].skew_by(s[2]) # needs sage.modules
|
|
1290
|
+
sage: s[3,2,1].skew_by(s[2]) # needs lrcalc_python sage.modules
|
|
1291
1291
|
s[2, 1, 1] + s[2, 2] + s[3, 1]
|
|
1292
1292
|
|
|
1293
1293
|
::
|
|
@@ -1296,7 +1296,7 @@ class SkewPartition(CombinatorialElement):
|
|
|
1296
1296
|
sage: SM = mu.specht_module(QQ) # needs sage.modules
|
|
1297
1297
|
sage: s(SM.frobenius_image()) # needs sage.libs.flint sage.modules
|
|
1298
1298
|
s[2, 1, 1] + s[2, 2] + 2*s[3, 1] + s[4]
|
|
1299
|
-
sage: s(mu) # needs sage.modules
|
|
1299
|
+
sage: s(mu) # needs lrcalc_python sage.modules
|
|
1300
1300
|
s[2, 1, 1] + s[2, 2] + 2*s[3, 1] + s[4]
|
|
1301
1301
|
"""
|
|
1302
1302
|
from sage.combinat.specht_module import SpechtModule
|
|
@@ -3214,6 +3214,7 @@ class A000720(SloaneSequence):
|
|
|
3214
3214
|
|
|
3215
3215
|
EXAMPLES::
|
|
3216
3216
|
|
|
3217
|
+
sage: # needs sage.symbolic
|
|
3217
3218
|
sage: a = sloane.A000720;a
|
|
3218
3219
|
pi(n), the number of primes <= n. Sometimes called PrimePi(n)
|
|
3219
3220
|
sage: a(0)
|
|
@@ -3248,7 +3249,7 @@ class A000720(SloaneSequence):
|
|
|
3248
3249
|
"""
|
|
3249
3250
|
EXAMPLES::
|
|
3250
3251
|
|
|
3251
|
-
sage: [sloane.A000720._eval(n) for n in range(1,11)]
|
|
3252
|
+
sage: [sloane.A000720._eval(n) for n in range(1,11)] # needs sage.symbolic
|
|
3252
3253
|
[0, 1, 2, 2, 3, 3, 4, 4, 4, 4]
|
|
3253
3254
|
"""
|
|
3254
3255
|
return prime_pi(n)
|
|
@@ -3269,7 +3270,8 @@ class A064553(SloaneSequence):
|
|
|
3269
3270
|
|
|
3270
3271
|
EXAMPLES::
|
|
3271
3272
|
|
|
3272
|
-
sage:
|
|
3273
|
+
sage: # needs sage.symbolic
|
|
3274
|
+
sage: a = sloane.A064553; a
|
|
3273
3275
|
a(1) = 1, a(prime(i)) = i+1 for i > 0 and a(u*v) = a(u)*a(v) for u,v > 0
|
|
3274
3276
|
sage: a(0)
|
|
3275
3277
|
Traceback (most recent call last):
|
|
@@ -3303,7 +3305,7 @@ class A064553(SloaneSequence):
|
|
|
3303
3305
|
"""
|
|
3304
3306
|
EXAMPLES::
|
|
3305
3307
|
|
|
3306
|
-
sage: [sloane.A064553._eval(n) for n in range(1,11)]
|
|
3308
|
+
sage: [sloane.A064553._eval(n) for n in range(1,11)] # needs sage.symbolic
|
|
3307
3309
|
[1, 2, 3, 4, 4, 6, 5, 8, 9, 8]
|
|
3308
3310
|
"""
|
|
3309
3311
|
return prod([(prime_pi(p)+1)**e for p, e in arith.factor(n)])
|
|
@@ -194,7 +194,7 @@ class CycleSpecies(GenericCombinatorialSpecies, UniqueRepresentation):
|
|
|
194
194
|
sage: P = species.CycleSpecies()
|
|
195
195
|
sage: g = P.generating_series(RR)
|
|
196
196
|
sage: g[0:3]
|
|
197
|
-
[0.
|
|
197
|
+
[0.0..., 1.0..., 0.5...]
|
|
198
198
|
"""
|
|
199
199
|
if n:
|
|
200
200
|
return self._weight * base_ring.one() / n
|
|
@@ -229,7 +229,7 @@ class CycleSpecies(GenericCombinatorialSpecies, UniqueRepresentation):
|
|
|
229
229
|
sage: P = species.CycleSpecies()
|
|
230
230
|
sage: g = P.isotype_generating_series(RR)
|
|
231
231
|
sage: g[0:3]
|
|
232
|
-
[0.
|
|
232
|
+
[0.0..., 1.0..., 1.0...]
|
|
233
233
|
"""
|
|
234
234
|
if n:
|
|
235
235
|
return self._weight * base_ring.one()
|
|
Binary file
|
|
@@ -120,7 +120,7 @@ def SymmetricGroupAlgebra(R, W, category=None):
|
|
|
120
120
|
Weyl Group of type ['A', 3] (as a matrix group acting
|
|
121
121
|
on the ambient space)
|
|
122
122
|
sage: SGA.an_element()
|
|
123
|
-
s1*s2*s3 +
|
|
123
|
+
s1*s2*s3 + ... + 1
|
|
124
124
|
|
|
125
125
|
The preferred way to construct the symmetric group algebra is to
|
|
126
126
|
go through the usual ``algebra`` method::
|
|
@@ -136,9 +136,12 @@ def SymmetricGroupRepresentation(partition, implementation='specht',
|
|
|
136
136
|
|
|
137
137
|
The unitary representation::
|
|
138
138
|
|
|
139
|
-
sage: unitary = SymmetricGroupRepresentation([3,1], "unitary"); unitary
|
|
139
|
+
sage: unitary = SymmetricGroupRepresentation([3,1], "unitary"); unitary # needs sage.symbolic
|
|
140
140
|
Unitary representation of the symmetric group corresponding to [3, 1]
|
|
141
|
-
|
|
141
|
+
|
|
142
|
+
sage: # needs sage.rings.finite_rings
|
|
143
|
+
sage: unitary_GF49 = SymmetricGroupRepresentation([3,1], "unitary", ring=GF(7**2))
|
|
144
|
+
sage: unitary_GF49
|
|
142
145
|
Unitary representation of the symmetric group corresponding to [3, 1]
|
|
143
146
|
sage: unitary_GF49([2,1,3,4])
|
|
144
147
|
[6 0 0]
|
|
@@ -263,8 +266,10 @@ def SymmetricGroupRepresentations(n, implementation='specht', ring=None,
|
|
|
263
266
|
|
|
264
267
|
::
|
|
265
268
|
|
|
266
|
-
sage: unitary = SymmetricGroupRepresentations(3, "unitary"); unitary
|
|
269
|
+
sage: unitary = SymmetricGroupRepresentations(3, "unitary"); unitary # needs sage.symbolic
|
|
267
270
|
Unitary representations of the symmetric group of order 3! over Symbolic Ring
|
|
271
|
+
|
|
272
|
+
sage: # needs sage.rings.finite_rings
|
|
268
273
|
sage: unitary_GF49 = SymmetricGroupRepresentations(4, "unitary", ring=GF(7**2)); unitary_GF49
|
|
269
274
|
Unitary representations of the symmetric group of order 4! over Finite Field in z2 of size 7^2
|
|
270
275
|
sage: unitary_GF49([3,1])([2,1,3,4])
|
|
@@ -1059,12 +1064,16 @@ class UnitaryRepresentation(SymmetricGroupRepresentation_generic_class):
|
|
|
1059
1064
|
|
|
1060
1065
|
EXAMPLES::
|
|
1061
1066
|
|
|
1067
|
+
sage: # needs sage.symbolic
|
|
1062
1068
|
sage: U = SymmetricGroupRepresentation([2,1], "unitary")
|
|
1063
1069
|
sage: TestSuite(U).run()
|
|
1070
|
+
|
|
1064
1071
|
sage: U = SymmetricGroupRepresentation([2,1], "unitary", GF(7))
|
|
1065
1072
|
Traceback (most recent call last):
|
|
1066
1073
|
...
|
|
1067
1074
|
ValueError: the base ring must be a finite field of square order
|
|
1075
|
+
|
|
1076
|
+
sage: # needs sage.rings.finite_rings
|
|
1068
1077
|
sage: U = SymmetricGroupRepresentation([2,1], "unitary", GF(7**2))
|
|
1069
1078
|
sage: TestSuite(U).run()
|
|
1070
1079
|
"""
|
|
@@ -1090,7 +1099,7 @@ class UnitaryRepresentation(SymmetricGroupRepresentation_generic_class):
|
|
|
1090
1099
|
|
|
1091
1100
|
EXAMPLES::
|
|
1092
1101
|
|
|
1093
|
-
sage: SymmetricGroupRepresentation([2,1], "unitary")
|
|
1102
|
+
sage: SymmetricGroupRepresentation([2,1], "unitary") # needs sage.symbolic
|
|
1094
1103
|
Unitary representation of the symmetric group corresponding to [2, 1]
|
|
1095
1104
|
"""
|
|
1096
1105
|
return f"Unitary representation of the symmetric group corresponding to {self._partition}"
|
|
@@ -1107,6 +1116,7 @@ class UnitaryRepresentation(SymmetricGroupRepresentation_generic_class):
|
|
|
1107
1116
|
|
|
1108
1117
|
EXAMPLES::
|
|
1109
1118
|
|
|
1119
|
+
sage: # needs sage.rings.finite_rings
|
|
1110
1120
|
sage: unitary_specht = SymmetricGroupRepresentation([3,1], 'unitary', ring=GF(7**2))
|
|
1111
1121
|
sage: unitary_specht.representation_matrix(Permutation([2,1,3,4]))
|
|
1112
1122
|
[6 0 0]
|
|
@@ -1138,6 +1148,7 @@ class UnitaryRepresentation(SymmetricGroupRepresentation_generic_class):
|
|
|
1138
1148
|
|
|
1139
1149
|
EXAMPLES::
|
|
1140
1150
|
|
|
1151
|
+
sage: # needs sage.rings.finite_rings
|
|
1141
1152
|
sage: unitary_specht = SymmetricGroupRepresentation([3,1], 'unitary', ring=GF(7**2))
|
|
1142
1153
|
sage: unitary_specht._unitary_change_basis_matrix
|
|
1143
1154
|
[ 1 4 4]
|
|
@@ -1196,6 +1207,7 @@ class UnitaryRepresentation(SymmetricGroupRepresentation_generic_class):
|
|
|
1196
1207
|
|
|
1197
1208
|
EXAMPLES::
|
|
1198
1209
|
|
|
1210
|
+
sage: # needs sage.rings.finite_rings
|
|
1199
1211
|
sage: unitary_specht = SymmetricGroupRepresentation([2,2], 'unitary', ring=GF(7**2))
|
|
1200
1212
|
sage: unitary_specht._representation_matrix_uncached(Permutation([3,1,4,2]))
|
|
1201
1213
|
[ 4 5*z2 + 4]
|
sage/combinat/tableau.py
CHANGED
|
@@ -7348,7 +7348,7 @@ class RowStandardTableaux_size(RowStandardTableaux, DisjointUnionEnumeratedSets)
|
|
|
7348
7348
|
|
|
7349
7349
|
TESTS::
|
|
7350
7350
|
|
|
7351
|
-
sage: TestSuite(RowStandardTableaux(4)).run() # needs sage.graphs
|
|
7351
|
+
sage: TestSuite(RowStandardTableaux(4)).run() # needs sage.graphs sage.libs.flint
|
|
7352
7352
|
|
|
7353
7353
|
sage: RowStandardTableaux(3).cardinality() # needs sage.libs.flint
|
|
7354
7354
|
10
|
sage/combinat/tiling.py
CHANGED
|
@@ -313,36 +313,36 @@ def ncube_isometry_group(n, orientation_preserving=True):
|
|
|
313
313
|
EXAMPLES::
|
|
314
314
|
|
|
315
315
|
sage: from sage.combinat.tiling import ncube_isometry_group
|
|
316
|
-
sage: ncube_isometry_group(2)
|
|
316
|
+
sage: sorted(ncube_isometry_group(2))
|
|
317
317
|
[
|
|
318
|
-
[1
|
|
319
|
-
[0 1], [
|
|
318
|
+
[-1 0] [ 0 -1] [ 0 1] [1 0]
|
|
319
|
+
[ 0 -1], [ 1 0], [-1 0], [0 1]
|
|
320
320
|
]
|
|
321
|
-
sage: ncube_isometry_group(2, orientation_preserving=False)
|
|
321
|
+
sage: sorted(ncube_isometry_group(2, orientation_preserving=False))
|
|
322
322
|
[
|
|
323
|
-
[1
|
|
324
|
-
[0 1], [-1 0], [ 0
|
|
323
|
+
[-1 0] [-1 0] [ 0 -1] [ 0 -1] [ 0 1] [0 1] [ 1 0] [1 0]
|
|
324
|
+
[ 0 -1], [ 0 1], [-1 0], [ 1 0], [-1 0], [1 0], [ 0 -1], [0 1]
|
|
325
325
|
]
|
|
326
326
|
|
|
327
327
|
There are 24 orientation preserving isometries of the 3-cube::
|
|
328
328
|
|
|
329
|
-
sage: ncube_isometry_group(3)
|
|
329
|
+
sage: sorted(ncube_isometry_group(3))
|
|
330
330
|
[
|
|
331
|
-
[1
|
|
332
|
-
[0 1 0] [ 0 0 1] [ 0 0
|
|
333
|
-
[
|
|
331
|
+
[-1 0 0] [-1 0 0] [-1 0 0] [-1 0 0] [ 0 -1 0] [ 0 -1 0]
|
|
332
|
+
[ 0 -1 0] [ 0 0 -1] [ 0 0 1] [ 0 1 0] [-1 0 0] [ 0 0 -1]
|
|
333
|
+
[ 0 0 1], [ 0 -1 0], [ 0 1 0], [ 0 0 -1], [ 0 0 -1], [ 1 0 0],
|
|
334
334
|
<BLANKLINE>
|
|
335
|
-
[-1 0
|
|
336
|
-
[ 0
|
|
337
|
-
[
|
|
335
|
+
[ 0 -1 0] [ 0 -1 0] [ 0 0 -1] [ 0 0 -1] [ 0 0 -1] [ 0 0 -1]
|
|
336
|
+
[ 0 0 1] [ 1 0 0] [-1 0 0] [ 0 -1 0] [ 0 1 0] [ 1 0 0]
|
|
337
|
+
[-1 0 0], [ 0 0 1], [ 0 1 0], [-1 0 0], [ 1 0 0], [ 0 -1 0],
|
|
338
338
|
<BLANKLINE>
|
|
339
|
-
[ 0 1 0] [ 0 0 1] [0 0 1] [ 0
|
|
340
|
-
[
|
|
341
|
-
[ 0 0
|
|
339
|
+
[ 0 0 1] [ 0 0 1] [ 0 0 1] [0 0 1] [ 0 1 0] [ 0 1 0]
|
|
340
|
+
[-1 0 0] [ 0 -1 0] [ 0 1 0] [1 0 0] [-1 0 0] [ 0 0 -1]
|
|
341
|
+
[ 0 -1 0], [ 1 0 0], [-1 0 0], [0 1 0], [ 0 0 1], [-1 0 0],
|
|
342
342
|
<BLANKLINE>
|
|
343
|
-
[
|
|
344
|
-
[
|
|
345
|
-
[ 0
|
|
343
|
+
[0 1 0] [ 0 1 0] [ 1 0 0] [ 1 0 0] [ 1 0 0] [1 0 0]
|
|
344
|
+
[0 0 1] [ 1 0 0] [ 0 -1 0] [ 0 0 -1] [ 0 0 1] [0 1 0]
|
|
345
|
+
[1 0 0], [ 0 0 -1], [ 0 0 -1], [ 0 1 0], [ 0 -1 0], [0 0 1]
|
|
346
346
|
]
|
|
347
347
|
|
|
348
348
|
TESTS::
|
sage/combinat/triangles_FHM.py
CHANGED
sage/combinat/tutorial.py
CHANGED
|
@@ -850,7 +850,7 @@ Partial orders on a set of `8` elements, up to isomorphism::
|
|
|
850
850
|
|
|
851
851
|
::
|
|
852
852
|
|
|
853
|
-
sage: C.unrank(20).plot() # needs sage.plot
|
|
853
|
+
sage: C.unrank(20).plot() # needs nauty sage.plot
|
|
854
854
|
Graphics object consisting of ... graphics primitives
|
|
855
855
|
|
|
856
856
|
.. image:: ../../media/a_poset.png
|
|
@@ -858,7 +858,7 @@ Partial orders on a set of `8` elements, up to isomorphism::
|
|
|
858
858
|
One can iterate through all graphs up to isomorphism. For example,
|
|
859
859
|
there are 34 simple graphs with 5 vertices::
|
|
860
860
|
|
|
861
|
-
sage: len(list(graphs(5)))
|
|
861
|
+
sage: len(list(graphs(5))) # needs nauty
|
|
862
862
|
34
|
|
863
863
|
|
|
864
864
|
Here are those with at most `4` edges::
|
|
@@ -1623,7 +1623,7 @@ iterator or non-naive counting::
|
|
|
1623
1623
|
|
|
1624
1624
|
sage: A = random_matrix(ZZ, 6, 3, x=7)
|
|
1625
1625
|
sage: L = LatticePolytope(A.rows())
|
|
1626
|
-
sage: L.points() # random
|
|
1626
|
+
sage: L.points() # random # needs palp
|
|
1627
1627
|
M(4, 1, 0),
|
|
1628
1628
|
M(0, 3, 5),
|
|
1629
1629
|
M(2, 2, 3),
|
|
@@ -1636,7 +1636,7 @@ iterator or non-naive counting::
|
|
|
1636
1636
|
M(4, 2, 3),
|
|
1637
1637
|
M(5, 2, 3)
|
|
1638
1638
|
in 3-d lattice M
|
|
1639
|
-
sage: L.npoints() # random
|
|
1639
|
+
sage: L.npoints() # random # needs palp
|
|
1640
1640
|
11
|
|
1641
1641
|
|
|
1642
1642
|
This polytope can be visualized in 3D with ``L.plot3d()`` (see
|
|
@@ -1820,7 +1820,7 @@ graph; so planar graphs form a subtree of the previous tree. To generate
|
|
|
1820
1820
|
them, exactly the same algorithm can be used,
|
|
1821
1821
|
selecting only the children which are planar::
|
|
1822
1822
|
|
|
1823
|
-
sage: [len(list(graphs(n, property=lambda G: G.is_planar())))
|
|
1823
|
+
sage: [len(list(graphs(n, property=lambda G: G.is_planar()))) # needs planarity
|
|
1824
1824
|
....: for n in range(7)]
|
|
1825
1825
|
[1, 1, 2, 4, 11, 33, 142]
|
|
1826
1826
|
|
|
@@ -1657,13 +1657,14 @@ class FiniteWord_class(Word_class):
|
|
|
1657
1657
|
|
|
1658
1658
|
For ultimately periodic words::
|
|
1659
1659
|
|
|
1660
|
+
sage: # needs sage.graphs sage.modules
|
|
1660
1661
|
sage: sigma = WordMorphism('a->abcd,b->cd,c->cd,d->cd')
|
|
1661
|
-
sage: w = sigma.fixed_point('a')[:100]; w
|
|
1662
|
+
sage: w = sigma.fixed_point('a')[:100]; w
|
|
1662
1663
|
word: abcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd...
|
|
1663
|
-
sage: g = w.reduced_rauzy_graph(5)
|
|
1664
|
-
sage: g.vertices(sort=True)
|
|
1664
|
+
sage: g = w.reduced_rauzy_graph(5)
|
|
1665
|
+
sage: g.vertices(sort=True)
|
|
1665
1666
|
[word: abcdc, word: cdcdc]
|
|
1666
|
-
sage: g.edges(sort=True)
|
|
1667
|
+
sage: g.edges(sort=True)
|
|
1667
1668
|
[(word: abcdc, word: cdcdc, word: dc), (word: cdcdc, word: cdcdc, word: dc)]
|
|
1668
1669
|
|
|
1669
1670
|
AUTHOR:
|
sage/combinat/words/word.py
CHANGED
|
@@ -519,10 +519,12 @@ class InfiniteWord_iter_with_caching(WordDatatype_iter_with_caching, InfiniteWor
|
|
|
519
519
|
|
|
520
520
|
Pickle is not supported for infinite word defined by an iterator::
|
|
521
521
|
|
|
522
|
-
sage:
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
522
|
+
sage: try:
|
|
523
|
+
....: dumps(w)
|
|
524
|
+
....: except TypeError as e:
|
|
525
|
+
....: if "pickle" in str(e) and "generator" in str(e):
|
|
526
|
+
....: print("TypeError raised in dumps() as expected")
|
|
527
|
+
TypeError raised in dumps() as expected
|
|
526
528
|
"""
|
|
527
529
|
pass
|
|
528
530
|
|
|
@@ -558,10 +560,12 @@ class InfiniteWord_iter(WordDatatype_iter, InfiniteWord_class):
|
|
|
558
560
|
|
|
559
561
|
Pickle is not supported for infinite word defined by an iterator::
|
|
560
562
|
|
|
561
|
-
sage:
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
563
|
+
sage: try:
|
|
564
|
+
....: dumps(w)
|
|
565
|
+
....: except TypeError as e:
|
|
566
|
+
....: if "pickle" in str(e) and "generator" in str(e):
|
|
567
|
+
....: print("TypeError raised in dumps() as expected")
|
|
568
|
+
TypeError raised in dumps() as expected
|
|
565
569
|
"""
|
|
566
570
|
pass
|
|
567
571
|
|
|
@@ -660,10 +664,12 @@ class Word_iter_with_caching(WordDatatype_iter_with_caching, Word_class):
|
|
|
660
664
|
|
|
661
665
|
Pickle is not supported for word of unknown length defined by an iterator::
|
|
662
666
|
|
|
663
|
-
sage:
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
+
sage: try:
|
|
668
|
+
....: dumps(w)
|
|
669
|
+
....: except TypeError as e:
|
|
670
|
+
....: if "pickle" in str(e) and "generator" in str(e):
|
|
671
|
+
....: print("TypeError raised in dumps() as expected")
|
|
672
|
+
TypeError raised in dumps() as expected
|
|
667
673
|
"""
|
|
668
674
|
pass
|
|
669
675
|
|
|
@@ -697,10 +703,12 @@ class Word_iter(WordDatatype_iter, Word_class):
|
|
|
697
703
|
|
|
698
704
|
Pickle is not supported for word of unknown length defined by an iterator::
|
|
699
705
|
|
|
700
|
-
sage:
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
706
|
+
sage: try:
|
|
707
|
+
....: dumps(w)
|
|
708
|
+
....: except TypeError as e:
|
|
709
|
+
....: if "pickle" in str(e) and "generator" in str(e):
|
|
710
|
+
....: print("TypeError raised in dumps() as expected")
|
|
711
|
+
TypeError raised in dumps() as expected
|
|
704
712
|
"""
|
|
705
713
|
pass
|
|
706
714
|
|
|
Binary file
|
|
Binary file
|
|
@@ -809,7 +809,7 @@ class WordGenerator:
|
|
|
809
809
|
|
|
810
810
|
sage: from itertools import cycle, chain
|
|
811
811
|
sage: it = chain([0], cycle([2, 1]))
|
|
812
|
-
sage: words.CharacteristicSturmianWord(it)
|
|
812
|
+
sage: words.CharacteristicSturmianWord(it) # needs sage.rings.real_mpfr
|
|
813
813
|
word: 0100100101001001001010010010010100100101...
|
|
814
814
|
|
|
815
815
|
The first terms of the standard sequence of the characteristic
|
sage/databases/findstat.py
CHANGED
|
@@ -4006,7 +4006,7 @@ def _finite_lattices(n):
|
|
|
4006
4006
|
TESTS::
|
|
4007
4007
|
|
|
4008
4008
|
sage: from sage.databases.findstat import _finite_lattices
|
|
4009
|
-
sage: sorted((L.cover_relations() for L in _finite_lattices(4)),
|
|
4009
|
+
sage: sorted((L.cover_relations() for L in _finite_lattices(4)), # needs nauty
|
|
4010
4010
|
....: key=len)
|
|
4011
4011
|
[[['bottom', 0], [0, 1], [1, 'top']],
|
|
4012
4012
|
[['bottom', 0], ['bottom', 1], [0, 'top'], [1, 'top']]]
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
sage/monoids/string_monoid.py
CHANGED
|
@@ -503,6 +503,7 @@ class AlphabeticStringMonoid(StringMonoid_class):
|
|
|
503
503
|
|
|
504
504
|
EXAMPLES::
|
|
505
505
|
|
|
506
|
+
sage: # needs sage.rings.real_mpfr
|
|
506
507
|
sage: S = AlphabeticStrings(); S
|
|
507
508
|
Free alphabetic string monoid on A-Z
|
|
508
509
|
sage: S.gen(0)
|
|
@@ -519,6 +520,7 @@ class AlphabeticStringMonoid(StringMonoid_class):
|
|
|
519
520
|
|
|
520
521
|
EXAMPLES::
|
|
521
522
|
|
|
523
|
+
sage: # needs sage.rings.real_mpfr
|
|
522
524
|
sage: S = AlphabeticStrings(); S
|
|
523
525
|
Free alphabetic string monoid on A-Z
|
|
524
526
|
sage: S.gen(0)
|
|
@@ -577,6 +579,7 @@ class AlphabeticStringMonoid(StringMonoid_class):
|
|
|
577
579
|
|
|
578
580
|
EXAMPLES::
|
|
579
581
|
|
|
582
|
+
sage: # needs sage.rings.real_mpfr
|
|
580
583
|
sage: S = AlphabeticStrings()
|
|
581
584
|
sage: S.gen(0)
|
|
582
585
|
A
|
|
@@ -654,6 +657,7 @@ class AlphabeticStringMonoid(StringMonoid_class):
|
|
|
654
657
|
The characteristic frequency probability distribution table of
|
|
655
658
|
Beker and Piper [BP1982]_::
|
|
656
659
|
|
|
660
|
+
sage: # needs sage.rings.real_mpfr
|
|
657
661
|
sage: A = AlphabeticStrings()
|
|
658
662
|
sage: table = A.characteristic_frequency(table_name='beker_piper')
|
|
659
663
|
sage: sorted(table.items())
|
|
@@ -688,6 +692,7 @@ class AlphabeticStringMonoid(StringMonoid_class):
|
|
|
688
692
|
The characteristic frequency probability distribution table
|
|
689
693
|
of Lewand [Lew2000]_::
|
|
690
694
|
|
|
695
|
+
sage: # needs sage.rings.real_mpfr
|
|
691
696
|
sage: table = A.characteristic_frequency(table_name='lewand')
|
|
692
697
|
sage: sorted(table.items())
|
|
693
698
|
<BLANKLINE>
|
|
@@ -721,6 +726,7 @@ class AlphabeticStringMonoid(StringMonoid_class):
|
|
|
721
726
|
Illustrating the difference between :func:`characteristic_frequency`
|
|
722
727
|
and :func:`frequency_distribution() <sage.monoids.string_monoid_element.StringMonoidElement.frequency_distribution>`::
|
|
723
728
|
|
|
729
|
+
sage: # needs sage.rings.real_mpfr
|
|
724
730
|
sage: A = AlphabeticStrings()
|
|
725
731
|
sage: M = A.encoding("abcd")
|
|
726
732
|
sage: FD = M.frequency_distribution().function()
|
|
@@ -764,6 +770,7 @@ class AlphabeticStringMonoid(StringMonoid_class):
|
|
|
764
770
|
|
|
765
771
|
The table name must be either "beker_piper" or "lewand"::
|
|
766
772
|
|
|
773
|
+
sage: # needs sage.rings.real_mpfr
|
|
767
774
|
sage: table = A.characteristic_frequency(table_name="")
|
|
768
775
|
Traceback (most recent call last):
|
|
769
776
|
...
|
|
@@ -797,6 +804,7 @@ class AlphabeticStringMonoid(StringMonoid_class):
|
|
|
797
804
|
|
|
798
805
|
EXAMPLES::
|
|
799
806
|
|
|
807
|
+
sage: # needs sage.rings.real_mpfr
|
|
800
808
|
sage: S = AlphabeticStrings()
|
|
801
809
|
sage: s = S.encoding("The cat in the hat."); s
|
|
802
810
|
THECATINTHEHAT
|