passagemath-graphs 10.5.43__cp312-cp312-macosx_14_0_arm64.whl → 10.6.1rc2__cp312-cp312-macosx_14_0_arm64.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_graphs-10.5.43.dist-info → passagemath_graphs-10.6.1rc2.dist-info}/METADATA +5 -6
- {passagemath_graphs-10.5.43.dist-info → passagemath_graphs-10.6.1rc2.dist-info}/RECORD +132 -130
- sage/combinat/abstract_tree.py +188 -17
- sage/combinat/cluster_algebra_quiver/interact.py +1 -2
- sage/combinat/cluster_algebra_quiver/mutation_type.py +518 -519
- sage/combinat/cluster_algebra_quiver/quiver.py +233 -205
- sage/combinat/designs/covering_design.py +2 -6
- sage/combinat/designs/database.py +11 -10
- sage/combinat/designs/designs_pyx.cpython-312-darwin.so +0 -0
- sage/combinat/designs/designs_pyx.pyx +2 -2
- sage/combinat/designs/evenly_distributed_sets.cpython-312-darwin.so +0 -0
- sage/combinat/designs/evenly_distributed_sets.pyx +4 -4
- sage/combinat/designs/gen_quadrangles_with_spread.cpython-312-darwin.so +0 -0
- sage/combinat/designs/latin_squares.py +53 -20
- sage/combinat/designs/orthogonal_arrays.py +2 -1
- sage/combinat/designs/orthogonal_arrays_find_recursive.cpython-312-darwin.so +0 -0
- sage/combinat/designs/orthogonal_arrays_find_recursive.pyx +22 -21
- sage/combinat/designs/resolvable_bibd.py +191 -157
- sage/combinat/designs/subhypergraph_search.cpython-312-darwin.so +0 -0
- sage/combinat/designs/subhypergraph_search.pyx +4 -4
- sage/combinat/designs/twographs.py +2 -2
- sage/combinat/finite_state_machine.py +6 -6
- sage/combinat/posets/bubble_shuffle.py +247 -0
- sage/combinat/posets/d_complete.py +3 -3
- sage/combinat/posets/elements.py +3 -3
- sage/combinat/posets/hasse_cython.cpython-312-darwin.so +0 -0
- sage/combinat/posets/hasse_cython.pyx +1 -1
- sage/combinat/posets/hasse_diagram.py +16 -22
- sage/combinat/posets/hochschild_lattice.py +158 -0
- sage/combinat/posets/incidence_algebras.py +14 -16
- sage/combinat/posets/lattices.py +51 -53
- sage/combinat/posets/linear_extension_iterator.cpython-312-darwin.so +0 -0
- sage/combinat/posets/linear_extensions.py +10 -12
- sage/combinat/posets/moebius_algebra.py +4 -4
- sage/combinat/posets/poset_examples.py +70 -23
- sage/combinat/posets/posets.py +294 -103
- sage/databases/knotinfo_db.py +2 -1
- sage/graphs/asteroidal_triples.cpython-312-darwin.so +0 -0
- sage/graphs/asteroidal_triples.pyx +24 -3
- sage/graphs/base/boost_graph.cpython-312-darwin.so +0 -0
- sage/graphs/base/boost_graph.pxd +3 -3
- sage/graphs/base/c_graph.cpython-312-darwin.so +0 -0
- sage/graphs/base/c_graph.pyx +1 -1
- sage/graphs/base/dense_graph.cpython-312-darwin.so +0 -0
- sage/graphs/base/dense_graph.pxd +5 -3
- sage/graphs/base/dense_graph.pyx +44 -0
- sage/graphs/base/graph_backends.cpython-312-darwin.so +0 -0
- sage/graphs/base/sparse_graph.cpython-312-darwin.so +0 -0
- sage/graphs/base/static_dense_graph.cpython-312-darwin.so +0 -0
- sage/graphs/base/static_sparse_backend.cpython-312-darwin.so +0 -0
- sage/graphs/base/static_sparse_backend.pyx +8 -5
- sage/graphs/base/static_sparse_graph.cpython-312-darwin.so +0 -0
- sage/graphs/base/static_sparse_graph.pyx +86 -15
- sage/graphs/bipartite_graph.py +59 -36
- sage/graphs/centrality.cpython-312-darwin.so +0 -0
- sage/graphs/centrality.pyx +82 -9
- sage/graphs/cographs.py +1 -1
- sage/graphs/comparability.cpython-312-darwin.so +0 -0
- sage/graphs/comparability.pyx +64 -26
- sage/graphs/connectivity.cpython-312-darwin.so +0 -0
- sage/graphs/convexity_properties.cpython-312-darwin.so +0 -0
- sage/graphs/convexity_properties.pyx +52 -9
- sage/graphs/digraph.py +439 -95
- sage/graphs/digraph_generators.py +174 -102
- sage/graphs/distances_all_pairs.cpython-312-darwin.so +0 -0
- sage/graphs/dot2tex_utils.py +1 -1
- sage/graphs/edge_connectivity.cpython-312-darwin.so +0 -0
- sage/graphs/generators/basic.py +1 -1
- sage/graphs/generators/distance_regular.cpython-312-darwin.so +0 -0
- sage/graphs/generators/distance_regular.pyx +1 -1
- sage/graphs/generators/families.py +37 -27
- sage/graphs/generators/random.py +2 -2
- sage/graphs/generators/smallgraphs.py +3 -3
- sage/graphs/generic_graph.py +558 -86
- sage/graphs/generic_graph_pyx.cpython-312-darwin.so +0 -0
- sage/graphs/generic_graph_pyx.pyx +58 -11
- sage/graphs/genus.cpython-312-darwin.so +0 -0
- sage/graphs/genus.pyx +3 -4
- sage/graphs/graph.py +291 -8
- sage/graphs/graph_coloring.cpython-312-darwin.so +0 -0
- sage/graphs/graph_database.py +67 -12
- sage/graphs/graph_decompositions/bandwidth.cpython-312-darwin.so +0 -0
- sage/graphs/graph_decompositions/clique_separators.cpython-312-darwin.so +0 -0
- sage/graphs/graph_decompositions/clique_separators.pyx +24 -3
- sage/graphs/graph_decompositions/cutwidth.cpython-312-darwin.so +0 -0
- sage/graphs/graph_decompositions/fast_digraph.cpython-312-darwin.so +0 -0
- sage/graphs/graph_decompositions/fast_digraph.pyx +1 -1
- sage/graphs/graph_decompositions/graph_products.cpython-312-darwin.so +0 -0
- sage/graphs/graph_decompositions/graph_products.pyx +67 -21
- sage/graphs/graph_decompositions/modular_decomposition.cpython-312-darwin.so +0 -0
- sage/graphs/graph_decompositions/slice_decomposition.cpython-312-darwin.so +0 -0
- sage/graphs/graph_decompositions/slice_decomposition.pyx +34 -8
- sage/graphs/graph_decompositions/tree_decomposition.cpython-312-darwin.so +0 -0
- sage/graphs/graph_decompositions/vertex_separation.cpython-312-darwin.so +0 -0
- sage/graphs/graph_generators.py +45 -32
- sage/graphs/graph_generators_pyx.cpython-312-darwin.so +0 -0
- sage/graphs/graph_generators_pyx.pyx +15 -15
- sage/graphs/graph_latex.py +1 -1
- sage/graphs/graph_list.py +52 -9
- sage/graphs/graph_plot.py +7 -0
- sage/graphs/hyperbolicity.cpython-312-darwin.so +0 -0
- sage/graphs/hyperbolicity.pyx +2 -0
- sage/graphs/independent_sets.cpython-312-darwin.so +0 -0
- sage/graphs/isoperimetric_inequalities.cpython-312-darwin.so +0 -0
- sage/graphs/isoperimetric_inequalities.pyx +42 -6
- sage/graphs/line_graph.cpython-312-darwin.so +0 -0
- sage/graphs/line_graph.pyx +153 -37
- sage/graphs/matching_covered_graph.py +84 -60
- sage/graphs/orientations.py +3 -18
- sage/graphs/path_enumeration.cpython-312-darwin.so +0 -0
- sage/graphs/path_enumeration.pyx +2 -2
- sage/graphs/spanning_tree.cpython-312-darwin.so +0 -0
- sage/graphs/strongly_regular_db.cpython-312-darwin.so +0 -0
- sage/graphs/strongly_regular_db.pyx +15 -15
- sage/graphs/traversals.cpython-312-darwin.so +0 -0
- sage/graphs/traversals.pyx +13 -12
- sage/graphs/trees.cpython-312-darwin.so +0 -0
- sage/graphs/tutte_polynomial.py +1 -1
- sage/graphs/views.cpython-312-darwin.so +0 -0
- sage/graphs/weakly_chordal.cpython-312-darwin.so +0 -0
- sage/graphs/weakly_chordal.pyx +50 -8
- sage/groups/perm_gps/partn_ref/refinement_graphs.cpython-312-darwin.so +0 -0
- sage/knots/free_knotinfo_monoid.py +3 -3
- sage/knots/knotinfo.py +102 -82
- sage/knots/link.py +72 -39
- sage/topology/cubical_complex.py +4 -5
- sage/topology/delta_complex.py +4 -4
- sage/topology/simplicial_complex.py +0 -1
- sage/topology/simplicial_complex_catalog.py +6 -0
- sage/topology/simplicial_complex_examples.py +4 -16
- {passagemath_graphs-10.5.43.dist-info → passagemath_graphs-10.6.1rc2.dist-info}/WHEEL +0 -0
- {passagemath_graphs-10.5.43.dist-info → passagemath_graphs-10.6.1rc2.dist-info}/top_level.txt +0 -0
sage/knots/link.py
CHANGED
@@ -1778,7 +1778,7 @@ class Link(SageObject):
|
|
1778
1778
|
G.add_edge(c[3], c[1])
|
1779
1779
|
return G.connected_components_number()
|
1780
1780
|
|
1781
|
-
def is_knot(self):
|
1781
|
+
def is_knot(self) -> bool:
|
1782
1782
|
r"""
|
1783
1783
|
Return ``True`` if ``self`` is a knot.
|
1784
1784
|
|
@@ -2051,7 +2051,7 @@ class Link(SageObject):
|
|
2051
2051
|
conway += coeff * t_poly**M
|
2052
2052
|
return conway
|
2053
2053
|
|
2054
|
-
def khovanov_polynomial(self, var1='q', var2='t', base_ring=
|
2054
|
+
def khovanov_polynomial(self, var1='q', var2='t', torsion='T', ring=ZZ, base_ring=None):
|
2055
2055
|
r"""
|
2056
2056
|
Return the Khovanov polynomial of ``self``.
|
2057
2057
|
|
@@ -2060,32 +2060,43 @@ class Link(SageObject):
|
|
2060
2060
|
INPUT:
|
2061
2061
|
|
2062
2062
|
- ``var1`` -- (default: ``'q'``) the first variable. Its exponents
|
2063
|
-
|
2063
|
+
correspond to the height of Khovanov homology
|
2064
2064
|
- ``var2`` -- (default: ``'t'``) the second variable. Its exponents
|
2065
|
-
|
2066
|
-
- ``
|
2067
|
-
|
2065
|
+
correspond to the degree of Khovanov homology
|
2066
|
+
- ``torsion`` -- (default: ``'T'``) additional variable to indicate
|
2067
|
+
the torsion of the integral homology group corresponding to the
|
2068
|
+
monomial; monomials without it correspond to torsion free ``ring``
|
2069
|
+
modules; if it appears its exponents stands for the modulus of
|
2070
|
+
the torsion
|
2071
|
+
- ``ring`` -- (default: ``ZZ``) the ring of the homology. This will
|
2072
|
+
be transferred to :meth:`khovanov_homology`
|
2073
|
+
|
2074
|
+
Here we follow the conventions used in
|
2075
|
+
`KnotInfo <https://knotinfo.math.indiana.edu/descriptions/khovanov_unreduced_integral_polynomial.html>`__
|
2068
2076
|
|
2069
2077
|
OUTPUT:
|
2070
2078
|
|
2071
|
-
A two
|
2072
|
-
instance of
|
2079
|
+
A two or three (for integral homology) variate Laurent polynomial over
|
2080
|
+
``ZZ``, more precisely an instance of
|
2081
|
+
:class:`~sage.rings.polynomial.laurent_polynomial.LaurentPolynomial_mpair`.
|
2073
2082
|
|
2074
2083
|
EXAMPLES::
|
2075
2084
|
|
2076
2085
|
sage: K = Link([[[1, -2, 3, -1, 2, -3]],[-1, -1, -1]])
|
2077
2086
|
sage: K.khovanov_polynomial() # needs sage.modules
|
2078
|
-
q^-1 + q^-3 + q^-5*t^-2 + q^-9*t^-3
|
2079
|
-
sage: K.khovanov_polynomial(
|
2080
|
-
q^-1 + q^-3 + q^-5*t^-2 + q^-7*t^-2 + q^-9*t^-3
|
2087
|
+
q^-1 + q^-3 + q^-5*t^-2 + q^-7*t^-2*T^2 + q^-9*t^-3
|
2088
|
+
sage: K.khovanov_polynomial(ring=GF(2)) # needs sage.modules
|
2089
|
+
q^-1 + q^-3 + q^-5*t^-2 + q^-7*t^-2 + q^-7*t^-3 + q^-9*t^-3
|
2081
2090
|
|
2082
2091
|
The figure eight knot::
|
2083
2092
|
|
2084
2093
|
sage: L = Link([[1, 6, 2, 7], [5, 2, 6, 3], [3, 1, 4, 8], [7, 5, 8, 4]])
|
2085
2094
|
sage: L.khovanov_polynomial(var1='p') # needs sage.modules
|
2086
|
-
p^5*t^2 + p*t + p + p
|
2087
|
-
|
2088
|
-
|
2095
|
+
p^5*t^2 + p^3*t^2*T^2 + p*t + p + p^-1 + p^-1*t^-1
|
2096
|
+
+ p^-3*t^-1*T^2 + p^-5*t^-2
|
2097
|
+
sage: L.khovanov_polynomial(var1='p', var2='s', ring=GF(4)) # needs sage.modules sage.rings.finite_rings
|
2098
|
+
p^5*s^2 + p^3*s^2 + p^3*s + p*s + p + p^-1 + p^-1*s^-1
|
2099
|
+
+ p^-3*s^-1 + p^-3*s^-2 + p^-5*s^-2
|
2089
2100
|
|
2090
2101
|
The Hopf link::
|
2091
2102
|
|
@@ -2097,18 +2108,39 @@ class Link(SageObject):
|
|
2097
2108
|
|
2098
2109
|
.. SEEALSO:: :meth:`khovanov_homology`
|
2099
2110
|
"""
|
2100
|
-
|
2101
|
-
|
2111
|
+
if base_ring:
|
2112
|
+
ring = base_ring
|
2113
|
+
from sage.misc.superseded import deprecation
|
2114
|
+
deprecation(40149, "base_ring is deprecated, use argument ring instead.")
|
2115
|
+
|
2116
|
+
ch = ring.characteristic()
|
2117
|
+
integral = False
|
2118
|
+
if ch == 0 and not ring.is_field():
|
2119
|
+
integral = True
|
2120
|
+
L = LaurentPolynomialRing(ZZ, [var1, var2, torsion])
|
2121
|
+
else:
|
2122
|
+
L = LaurentPolynomialRing(ZZ, [var1, var2])
|
2102
2123
|
coeff = {}
|
2103
|
-
kh = self.khovanov_homology()
|
2124
|
+
kh = self.khovanov_homology(ring=ring)
|
2104
2125
|
from sage.rings.infinity import infinity
|
2105
2126
|
for h in kh:
|
2106
2127
|
for d in kh[h]:
|
2107
2128
|
H = kh[h][d]
|
2108
|
-
gens =
|
2109
|
-
|
2110
|
-
|
2111
|
-
|
2129
|
+
gens = {g: g.order() for g in H.gens()}
|
2130
|
+
if integral:
|
2131
|
+
tor_count = {}
|
2132
|
+
for g, tor in gens.items():
|
2133
|
+
if tor in tor_count:
|
2134
|
+
tor_count[tor] += 1
|
2135
|
+
else:
|
2136
|
+
tor_count[tor] = 1
|
2137
|
+
for tor, ell in tor_count.items():
|
2138
|
+
if tor is infinity:
|
2139
|
+
coeff[(h, d, 0)] = ell
|
2140
|
+
else:
|
2141
|
+
coeff[(h, d, tor)] = ell
|
2142
|
+
else:
|
2143
|
+
coeff[(h, d)] = len(gens)
|
2112
2144
|
return L(coeff)
|
2113
2145
|
|
2114
2146
|
def determinant(self):
|
@@ -2148,7 +2180,7 @@ class Link(SageObject):
|
|
2148
2180
|
m = V + V.transpose()
|
2149
2181
|
return Integer(abs(m.det()))
|
2150
2182
|
|
2151
|
-
def is_alternating(self):
|
2183
|
+
def is_alternating(self) -> bool:
|
2152
2184
|
r"""
|
2153
2185
|
Return whether the given knot diagram is alternating.
|
2154
2186
|
|
@@ -2462,9 +2494,9 @@ class Link(SageObject):
|
|
2462
2494
|
if not new_pd:
|
2463
2495
|
# trivial knot
|
2464
2496
|
return type(self)([])
|
2465
|
-
new_edges =
|
2497
|
+
new_edges = {elt for cr in new_pd for elt in cr}
|
2466
2498
|
for cr in loop_crossings:
|
2467
|
-
rem =
|
2499
|
+
rem = {e for e in cr if e in new_edges}
|
2468
2500
|
if len(rem) == 2:
|
2469
2501
|
# put remaining edges together
|
2470
2502
|
a, b = sorted(rem)
|
@@ -2871,8 +2903,8 @@ class Link(SageObject):
|
|
2871
2903
|
|
2872
2904
|
cross = pd_code[0]
|
2873
2905
|
rest = [list(vertex) for vertex in pd_code[1:]]
|
2874
|
-
|
2875
|
-
if a == d and c == b and
|
2906
|
+
a, b, c, d = cross
|
2907
|
+
if a == d and c == b and rest:
|
2876
2908
|
return (~t + t**(-5)) * Link(rest)._bracket()
|
2877
2909
|
elif a == b and c == d and len(rest) > 0:
|
2878
2910
|
return (t + t**5) * Link(rest)._bracket()
|
@@ -3046,7 +3078,7 @@ class Link(SageObject):
|
|
3046
3078
|
sage: # needs sage.libs.homfly
|
3047
3079
|
sage: L = Link([[[1, -1], [2, -2]], [1, 1]])
|
3048
3080
|
sage: L2 = Link([[1, 4, 2, 3], [2, 4, 1, 3]])
|
3049
|
-
sage: L2.homfly_polynomial()
|
3081
|
+
sage: L2.homfly_polynomial() # not tested (:issue:`39544`)
|
3050
3082
|
-L*M^-1 - L^-1*M^-1
|
3051
3083
|
sage: L.homfly_polynomial()
|
3052
3084
|
-L*M^-1 - L^-1*M^-1
|
@@ -3159,7 +3191,7 @@ class Link(SageObject):
|
|
3159
3191
|
|
3160
3192
|
INPUT:
|
3161
3193
|
|
3162
|
-
- ``n`` -- the number of colors to consider (if
|
3194
|
+
- ``n`` -- the number of colors to consider (if omitted the
|
3163
3195
|
value of the determinant of ``self`` will be taken)
|
3164
3196
|
|
3165
3197
|
OUTPUT: a matrix over the residue class ring of integers modulo ``n``
|
@@ -3203,7 +3235,7 @@ class Link(SageObject):
|
|
3203
3235
|
M[i, j] -= 1
|
3204
3236
|
return M
|
3205
3237
|
|
3206
|
-
def is_colorable(self, n=None):
|
3238
|
+
def is_colorable(self, n=None) -> bool:
|
3207
3239
|
r"""
|
3208
3240
|
Return whether the link is ``n``-colorable.
|
3209
3241
|
|
@@ -3214,7 +3246,7 @@ class Link(SageObject):
|
|
3214
3246
|
|
3215
3247
|
INPUT:
|
3216
3248
|
|
3217
|
-
- ``n`` -- the number of colors to consider (if
|
3249
|
+
- ``n`` -- the number of colors to consider (if omitted the
|
3218
3250
|
value of the determinant of ``self`` will be taken)
|
3219
3251
|
|
3220
3252
|
EXAMPLES:
|
@@ -3267,7 +3299,7 @@ class Link(SageObject):
|
|
3267
3299
|
|
3268
3300
|
INPUT:
|
3269
3301
|
|
3270
|
-
- ``n`` -- the number of colors to consider (if
|
3302
|
+
- ``n`` -- the number of colors to consider (if omitted the value
|
3271
3303
|
of the determinant of ``self`` will be taken). Note that there
|
3272
3304
|
are no colorings if n is coprime to the determinant of ``self``
|
3273
3305
|
|
@@ -3327,13 +3359,14 @@ class Link(SageObject):
|
|
3327
3359
|
|
3328
3360
|
def coloring_maps(self, n=None, finitely_presented=False):
|
3329
3361
|
r"""
|
3330
|
-
Return the `n`-coloring maps of ``self``.
|
3331
|
-
|
3332
|
-
|
3362
|
+
Return the `n`-coloring maps of ``self``.
|
3363
|
+
|
3364
|
+
These are group homomorphisms from the fundamental group of
|
3365
|
+
``self`` to the `n`-th dihedral group.
|
3333
3366
|
|
3334
3367
|
INPUT:
|
3335
3368
|
|
3336
|
-
- ``n`` -- the number of colors to consider (if
|
3369
|
+
- ``n`` -- the number of colors to consider (if omitted the value
|
3337
3370
|
of the determinant of ``self`` will be taken). Note that there
|
3338
3371
|
are no coloring maps if n is coprime to the determinant of ``self``
|
3339
3372
|
|
@@ -3953,7 +3986,7 @@ class Link(SageObject):
|
|
3953
3986
|
return sb.is_conjugated(ob)
|
3954
3987
|
|
3955
3988
|
if sb_ind > ob_ind:
|
3956
|
-
# if the braid of self has more strands we have to
|
3989
|
+
# if the braid of self has more strands we have to perform
|
3957
3990
|
# Markov II moves
|
3958
3991
|
B = sb.parent()
|
3959
3992
|
g = B.gen(ob_ind-1)
|
@@ -4489,7 +4522,7 @@ class Link(SageObject):
|
|
4489
4522
|
if proves[k]:
|
4490
4523
|
l += match_lists[k]
|
4491
4524
|
else:
|
4492
|
-
# for multi-component links there could
|
4525
|
+
# for multi-component links there could regularly be more than one
|
4493
4526
|
# matching entry
|
4494
4527
|
for k in match_lists.keys():
|
4495
4528
|
l += match_lists[k]
|
@@ -4525,7 +4558,7 @@ class Link(SageObject):
|
|
4525
4558
|
|
4526
4559
|
return answer_list(l)
|
4527
4560
|
|
4528
|
-
def is_isotopic(self, other):
|
4561
|
+
def is_isotopic(self, other) -> bool:
|
4529
4562
|
r"""
|
4530
4563
|
Check whether ``self`` is isotopic to ``other``.
|
4531
4564
|
|
@@ -4645,7 +4678,7 @@ class Link(SageObject):
|
|
4645
4678
|
verbose('identified by KnotInfo uniquely (%s, %s)' % (sl[0], k))
|
4646
4679
|
return True
|
4647
4680
|
elif not self.is_knot():
|
4648
|
-
if len(
|
4681
|
+
if len({l.series(oriented=True) for l in sl}) == 1:
|
4649
4682
|
# all matches are orientation mutants of each other
|
4650
4683
|
verbose('identified by KnotInfoSeries (%s, %s)' % (sl, k))
|
4651
4684
|
return True
|
sage/topology/cubical_complex.py
CHANGED
@@ -68,8 +68,9 @@ reflected in the fact that they have isomorphic homology groups.
|
|
68
68
|
see the :mod:`Generic Cell Complex <sage.homology.cell_complex>`
|
69
69
|
page instead.
|
70
70
|
"""
|
71
|
-
|
72
71
|
from copy import copy
|
72
|
+
from functools import total_ordering
|
73
|
+
|
73
74
|
from .cell_complex import GenericCellComplex
|
74
75
|
from sage.structure.sage_object import SageObject
|
75
76
|
from sage.rings.integer import Integer
|
@@ -78,8 +79,6 @@ from sage.rings.integer_ring import ZZ
|
|
78
79
|
from sage.rings.rational_field import QQ
|
79
80
|
from sage.misc.cachefunc import cached_method
|
80
81
|
from sage.misc.lazy_import import lazy_import
|
81
|
-
from sage.misc.superseded import deprecation
|
82
|
-
from functools import total_ordering
|
83
82
|
|
84
83
|
lazy_import('sage.matrix.constructor', 'matrix')
|
85
84
|
|
@@ -1272,11 +1271,11 @@ class CubicalComplex(GenericCellComplex):
|
|
1272
1271
|
# nonzero via a dictionary.
|
1273
1272
|
matrix_data = {}
|
1274
1273
|
col = 0
|
1275
|
-
if
|
1274
|
+
if old and current:
|
1276
1275
|
for cube in current:
|
1277
1276
|
faces = cube.faces_as_pairs()
|
1278
1277
|
sign = 1
|
1279
|
-
for
|
1278
|
+
for upper, lower in faces:
|
1280
1279
|
# trac 32203: use two "try/except" loops
|
1281
1280
|
# in case lower is in old but upper is not.
|
1282
1281
|
try:
|
sage/topology/delta_complex.py
CHANGED
@@ -1010,10 +1010,10 @@ class DeltaComplex(GenericCellComplex):
|
|
1010
1010
|
# Simplex, as well as the function
|
1011
1011
|
# 'lattice_paths', in
|
1012
1012
|
# simplicial_complex.py.)
|
1013
|
-
for
|
1014
|
-
|
1015
|
-
|
1016
|
-
path = tuple(
|
1013
|
+
for _path in lattice_paths(list(range(k + 1)),
|
1014
|
+
list(range(n + 1)),
|
1015
|
+
length=d+1):
|
1016
|
+
path = tuple(_path)
|
1017
1017
|
new[(k, k_idx, n, n_idx, path)] = len(simplices)
|
1018
1018
|
bdry_list = []
|
1019
1019
|
for i in range(d+1):
|
@@ -168,7 +168,6 @@ from sage.categories.fields import Fields
|
|
168
168
|
from sage.misc.cachefunc import cached_method
|
169
169
|
from sage.misc.latex import latex
|
170
170
|
from sage.misc.lazy_import import lazy_import
|
171
|
-
from sage.misc.superseded import deprecation
|
172
171
|
from sage.rings.integer import Integer
|
173
172
|
from sage.rings.integer_ring import ZZ
|
174
173
|
from sage.rings.polynomial.polynomial_ring import polygens
|
@@ -29,10 +29,12 @@ All of these examples are accessible by typing
|
|
29
29
|
- :meth:`~sage.topology.examples.DunceHat`
|
30
30
|
- :meth:`~sage.topology.examples.FareyMap`
|
31
31
|
- :meth:`~sage.topology.examples.GenusSix`
|
32
|
+
- :meth:`~sage.topology.examples.HochschildSphere`
|
32
33
|
- :meth:`~sage.topology.examples.K3Surface`
|
33
34
|
- :meth:`~sage.topology.examples.KleinBottle`
|
34
35
|
- :meth:`~sage.topology.examples.MatchingComplex`
|
35
36
|
- :meth:`~sage.topology.examples.MooreSpace`
|
37
|
+
- :meth:`~sage.topology.examples.NoncrossingBipartiteComplex`
|
36
38
|
- :meth:`~sage.topology.examples.NotIConnectedGraphs`
|
37
39
|
- :meth:`~sage.topology.examples.PoincareHomologyThreeSphere`
|
38
40
|
- :meth:`~sage.topology.examples.QuaternionicProjectivePlane`
|
@@ -84,3 +86,7 @@ from sage.topology.simplicial_complex_examples import (Sphere, Simplex, Torus,
|
|
84
86
|
SumComplex,
|
85
87
|
RandomTwoSphere, ShiftedComplex,
|
86
88
|
RudinBall, ZieglerBall, DunceHat)
|
89
|
+
|
90
|
+
from sage.combinat.posets.hochschild_lattice import hochschild_simplicial_complex as HochschildSphere
|
91
|
+
|
92
|
+
from sage.combinat.posets.bubble_shuffle import noncrossing_bipartite_complex as NoncrossingBipartiteComplex
|
@@ -64,15 +64,6 @@ EXAMPLES::
|
|
64
64
|
{0: 0, 1: C4, 2: 0}
|
65
65
|
sage: simplicial_complexes.MatchingComplex(6).homology() # needs sage.modules
|
66
66
|
{0: 0, 1: Z^16, 2: 0}
|
67
|
-
|
68
|
-
TESTS::
|
69
|
-
|
70
|
-
sage: from sage.topology.simplicial_complex_examples import PseudoQuaternionicProjectivePlane
|
71
|
-
sage: H = PseudoQuaternionicProjectivePlane() # needs sage.groups
|
72
|
-
doctest:warning...:
|
73
|
-
DeprecationWarning: PseudoQuaternionicProjectivePlane is deprecated.
|
74
|
-
Please use sage.topology.simplicial_complex_examples.QuaternionicProjectivePlane instead.
|
75
|
-
See https://github.com/sagemath/sage/issues/34568 for details.
|
76
67
|
"""
|
77
68
|
|
78
69
|
from .simplicial_complex import SimplicialComplex
|
@@ -620,9 +611,6 @@ def QuaternionicProjectivePlane():
|
|
620
611
|
for g in PermutationGroup([P, S])])
|
621
612
|
|
622
613
|
|
623
|
-
PseudoQuaternionicProjectivePlane = deprecated_function_alias(34568, QuaternionicProjectivePlane)
|
624
|
-
|
625
|
-
|
626
614
|
def PoincareHomologyThreeSphere():
|
627
615
|
"""
|
628
616
|
A triangulation of the Poincaré homology 3-sphere.
|
@@ -1439,7 +1427,7 @@ def RandomTwoSphere(n):
|
|
1439
1427
|
graph = RandomTriangulation(n)
|
1440
1428
|
|
1441
1429
|
graph = graph.relabel(inplace=False)
|
1442
|
-
triangles = [(u, v, w) for u, L in graph.
|
1430
|
+
triangles = [(u, v, w) for u, L in graph.get_embedding().items()
|
1443
1431
|
for v, w in zip(L, L[1:] + [L[0]]) if u < v and u < w]
|
1444
1432
|
|
1445
1433
|
return SimplicialComplex(triangles, maximality_check=False)
|
@@ -1484,10 +1472,10 @@ def ShiftedComplex(generators):
|
|
1484
1472
|
"""
|
1485
1473
|
from sage.combinat.partition import Partitions
|
1486
1474
|
Facets = []
|
1487
|
-
for
|
1488
|
-
G = sorted(
|
1475
|
+
for _G in generators:
|
1476
|
+
G = sorted(_G, reverse=True)
|
1489
1477
|
L = len(G)
|
1490
|
-
for k in range(L * (L+1) // 2, sum(G) + 1):
|
1478
|
+
for k in range(L * (L + 1) // 2, sum(G) + 1):
|
1491
1479
|
for P in Partitions(k, length=L, max_slope=-1, outer=G):
|
1492
1480
|
Facets.append(list(reversed(P)))
|
1493
1481
|
return SimplicialComplex(Facets)
|
File without changes
|
{passagemath_graphs-10.5.43.dist-info → passagemath_graphs-10.6.1rc2.dist-info}/top_level.txt
RENAMED
File without changes
|