Skip to content

Commit 196151d

Browse files
committed
move method is_biconnected from graph.py to connectivity.pyx
1 parent 7d5b227 commit 196151d

File tree

5 files changed

+53
-50
lines changed

5 files changed

+53
-50
lines changed

src/sage/graphs/connectivity.pyx

Lines changed: 47 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ Here is what the module can do:
2222
:meth:`connected_components_sizes` | Return the sizes of the connected components as a list.
2323
:meth:`blocks_and_cut_vertices` | Return the blocks and cut vertices of the graph.
2424
:meth:`blocks_and_cuts_tree` | Return the blocks-and-cuts tree of the graph.
25+
:meth:`is_biconnected` | Check whether the graph is biconnected.
2526
:meth:`biconnected_components` | Return the list of biconnected components.
2627
:meth:`biconnected_components_subgraphs` | Return a list of biconnected components as graph objects.
2728
:meth:`number_of_biconnected_components` | Return the number of biconnected components.
@@ -92,7 +93,7 @@ def is_connected(G, forbidden_vertices=None):
9293
9394
.. SEEALSO::
9495
95-
- :meth:`~Graph.is_biconnected`
96+
- :meth:`~sage.graphs.generic_graph.GenericGraph.is_biconnected`
9697
9798
EXAMPLES::
9899
@@ -507,7 +508,7 @@ def blocks_and_cut_vertices(G, algorithm='Tarjan_Boost', sort=False, key=None):
507508
508509
- :meth:`blocks_and_cuts_tree`
509510
- :func:`sage.graphs.base.boost_graph.blocks_and_cut_vertices`
510-
- :meth:`~Graph.is_biconnected`
511+
- :meth:`~sage.graphs.generic_graph.GenericGraph.is_biconnected`
511512
- :meth:`~Graph.bridges`
512513
513514
EXAMPLES:
@@ -718,7 +719,7 @@ def blocks_and_cuts_tree(G):
718719
.. SEEALSO::
719720
720721
- :meth:`~sage.graphs.generic_graph.GenericGraph.blocks_and_cut_vertices`
721-
- :meth:`~Graph.is_biconnected`
722+
- :meth:`~sage.graphs.generic_graph.GenericGraph.is_biconnected`
722723
723724
EXAMPLES::
724725
@@ -780,6 +781,46 @@ def blocks_and_cuts_tree(G):
780781
return g
781782

782783

