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
@@ -0,0 +1,85 @@
|
|
1
|
+
# sage_setup: distribution = sagemath-graphs
|
2
|
+
r"""
|
3
|
+
Overview of (di)graph data structures
|
4
|
+
|
5
|
+
This module contains no code, and describes Sage's data structures for graphs
|
6
|
+
and digraphs. They can be used directly at Cython/C level, or through the
|
7
|
+
:class:`Graph` and :class:`DiGraph` classes (except one)
|
8
|
+
|
9
|
+
Data structures
|
10
|
+
---------------
|
11
|
+
|
12
|
+
Four data structures are natively available for (di)graphs in Sage:
|
13
|
+
|
14
|
+
- :mod:`~sage.graphs.base.sparse_graph` (default) -- for sparse (di)graphs, with
|
15
|
+
a `\log(n)` edge test, and easy enumeration of neighbors. It is the most
|
16
|
+
general-purpose data structure, though it can have a high memory cost in
|
17
|
+
practice.
|
18
|
+
|
19
|
+
- Supports: Addition/removal of edges/vertices, multiple edges, edge labels
|
20
|
+
and loops.
|
21
|
+
|
22
|
+
- :mod:`~sage.graphs.base.dense_graph` -- for dense (di)graphs, with a `O(1)`
|
23
|
+
edge test, and slow enumeration of neighbors.
|
24
|
+
|
25
|
+
- Supports: addition/removal of edges/vertices, and loops.
|
26
|
+
- Does not support: multiple edges and edge labels.
|
27
|
+
|
28
|
+
- :mod:`~sage.graphs.base.static_sparse_graph` -- for sparse (di)graphs and very
|
29
|
+
intensive computations (at C-level). It is faster than
|
30
|
+
:mod:`~sage.graphs.base.sparse_graph` in practice and *much* lighter in
|
31
|
+
memory.
|
32
|
+
|
33
|
+
- Supports: multiple edges, edge labels and loops
|
34
|
+
- Does not support: addition/removal of edges/vertices.
|
35
|
+
|
36
|
+
- :mod:`~sage.graphs.base.static_dense_graph` -- for dense (di)graphs and very
|
37
|
+
intensive computations (at C-level). It is mostly a wrapper over bitsets.
|
38
|
+
|
39
|
+
- Supports: addition/removal of edges/vertices, and loops.
|
40
|
+
- Does not support: multiple edges and edge labels.
|
41
|
+
|
42
|
+
For more information, see the data structures' respective pages.
|
43
|
+
|
44
|
+
The backends
|
45
|
+
------------
|
46
|
+
|
47
|
+
The :class:`Graph` and :class:`DiGraph` objects delegate the storage of vertices
|
48
|
+
and edges to other objects: the :mod:`graph backends
|
49
|
+
<sage.graphs.base.graph_backends>`::
|
50
|
+
|
51
|
+
sage: Graph()._backend
|
52
|
+
<sage.graphs.base.sparse_graph.SparseGraphBackend object at ...>
|
53
|
+
|
54
|
+
A (di)graph backend is a simpler (di)graph class having only the most elementary
|
55
|
+
methods (e.g.: add/remove vertices/edges). Its vertices can be arbitrary
|
56
|
+
hashable objects.
|
57
|
+
|
58
|
+
The only backend available in Sage is
|
59
|
+
:class:`~sage.graphs.base.c_graph.CGraphBackend`.
|
60
|
+
|
61
|
+
CGraph and CGraphBackend
|
62
|
+
------------------------
|
63
|
+
|
64
|
+
:class:`~sage.graphs.base.c_graph.CGraphBackend` is the backend of all native
|
65
|
+
data structures that can be used by :class:`Graph` and :class:`DiGraph`. It is
|
66
|
+
extended by:
|
67
|
+
|
68
|
+
- :class:`~sage.graphs.base.dense_graph.DenseGraphBackend`
|
69
|
+
- :class:`~sage.graphs.base.sparse_graph.SparseGraphBackend`
|
70
|
+
- :class:`~sage.graphs.base.static_sparse_backend.StaticSparseBackend`
|
71
|
+
|
72
|
+
While a :class:`~sage.graphs.base.c_graph.CGraphBackend` deals with arbitrary
|
73
|
+
(hashable) vertices, it contains a ``._cg`` attribute of type
|
74
|
+
:class:`~sage.graphs.base.c_graph.CGraph` which only deals with integer
|
75
|
+
vertices.
|
76
|
+
|
77
|
+
The :class:`~sage.graphs.base.c_graph.CGraph` data structures available in Sage
|
78
|
+
are:
|
79
|
+
|
80
|
+
- :class:`~sage.graphs.base.dense_graph.DenseGraph`
|
81
|
+
- :class:`~sage.graphs.base.sparse_graph.SparseGraph`
|
82
|
+
- :class:`~sage.graphs.base.static_sparse_backend.StaticSparseCGraph`
|
83
|
+
|
84
|
+
See the :mod:`~sage.graphs.base.c_graph` module for more information.
|
85
|
+
"""
|
Binary file
|
@@ -0,0 +1,90 @@
|
|
1
|
+
# sage_setup: distribution = sagemath-graphs
|
2
|
+
# ****************************************************************************
|
3
|
+
# Copyright (C) 2008-2009 Robert L. Miller <rlmillster@gmail.com>
|
4
|
+
#
|
5
|
+
# This program is free software: you can redistribute it and/or modify
|
6
|
+
# it under the terms of the GNU General Public License as published by
|
7
|
+
# the Free Software Foundation, either version 2 of the License, or
|
8
|
+
# (at your option) any later version.
|
9
|
+
# https://www.gnu.org/licenses/
|
10
|
+
# ****************************************************************************
|
11
|
+
|
12
|
+
from sage.graphs.base.c_graph cimport CGraph, CGraphBackend
|
13
|
+
cimport cython
|
14
|
+
|
15
|
+
cdef struct SparseGraphLLNode:
|
16
|
+
int label
|
17
|
+
int number
|
18
|
+
SparseGraphLLNode *next
|
19
|
+
|
20
|
+
cdef struct SparseGraphBTNode:
|
21
|
+
int vertex
|
22
|
+
int number
|
23
|
+
SparseGraphLLNode *labels
|
24
|
+
SparseGraphBTNode *left
|
25
|
+
SparseGraphBTNode *right
|
26
|
+
|
27
|
+
|
28
|
+
@cython.final
|
29
|
+
cdef class SparseGraph(CGraph):
|
30
|
+
cdef int hash_length
|
31
|
+
cdef int hash_mask
|
32
|
+
cdef SparseGraphBTNode **vertices
|
33
|
+
cdef SparseGraphBTNode **vertices_rev
|
34
|
+
cdef bint _directed
|
35
|
+
cpdef bint is_directed(self) noexcept
|
36
|
+
|
37
|
+
cdef int _del_arc_unsafe(self, int, int, SparseGraphBTNode **) except -1
|
38
|
+
cdef int _add_arc_label_unsafe(self, int, int, int, SparseGraphBTNode **) except -1
|
39
|
+
cdef int _del_arc_label_unsafe(self, int, int, int, SparseGraphBTNode **) noexcept
|
40
|
+
cdef SparseGraphLLNode* arc_labels_unsafe(self, int u, int v) noexcept
|
41
|
+
cpdef int out_degree(self, int u) noexcept
|
42
|
+
cpdef int in_degree(self, int u) noexcept
|
43
|
+
|
44
|
+
cdef inline int _neighbors_unsafe (self, int u, bint out, int *neighbors, int size) except -2
|
45
|
+
|
46
|
+
cdef inline int _neighbors_BTNode_unsafe (self, int u, bint out, SparseGraphBTNode **res, int size) except -2
|
47
|
+
|
48
|
+
cdef inline SparseGraphBTNode* next_out_neighbor_BTNode_unsafe(self, int u, int v) noexcept:
|
49
|
+
"""
|
50
|
+
Return the next out-neighbor of ``u`` that is greater than ``v``.
|
51
|
+
|
52
|
+
If ``v`` is ``-1`` return the first neighbor of ``u``.
|
53
|
+
|
54
|
+
Return ``NULL`` in case there does not exist such an out-neighbor.
|
55
|
+
|
56
|
+
.. WARNING::
|
57
|
+
|
58
|
+
Repeated calls to this function until NULL is returned DOES NOT
|
59
|
+
yield a linear time algorithm in the number of neighbors of u.
|
60
|
+
To list the neighbors of a vertex in linear time, one should use
|
61
|
+
_neighbors_BTNode_unsafe.
|
62
|
+
"""
|
63
|
+
return self.next_neighbor_BTNode_unsafe(self.vertices, u, v)
|
64
|
+
|
65
|
+
cdef inline SparseGraphBTNode* next_in_neighbor_BTNode_unsafe(self, int v, int u) noexcept:
|
66
|
+
"""
|
67
|
+
Return the next in-neighbor of ``v`` that is greater than ``u``.
|
68
|
+
|
69
|
+
If ``u`` is ``-1`` return the first neighbor of ``v``.
|
70
|
+
|
71
|
+
Return ``NULL`` in case there does not exist such an in-neighbor.
|
72
|
+
|
73
|
+
.. WARNING::
|
74
|
+
|
75
|
+
Repeated calls to this function until NULL is returned DOES NOT
|
76
|
+
yield a linear time algorithm in the number of neighbors of u.
|
77
|
+
To list the neighbors of a vertex in linear time, one should use
|
78
|
+
_neighbors_BTNode_unsafe.
|
79
|
+
"""
|
80
|
+
return self.next_neighbor_BTNode_unsafe(self.vertices_rev, v, u)
|
81
|
+
|
82
|
+
cdef inline SparseGraphBTNode* next_neighbor_BTNode_unsafe(self, SparseGraphBTNode** vertices, int u, int v) noexcept
|
83
|
+
|
84
|
+
|
85
|
+
cdef class SparseGraphBackend(CGraphBackend):
|
86
|
+
cdef int edge_labels_max
|
87
|
+
cdef list edge_labels_available_ids
|
88
|
+
cdef SparseGraph _cg
|
89
|
+
cdef inline CGraph cg(self):
|
90
|
+
return <CGraph> self._cg
|