passagemath-graphs 10.6.1rc1__cp310-cp310-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_graphs-10.6.1rc1.dist-info/METADATA +292 -0
- passagemath_graphs-10.6.1rc1.dist-info/RECORD +260 -0
- passagemath_graphs-10.6.1rc1.dist-info/WHEEL +5 -0
- passagemath_graphs-10.6.1rc1.dist-info/top_level.txt +2 -0
- passagemath_graphs.libs/libgcc_s-69c45f16.so.1 +0 -0
- passagemath_graphs.libs/libgmp-8e78bd9b.so.10.5.0 +0 -0
- passagemath_graphs.libs/libstdc++-1f1a71be.so.6.0.33 +0 -0
- sage/all__sagemath_graphs.py +39 -0
- sage/combinat/abstract_tree.py +2723 -0
- sage/combinat/all__sagemath_graphs.py +34 -0
- sage/combinat/binary_tree.py +5306 -0
- sage/combinat/cluster_algebra_quiver/all.py +22 -0
- sage/combinat/cluster_algebra_quiver/cluster_seed.py +5208 -0
- sage/combinat/cluster_algebra_quiver/interact.py +124 -0
- sage/combinat/cluster_algebra_quiver/mutation_class.py +625 -0
- sage/combinat/cluster_algebra_quiver/mutation_type.py +1555 -0
- sage/combinat/cluster_algebra_quiver/quiver.py +2290 -0
- sage/combinat/cluster_algebra_quiver/quiver_mutation_type.py +2468 -0
- sage/combinat/designs/MOLS_handbook_data.py +570 -0
- sage/combinat/designs/all.py +58 -0
- sage/combinat/designs/bibd.py +1655 -0
- sage/combinat/designs/block_design.py +1071 -0
- sage/combinat/designs/covering_array.py +269 -0
- sage/combinat/designs/covering_design.py +530 -0
- sage/combinat/designs/database.py +5615 -0
- sage/combinat/designs/design_catalog.py +122 -0
- sage/combinat/designs/designs_pyx.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/combinat/designs/designs_pyx.pxd +21 -0
- sage/combinat/designs/designs_pyx.pyx +993 -0
- sage/combinat/designs/difference_family.py +3951 -0
- sage/combinat/designs/difference_matrices.py +279 -0
- sage/combinat/designs/evenly_distributed_sets.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/combinat/designs/evenly_distributed_sets.pyx +661 -0
- sage/combinat/designs/ext_rep.py +1064 -0
- sage/combinat/designs/gen_quadrangles_with_spread.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/combinat/designs/gen_quadrangles_with_spread.pyx +339 -0
- sage/combinat/designs/group_divisible_designs.py +361 -0
- sage/combinat/designs/incidence_structures.py +2357 -0
- sage/combinat/designs/latin_squares.py +581 -0
- sage/combinat/designs/orthogonal_arrays.py +2244 -0
- sage/combinat/designs/orthogonal_arrays_build_recursive.py +1780 -0
- sage/combinat/designs/orthogonal_arrays_find_recursive.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/combinat/designs/orthogonal_arrays_find_recursive.pyx +967 -0
- sage/combinat/designs/resolvable_bibd.py +815 -0
- sage/combinat/designs/steiner_quadruple_systems.py +1306 -0
- sage/combinat/designs/subhypergraph_search.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/combinat/designs/subhypergraph_search.pyx +530 -0
- sage/combinat/designs/twographs.py +306 -0
- sage/combinat/finite_state_machine.py +14874 -0
- sage/combinat/finite_state_machine_generators.py +2006 -0
- sage/combinat/graph_path.py +448 -0
- sage/combinat/interval_posets.py +3908 -0
- sage/combinat/nu_tamari_lattice.py +269 -0
- sage/combinat/ordered_tree.py +1446 -0
- sage/combinat/posets/all.py +46 -0
- sage/combinat/posets/bubble_shuffle.py +247 -0
- sage/combinat/posets/cartesian_product.py +493 -0
- sage/combinat/posets/d_complete.py +182 -0
- sage/combinat/posets/elements.py +273 -0
- sage/combinat/posets/forest.py +30 -0
- sage/combinat/posets/hasse_cython.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/combinat/posets/hasse_cython.pyx +174 -0
- sage/combinat/posets/hasse_diagram.py +3672 -0
- sage/combinat/posets/hochschild_lattice.py +158 -0
- sage/combinat/posets/incidence_algebras.py +794 -0
- sage/combinat/posets/lattices.py +5117 -0
- sage/combinat/posets/linear_extension_iterator.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/combinat/posets/linear_extension_iterator.pyx +292 -0
- sage/combinat/posets/linear_extensions.py +1037 -0
- sage/combinat/posets/mobile.py +275 -0
- sage/combinat/posets/moebius_algebra.py +776 -0
- sage/combinat/posets/poset_examples.py +2178 -0
- sage/combinat/posets/posets.py +9360 -0
- sage/combinat/rooted_tree.py +1070 -0
- sage/combinat/shard_order.py +239 -0
- sage/combinat/tamari_lattices.py +384 -0
- sage/combinat/yang_baxter_graph.py +923 -0
- sage/databases/all__sagemath_graphs.py +1 -0
- sage/databases/knotinfo_db.py +1231 -0
- sage/ext_data/all__sagemath_graphs.py +1 -0
- sage/ext_data/graphs/graph_plot_js.html +330 -0
- sage/ext_data/kenzo/CP2.txt +45 -0
- sage/ext_data/kenzo/CP3.txt +349 -0
- sage/ext_data/kenzo/CP4.txt +4774 -0
- sage/ext_data/kenzo/README.txt +49 -0
- sage/ext_data/kenzo/S4.txt +20 -0
- sage/graphs/all.py +42 -0
- sage/graphs/asteroidal_triples.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/asteroidal_triples.pyx +320 -0
- sage/graphs/base/all.py +1 -0
- sage/graphs/base/boost_graph.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/base/boost_graph.pxd +106 -0
- sage/graphs/base/boost_graph.pyx +3045 -0
- sage/graphs/base/c_graph.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/base/c_graph.pxd +106 -0
- sage/graphs/base/c_graph.pyx +5096 -0
- sage/graphs/base/dense_graph.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/base/dense_graph.pxd +28 -0
- sage/graphs/base/dense_graph.pyx +801 -0
- sage/graphs/base/graph_backends.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/base/graph_backends.pxd +5 -0
- sage/graphs/base/graph_backends.pyx +797 -0
- sage/graphs/base/overview.py +85 -0
- sage/graphs/base/sparse_graph.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/base/sparse_graph.pxd +90 -0
- sage/graphs/base/sparse_graph.pyx +1653 -0
- sage/graphs/base/static_dense_graph.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/base/static_dense_graph.pxd +5 -0
- sage/graphs/base/static_dense_graph.pyx +1032 -0
- sage/graphs/base/static_sparse_backend.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/base/static_sparse_backend.pxd +27 -0
- sage/graphs/base/static_sparse_backend.pyx +1583 -0
- sage/graphs/base/static_sparse_graph.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/base/static_sparse_graph.pxd +37 -0
- sage/graphs/base/static_sparse_graph.pyx +1375 -0
- sage/graphs/bipartite_graph.py +2732 -0
- sage/graphs/centrality.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/centrality.pyx +1038 -0
- sage/graphs/cographs.py +519 -0
- sage/graphs/comparability.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/comparability.pyx +851 -0
- sage/graphs/connectivity.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/connectivity.pxd +157 -0
- sage/graphs/connectivity.pyx +4813 -0
- sage/graphs/convexity_properties.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/convexity_properties.pxd +16 -0
- sage/graphs/convexity_properties.pyx +870 -0
- sage/graphs/digraph.py +4754 -0
- sage/graphs/digraph_generators.py +1993 -0
- sage/graphs/distances_all_pairs.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/distances_all_pairs.pxd +12 -0
- sage/graphs/distances_all_pairs.pyx +2938 -0
- sage/graphs/domination.py +1363 -0
- sage/graphs/dot2tex_utils.py +100 -0
- sage/graphs/edge_connectivity.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/edge_connectivity.pyx +1215 -0
- sage/graphs/generators/all.py +1 -0
- sage/graphs/generators/basic.py +1769 -0
- sage/graphs/generators/chessboard.py +538 -0
- sage/graphs/generators/classical_geometries.py +1611 -0
- sage/graphs/generators/degree_sequence.py +235 -0
- sage/graphs/generators/distance_regular.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/generators/distance_regular.pyx +2846 -0
- sage/graphs/generators/families.py +4759 -0
- sage/graphs/generators/intersection.py +565 -0
- sage/graphs/generators/platonic_solids.py +262 -0
- sage/graphs/generators/random.py +2623 -0
- sage/graphs/generators/smallgraphs.py +5741 -0
- sage/graphs/generators/world_map.py +724 -0
- sage/graphs/generic_graph.py +26867 -0
- sage/graphs/generic_graph_pyx.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/generic_graph_pyx.pxd +34 -0
- sage/graphs/generic_graph_pyx.pyx +1673 -0
- sage/graphs/genus.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/genus.pyx +622 -0
- sage/graphs/graph.py +9645 -0
- sage/graphs/graph_coloring.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/graph_coloring.pyx +2284 -0
- sage/graphs/graph_database.py +1177 -0
- sage/graphs/graph_decompositions/all.py +1 -0
- sage/graphs/graph_decompositions/bandwidth.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/graph_decompositions/bandwidth.pyx +428 -0
- sage/graphs/graph_decompositions/clique_separators.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/graph_decompositions/clique_separators.pyx +616 -0
- sage/graphs/graph_decompositions/cutwidth.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/graph_decompositions/cutwidth.pyx +753 -0
- sage/graphs/graph_decompositions/fast_digraph.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/graph_decompositions/fast_digraph.pxd +13 -0
- sage/graphs/graph_decompositions/fast_digraph.pyx +212 -0
- sage/graphs/graph_decompositions/graph_products.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/graph_decompositions/graph_products.pyx +508 -0
- sage/graphs/graph_decompositions/modular_decomposition.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/graph_decompositions/modular_decomposition.pxd +27 -0
- sage/graphs/graph_decompositions/modular_decomposition.pyx +1536 -0
- sage/graphs/graph_decompositions/slice_decomposition.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/graph_decompositions/slice_decomposition.pxd +18 -0
- sage/graphs/graph_decompositions/slice_decomposition.pyx +1106 -0
- sage/graphs/graph_decompositions/tree_decomposition.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/graph_decompositions/tree_decomposition.pxd +17 -0
- sage/graphs/graph_decompositions/tree_decomposition.pyx +1996 -0
- sage/graphs/graph_decompositions/vertex_separation.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/graph_decompositions/vertex_separation.pxd +5 -0
- sage/graphs/graph_decompositions/vertex_separation.pyx +1963 -0
- sage/graphs/graph_editor.py +82 -0
- sage/graphs/graph_generators.py +3314 -0
- sage/graphs/graph_generators_pyx.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/graph_generators_pyx.pyx +95 -0
- sage/graphs/graph_input.py +812 -0
- sage/graphs/graph_latex.py +2064 -0
- sage/graphs/graph_list.py +410 -0
- sage/graphs/graph_plot.py +1756 -0
- sage/graphs/graph_plot_js.py +338 -0
- sage/graphs/hyperbolicity.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/hyperbolicity.pyx +1704 -0
- sage/graphs/hypergraph_generators.py +364 -0
- sage/graphs/independent_sets.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/independent_sets.pxd +13 -0
- sage/graphs/independent_sets.pyx +402 -0
- sage/graphs/isgci.py +1033 -0
- sage/graphs/isoperimetric_inequalities.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/isoperimetric_inequalities.pyx +489 -0
- sage/graphs/line_graph.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/line_graph.pyx +743 -0
- sage/graphs/lovasz_theta.py +77 -0
- sage/graphs/matching.py +1633 -0
- sage/graphs/matching_covered_graph.py +3590 -0
- sage/graphs/orientations.py +1489 -0
- sage/graphs/partial_cube.py +459 -0
- sage/graphs/path_enumeration.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/path_enumeration.pyx +2040 -0
- sage/graphs/pq_trees.py +1129 -0
- sage/graphs/print_graphs.py +201 -0
- sage/graphs/schnyder.py +865 -0
- sage/graphs/spanning_tree.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/spanning_tree.pyx +1457 -0
- sage/graphs/strongly_regular_db.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/strongly_regular_db.pyx +3340 -0
- sage/graphs/traversals.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/traversals.pxd +9 -0
- sage/graphs/traversals.pyx +1872 -0
- sage/graphs/trees.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/trees.pxd +15 -0
- sage/graphs/trees.pyx +310 -0
- sage/graphs/tutte_polynomial.py +713 -0
- sage/graphs/views.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/views.pyx +794 -0
- sage/graphs/weakly_chordal.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/graphs/weakly_chordal.pyx +604 -0
- sage/groups/all__sagemath_graphs.py +1 -0
- sage/groups/perm_gps/all__sagemath_graphs.py +1 -0
- sage/groups/perm_gps/partn_ref/all__sagemath_graphs.py +1 -0
- sage/groups/perm_gps/partn_ref/refinement_graphs.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/groups/perm_gps/partn_ref/refinement_graphs.pxd +38 -0
- sage/groups/perm_gps/partn_ref/refinement_graphs.pyx +1666 -0
- sage/knots/all.py +6 -0
- sage/knots/free_knotinfo_monoid.py +507 -0
- sage/knots/gauss_code.py +291 -0
- sage/knots/knot.py +682 -0
- sage/knots/knot_table.py +284 -0
- sage/knots/knotinfo.py +2900 -0
- sage/knots/link.py +4715 -0
- sage/sandpiles/all.py +13 -0
- sage/sandpiles/examples.py +225 -0
- sage/sandpiles/sandpile.py +6365 -0
- sage/topology/all.py +22 -0
- sage/topology/cell_complex.py +1214 -0
- sage/topology/cubical_complex.py +1976 -0
- sage/topology/delta_complex.py +1806 -0
- sage/topology/filtered_simplicial_complex.py +744 -0
- sage/topology/moment_angle_complex.py +823 -0
- sage/topology/simplicial_complex.py +5160 -0
- sage/topology/simplicial_complex_catalog.py +92 -0
- sage/topology/simplicial_complex_examples.py +1680 -0
- sage/topology/simplicial_complex_homset.py +205 -0
- sage/topology/simplicial_complex_morphism.py +836 -0
- sage/topology/simplicial_set.py +4102 -0
- sage/topology/simplicial_set_catalog.py +55 -0
- sage/topology/simplicial_set_constructions.py +2954 -0
- sage/topology/simplicial_set_examples.py +865 -0
- sage/topology/simplicial_set_morphism.py +1464 -0
Binary file
|
@@ -0,0 +1,157 @@
|
|
1
|
+
# sage_setup: distribution = sagemath-graphs
|
2
|
+
from memory_allocator cimport MemoryAllocator
|
3
|
+
from sage.graphs.generic_graph_pyx cimport GenericGraph_pyx
|
4
|
+
|
5
|
+
ctypedef struct _LinkedListNode:
|
6
|
+
_LinkedListNode * prev
|
7
|
+
_LinkedListNode * next
|
8
|
+
Py_ssize_t data
|
9
|
+
|
10
|
+
ctypedef struct _LinkedList:
|
11
|
+
_LinkedListNode * head
|
12
|
+
_LinkedListNode * tail
|
13
|
+
Py_ssize_t length
|
14
|
+
|
15
|
+
cdef class _Component:
|
16
|
+
cdef MemoryAllocator mem
|
17
|
+
cdef _LinkedList * edge_list
|
18
|
+
cdef int component_type
|
19
|
+
|
20
|
+
cdef add_edge(self, Py_ssize_t e_index)
|
21
|
+
cdef finish_tric_or_poly(self, Py_ssize_t e_index)
|
22
|
+
cdef list get_edge_list(self)
|
23
|
+
|
24
|
+
cdef class TriconnectivitySPQR:
|
25
|
+
cdef MemoryAllocator mem
|
26
|
+
cdef Py_ssize_t n
|
27
|
+
cdef Py_ssize_t m
|
28
|
+
cdef Py_ssize_t max_number_of_edges
|
29
|
+
cdef str graph_name
|
30
|
+
|
31
|
+
# Relabel vertices in range [0..n-1]
|
32
|
+
cdef list int_to_vertex
|
33
|
+
cdef dict vertex_to_int
|
34
|
+
|
35
|
+
# We associate a unique identifier (int) to each edge and store extremities
|
36
|
+
# and original labels in distinct arrays.
|
37
|
+
cdef int* edge_extremity_first
|
38
|
+
cdef int* edge_extremity_second
|
39
|
+
cdef list int_to_original_edge_label
|
40
|
+
cdef int virtual_edge_num # number of created virtual edges
|
41
|
+
|
42
|
+
cdef int* edge_status
|
43
|
+
cdef bint* reverse_edges
|
44
|
+
|
45
|
+
cdef int* dfs_number
|
46
|
+
|
47
|
+
cdef _LinkedList ** highpt
|
48
|
+
cdef _LinkedListNode ** in_high
|
49
|
+
|
50
|
+
# Translates DFS number of a vertex to its new number
|
51
|
+
cdef int* old_to_new
|
52
|
+
cdef int* newnum # new number of vertex i
|
53
|
+
cdef int* node_at # node at dfs number of i
|
54
|
+
cdef int* lowpt1 # lowpt1 number of vertex i
|
55
|
+
cdef int* lowpt2 # lowpt2 number of vertex i
|
56
|
+
|
57
|
+
cdef _LinkedList ** adj
|
58
|
+
cdef _LinkedListNode ** in_adj
|
59
|
+
cdef int* nd # Number of descendants of vertex i
|
60
|
+
cdef int* parent # Parent vertex of vertex i in the palm tree
|
61
|
+
cdef int* degree # Degree of vertex i
|
62
|
+
cdef int* tree_arc # Tree arc entering the vertex i
|
63
|
+
cdef int* vertex_at # vertex with DFS number of i
|
64
|
+
|
65
|
+
cdef int dfs_counter
|
66
|
+
cdef list components_list # list of components of `graph_copy`
|
67
|
+
cdef list graph_copy_adjacency # Stores adjacency list
|
68
|
+
|
69
|
+
cdef bint* starts_path # Does edge e_index start a path
|
70
|
+
cdef int start_vertex # First vertex of exploration
|
71
|
+
|
72
|
+
# Stacks used in `path_search` function
|
73
|
+
cdef list e_stack
|
74
|
+
cdef int* t_stack_h
|
75
|
+
cdef int* t_stack_a
|
76
|
+
cdef int* t_stack_b
|
77
|
+
cdef int t_stack_top
|
78
|
+
|
79
|
+
cdef list comp_final_edge_list # entry i is list of edges in component i
|
80
|
+
cdef list comp_type # entry i is type of component i
|
81
|
+
cdef dict final_edge_to_edge_index # associate final edge e to its index in int_to_edge
|
82
|
+
cdef GenericGraph_pyx spqr_tree # The final SPQR tree is stored
|
83
|
+
|
84
|
+
# Arrays used in different methods. Allocated only once
|
85
|
+
cdef int* tmp_array_n_int_1
|
86
|
+
cdef int* tmp_array_n_int_2
|
87
|
+
cdef int* tmp_array_n_int_3
|
88
|
+
cdef bint* tmp_array_n_bint_1
|
89
|
+
|
90
|
+
# === Methods ===
|
91
|
+
|
92
|
+
cdef inline __tstack_push(self, int h, int a, int b):
|
93
|
+
"""
|
94
|
+
Push ``(h, a, b)`` triple on ``Tstack``.
|
95
|
+
"""
|
96
|
+
self.t_stack_top += 1
|
97
|
+
self.t_stack_h[self.t_stack_top] = h
|
98
|
+
self.t_stack_a[self.t_stack_top] = a
|
99
|
+
self.t_stack_b[self.t_stack_top] = b
|
100
|
+
|
101
|
+
cdef inline __tstack_push_eos(self):
|
102
|
+
"""
|
103
|
+
Push end-of-stack marker on ``Tstack``.
|
104
|
+
"""
|
105
|
+
self.t_stack_top += 1
|
106
|
+
self.t_stack_a[self.t_stack_top] = -1
|
107
|
+
|
108
|
+
cdef inline bint __tstack_not_eos(self) noexcept:
|
109
|
+
"""
|
110
|
+
Return ``True`` iff end-of-stack marker is not on top of ``Tstack``.
|
111
|
+
"""
|
112
|
+
return self.t_stack_a[self.t_stack_top] != -1
|
113
|
+
|
114
|
+
cdef inline int __estack_pop(self) noexcept:
|
115
|
+
"""
|
116
|
+
Pop from estack and return the popped element
|
117
|
+
"""
|
118
|
+
return <int> self.e_stack.pop()
|
119
|
+
|
120
|
+
cdef inline __new_component(self, list edges, int type_c):
|
121
|
+
"""
|
122
|
+
Create a new component and add ``edges`` to it.
|
123
|
+
|
124
|
+
``type_c = 0`` for bond, ``1`` for polygon, ``2`` for triconnected.
|
125
|
+
"""
|
126
|
+
self.components_list.append(_Component(edges, type_c))
|
127
|
+
|
128
|
+
cdef inline bint __is_virtual_edge(self, int e_index) noexcept:
|
129
|
+
"""
|
130
|
+
Return ``True`` if edge number ``e_index`` is a virtual edge.
|
131
|
+
|
132
|
+
By construction, the first ``m`` edge indices are the original edges of
|
133
|
+
the graph. The edges created during the execution of the algorithm,
|
134
|
+
i.e., virtual edges, have indices ``>= m``.
|
135
|
+
"""
|
136
|
+
return e_index >= self.m
|
137
|
+
|
138
|
+
cdef inline int __edge_other_extremity(self, int e_index, int u) noexcept:
|
139
|
+
"""
|
140
|
+
Return the other extremity of the edge
|
141
|
+
"""
|
142
|
+
if self.edge_extremity_first[e_index] == u:
|
143
|
+
return self.edge_extremity_second[e_index]
|
144
|
+
return self.edge_extremity_first[e_index]
|
145
|
+
|
146
|
+
cdef int __new_virtual_edge(self, int u, int v) noexcept
|
147
|
+
cdef _LinkedListNode * __new_LinkedListNode(self, Py_ssize_t e_index) noexcept
|
148
|
+
cdef Py_ssize_t __high(self, Py_ssize_t v) noexcept
|
149
|
+
cdef __del_high(self, int e_index)
|
150
|
+
cdef __split_multiple_edges(self)
|
151
|
+
cdef int __dfs1(self, int start, bint check=*) noexcept
|
152
|
+
cdef __build_acceptable_adj_struct(self)
|
153
|
+
cdef __path_finder(self, int start)
|
154
|
+
cdef __dfs2(self)
|
155
|
+
cdef int __path_search(self, int start) except -1
|
156
|
+
cdef __assemble_triconnected_components(self)
|
157
|
+
cdef __build_spqr_tree(self)
|