784+
def is_biconnected(G):
785+
r"""
786+
Check whether the graph is biconnected.
787+
788+
A biconnected graph is a connected graph on two or more vertices that is not
789+
broken into disconnected pieces by deleting any single vertex.
790+
791+
.. SEEALSO::
792+
793+
- :meth:`~sage.graphs.generic_graph.GenericGraph.is_connected`
794+
- :meth:`~sage.graphs.generic_graph.GenericGraph.blocks_and_cut_vertices`
795+
- :meth:`~sage.graphs.generic_graph.GenericGraph.blocks_and_cuts_tree`
796+
- :wikipedia:`Biconnected_graph`
797+
798+
EXAMPLES::
799+
800+
sage: G = graphs.PetersenGraph()
801+
sage: G.is_biconnected()
802+
True
803+
sage: G.add_path([0,'a','b'])
804+
sage: G.is_biconnected()
805+
False
806+
sage: G.add_edge('b', 1)
807+
sage: G.is_biconnected()
808+
True
809+
810+
TESTS::
811+
812+
sage: Graph().is_biconnected()
813+
False
814+
sage: Graph(1).is_biconnected()
815+
False
816+
sage: graphs.CompleteGraph(2).is_biconnected()
817+
True
818+
"""
819+
if G.order() < 2 or not G.is_connected():
820+
return False
821+
return not G.blocks_and_cut_vertices()[1]
822+
823+
783824
def biconnected_components(G):
784825
r"""
785826
Return the list of biconnected components.
@@ -867,7 +908,7 @@ def number_of_biconnected_components(G):
867908
.. SEEALSO::
868909
869910
- :meth:`~sage.graphs.generic_graph.GenericGraph.blocks_and_cut_vertices`
870-
- :meth:`~Graph.is_biconnected`
911+
- :meth:`~sage.graphs.generic_graph.GenericGraph.is_biconnected`
871912
872913
EXAMPLES:
873914
@@ -3466,7 +3507,7 @@ cdef class TriconnectivitySPQR:
34663507
.. SEEALSO::
34673508
34683509
- :meth:`sage.graphs.connectivity.spqr_tree`
3469-
- :meth:`~Graph.is_biconnected`
3510+
- :meth:`~sage.graphs.generic_graph.GenericGraph.is_biconnected`
34703511
- :wikipedia:`SPQR_tree`
34713512
34723513
EXAMPLES:
@@ -4892,7 +4933,7 @@ def is_triconnected(G):
48924933
.. SEEALSO::
48934934
48944935
- :meth:`~sage.graphs.generic_graph.GenericGraph.is_connected`
4895-
- :meth:`~Graph.is_biconnected`
4936+
- :meth:`~sage.graphs.generic_graph.GenericGraph.is_biconnected`
48964937
- :meth:`~sage.graphs.connectivity.spqr_tree`
48974938
- :wikipedia:`SPQR_tree`
48984939

src/sage/graphs/generic_graph.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,14 +236,15 @@
236236
:widths: 30, 70
237237
:delim: |
238238

239-
:meth:`~GenericGraph.is_connected` | Test whether the (di)graph is connected.
239+
:meth:`~GenericGraph.is_connected` | Check whether the (di)graph is connected.
240240
:meth:`~GenericGraph.connected_components` | Return the list of connected components
241241
:meth:`~GenericGraph.connected_components_number` | Return the number of connected components.
242242
:meth:`~GenericGraph.connected_components_subgraphs` | Return a list of connected components as graph objects.
243243
:meth:`~GenericGraph.connected_component_containing_vertex` | Return a list of the vertices connected to vertex.
244244
:meth:`~GenericGraph.connected_components_sizes` | Return the sizes of the connected components as a list.
245245
:meth:`~GenericGraph.blocks_and_cut_vertices` | Compute the blocks and cut vertices of the graph.
246246
:meth:`~GenericGraph.blocks_and_cuts_tree` | Compute the blocks-and-cuts tree of the graph.
247+
:meth:`~GenericGraph.is_biconnected` | Check whether the graph is biconnected.
247248
:meth:`~GenericGraph.biconnected_components` | Return the list of biconnected components.
248249
:meth:`~GenericGraph.biconnected_components_subgraphs` | Return a list of biconnected components as graph objects.
249250
:meth:`~GenericGraph.number_of_biconnected_components` | Return the number of biconnected components.
@@ -26003,6 +26004,7 @@ def is_self_complementary(self):
2600326004
connected_components_sizes,
2600426005
connected_components_subgraphs,
2600526006
edge_connectivity,
26007+
is_biconnected,
2600626008
is_connected,
2600726009
is_cut_edge,
2600826010
is_cut_vertex,

src/sage/graphs/graph.py

Lines changed: 0 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1754,46 +1754,6 @@ def is_cactus(self):
17541754
B = self.blocks_and_cut_vertices()[0]
17551755
return len(self.faces()) == sum(1 for b in B if len(b) > 2) + 1
17561756

1757-
@doc_index("Graph properties")
1758-
def is_biconnected(self):
1759-
"""
1760-
Test if the graph is biconnected.
1761-
1762-
A biconnected graph is a connected graph on two or more vertices that is
1763-
not broken into disconnected pieces by deleting any single vertex.
1764-
1765-
.. SEEALSO::
1766-
1767-
- :meth:`~sage.graphs.generic_graph.GenericGraph.is_connected`
1768-
- :meth:`~sage.graphs.generic_graph.GenericGraph.blocks_and_cut_vertices`
1769-
- :meth:`~sage.graphs.generic_graph.GenericGraph.blocks_and_cuts_tree`
1770-
- :wikipedia:`Biconnected_graph`
1771-
1772-
EXAMPLES::
1773-
1774-
sage: G = graphs.PetersenGraph()
1775-
sage: G.is_biconnected()
1776-
True
1777-
sage: G.add_path([0,'a','b'])
1778-
sage: G.is_biconnected()
1779-
False
1780-
sage: G.add_edge('b', 1)
1781-
sage: G.is_biconnected()
1782-
True
1783-
1784-
TESTS::
1785-
1786-
sage: Graph().is_biconnected()
1787-
False
1788-
sage: Graph(1).is_biconnected()
1789-
False
1790-
sage: graphs.CompleteGraph(2).is_biconnected()
1791-
True
1792-
"""
1793-
if self.order() < 2 or not self.is_connected():
1794-
return False
1795-
return not self.blocks_and_cut_vertices()[1]
1796-
17971757
@doc_index("Graph properties")
17981758
def is_block_graph(self):
17991759
r"""

src/sage/graphs/isgci.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@
144144
145145
* - Biconnected
146146
147-
- :meth:`~sage.graphs.graph.Graph.is_biconnected`,
147+
- :meth:`~sage.graphs.generic_graph.GenericGraph.is_biconnected`,
148148
:meth:`~sage.graphs.generic_graph.GenericGraph.blocks_and_cut_vertices`,
149149
:meth:`~sage.graphs.generic_graph.GenericGraph.blocks_and_cuts_tree`
150150

src/sage/graphs/matching_covered_graph.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2387,8 +2387,8 @@ def is_biconnected(self):
23872387
.. NOTE::
23882388
23892389
This method overwrites the
2390-
:meth:`~sage.graphs.graph.Graph.is_biconnected` method
2391-
in order to return ``True`` as matching covered graphs are
2390+
:meth:`~sage.graphs.generic_graph.GenericGraph.is_biconnected`
2391+
method in order to return ``True`` as matching covered graphs are
23922392
biconnected.
23932393
23942394
EXAMPLES:

0 commit comments

Comments
 (0)