Source code for hiperwalk.graph.cycle
from .integer_lattice import IntegerLattice
[docs]
def Cycle(num_vert, multiedges=None, weights=None):
r"""
Cycle graph.
Parameters
----------
num_vert : int
Number of vertices in the cycle.
multiedges, weights: scipy.sparse.csr_array, default=None
See :ref:`graph_constructors`.
Returns
-------
:class:`hiperwalk.Graph`
See :ref:`graph_constructors` for details.
See Also
--------
:ref:`graph_constructors`.
Notes
-----
The cycle can be interpreted as being embedded on the line
with a cyclic boundary condition.
In this context,
the **order of neighbors** is
the neighbor to the right first,
followed by the neighbor to the left.
In other words, for any vertex :math:`v`,
the neighbors are given in the order :math:`[v + 1, v - 1]`.
.. testsetup::
import hiperwalk as hpw
.. doctest::
>>> g = hpw.Cycle(10)
>>> g.neighbors(0)
array([1, 9])
>>> g.neighbors(1)
array([2, 0])
>>> g.neighbors(8)
array([9, 7])
>>> g.neighbors(9)
array([0, 8])
"""
basis = [1, -1]
g = IntegerLattice(num_vert, basis, True, weights, multiedges)
return g