diff mayachemtools/docs/modules/man3/Graph.3 @ 0:73ae111cf86f draft

Uploaded
author deepakjadmin
date Wed, 20 Jan 2016 11:55:01 -0500
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mayachemtools/docs/modules/man3/Graph.3	Wed Jan 20 11:55:01 2016 -0500
@@ -0,0 +1,1638 @@
+.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.22)
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" Set up some character translations and predefined strings.  \*(-- will
+.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
+.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
+.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.ie n \{\
+.    ds -- \(*W-
+.    ds PI pi
+.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
+.    ds L" ""
+.    ds R" ""
+.    ds C` ""
+.    ds C' ""
+'br\}
+.el\{\
+.    ds -- \|\(em\|
+.    ds PI \(*p
+.    ds L" ``
+.    ds R" ''
+'br\}
+.\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\"
+.\" If the F register is turned on, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
+.\" entries marked with X<> in POD.  Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.ie \nF \{\
+.    de IX
+.    tm Index:\\$1\t\\n%\t"\\$2"
+..
+.    nr % 0
+.    rr F
+.\}
+.el \{\
+.    de IX
+..
+.\}
+.\"
+.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
+.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
+.    \" fudge factors for nroff and troff
+.if n \{\
+.    ds #H 0
+.    ds #V .8m
+.    ds #F .3m
+.    ds #[ \f1
+.    ds #] \fP
+.\}
+.if t \{\
+.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+.    ds #V .6m
+.    ds #F 0
+.    ds #[ \&
+.    ds #] \&
+.\}
+.    \" simple accents for nroff and troff
+.if n \{\
+.    ds ' \&
+.    ds ` \&
+.    ds ^ \&
+.    ds , \&
+.    ds ~ ~
+.    ds /
+.\}
+.if t \{\
+.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.\}
+.    \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+.    \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+.    \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+.    ds : e
+.    ds 8 ss
+.    ds o a
+.    ds d- d\h'-1'\(ga
+.    ds D- D\h'-1'\(hy
+.    ds th \o'bp'
+.    ds Th \o'LP'
+.    ds ae ae
+.    ds Ae AE
+.\}
+.rm #[ #] #H #V #F C
+.\" ========================================================================
+.\"
+.IX Title "GRAPH 1"
+.TH GRAPH 1 "2015-03-29" "perl v5.14.2" "MayaChemTools"
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
+.SH "NAME"
+Graph
+.SH "SYNOPSIS"
+.IX Header "SYNOPSIS"
+use Graph;
+.PP
+use Graph qw(:all);
+.SH "DESCRIPTION"
+.IX Header "DESCRIPTION"
+\&\fBGraph\fR class provides the following methods:
+.PP
+new, AddCycle, AddEdge, AddEdges, AddPath, AddVertex, AddVertices, ClearCycles,
+Copy, CopyEdgesProperties, CopyVerticesAndEdges, CopyVerticesProperties,
+DeleteCycle, DeleteEdge, DeleteEdgeProperties, DeleteEdgeProperty, DeleteEdges,
+DeleteEdgesProperties, DeleteEdgesProperty, DeleteGraphProperties,
+DeleteGraphProperty, DeletePath, DeleteVertex, DeleteVertexProperties,
+DeleteVertexProperty, DeleteVertices, DeleteVerticesProperty, DetectCycles,
+GetAdjacencyMatrix, GetAdmittanceMatrix, GetAllPaths, GetAllPathsStartingAt,
+GetAllPathsStartingAtWithLength, GetAllPathsStartingAtWithLengthUpto,
+GetAllPathsWithLength, GetAllPathsWithLengthUpto, GetCircumference,
+GetConnectedComponentsVertices, GetCycles, GetCyclesWithEvenSize,
+GetCyclesWithOddSize, GetCyclesWithSize, GetCyclesWithSizeGreaterThan,
+GetCyclesWithSizeLessThan, GetDegree, GetDegreeMatrix, GetDistanceMatrix,
+GetEdgeCycles, GetEdgeCyclesWithEvenSize, GetEdgeCyclesWithOddSize,
+GetEdgeCyclesWithSize, GetEdgeCyclesWithSizeGreaterThan,
+GetEdgeCyclesWithSizeLessThan, GetEdgeProperties, GetEdgeProperty, GetEdges,
+GetEdgesProperty, GetFusedAndNonFusedCycles, GetGirth, GetGraphProperties,
+GetGraphProperty, GetIncidenceMatrix, GetIsolatedVertices, GetKirchhoffMatrix,
+GetLaplacianMatrix, GetLargestCycle, GetLargestEdgeCycle, GetLargestVertexCycle,
+GetLeafVertices, GetMaximumDegree, GetMininumDegree, GetNeighborhoodVertices,
+GetNeighborhoodVerticesWithRadiusUpto, GetNeighborhoodVerticesWithSuccessors,
+GetNeighborhoodVerticesWithSuccessorsAndRadiusUpto, GetNeighbors,
+GetNormalizedLaplacianMatrix, GetNumOfCycles, GetNumOfCyclesWithEvenSize,
+GetNumOfCyclesWithOddSize, GetNumOfCyclesWithSize,
+GetNumOfCyclesWithSizeGreaterThan, GetNumOfCyclesWithSizeLessThan,
+GetNumOfEdgeCycles, GetNumOfEdgeCyclesWithEvenSize, GetNumOfEdgeCyclesWithOddSize,
+GetNumOfEdgeCyclesWithSize, GetNumOfEdgeCyclesWithSizeGreaterThan,
+GetNumOfEdgeCyclesWithSizeLessThan, GetNumOfVertexCycles,
+GetNumOfVertexCyclesWithEvenSize, GetNumOfVertexCyclesWithOddSize,
+GetNumOfVertexCyclesWithSize, GetNumOfVertexCyclesWithSizeGreaterThan,
+GetNumOfVertexCyclesWithSizeLessThan, GetPaths, GetPathsBetween,
+GetPathsStartingAt, GetPathsStartingAtWithLength,
+GetPathsStartingAtWithLengthUpto, GetPathsWithLength, GetPathsWithLengthUpto,
+GetSiedelAdjacencyMatrix, GetSizeOfLargestCycle, GetSizeOfLargestEdgeCycle,
+GetSizeOfLargestVertexCycle, GetSizeOfSmallestCycle, GetSizeOfSmallestEdgeCycle,
+GetSizeOfSmallestVertexCycle, GetSmallestCycle, GetSmallestEdgeCycle,
+GetSmallestVertexCycle, GetTopologicallySortedVertices, GetVertex,
+GetVertexCycles, GetVertexCyclesWithEvenSize, GetVertexCyclesWithOddSize,
+GetVertexCyclesWithSize, GetVertexCyclesWithSizeGreaterThan,
+GetVertexCyclesWithSizeLessThan, GetVertexProperties, GetVertexProperty,
+GetVertexWithLargestDegree, GetVertexWithSmallestDegree, GetVertices,
+GetVerticesProperty, GetVerticesWithDegreeLessThan, HasCycle, HasEdge,
+HasEdgeProperty, HasEdges, HasFusedCycles, HasGraphProperty, HasPath, HasVertex,
+HasVertexProperty, HasVertices, IsAcyclic, IsAcyclicEdge, IsAcyclicVertex,
+IsCyclic, IsCyclicEdge, IsCyclicVertex, IsGraph, IsIsolatedVertex, IsLeafVertex,
+IsUnicyclic, IsUnicyclicEdge, IsUnicyclicVertex, SetActiveCyclicPaths,
+SetEdgeProperties, SetEdgeProperty, SetEdgesProperty, SetGraphProperties,
+SetGraphProperty, SetVertexProperties, SetVertexProperty, SetVerticesProperty,
+StringifyEdgesProperties, StringifyGraph, StringifyGraphProperties,
+StringifyProperties, StringifyVerticesAndEdges, StringifyVerticesProperties,
+UpdateEdgeProperty, UpdateVertexProperty
+.SS "\s-1METHODS\s0"
+.IX Subsection "METHODS"
+.IP "\fBnew\fR" 4
+.IX Item "new"
+.Vb 1
+\&    $NewGraph = new Graph([@VertexIDs]);
+.Ve
+.Sp
+Using specified \fIGraph\fR \fIVertexIDs\fR, \fBnew\fR method creates a new \fBGraph\fR object and returns
+newly created \fBGraph\fR object.
+.Sp
+Examples:
+.Sp
+.Vb 2
+\&    $Graph = new Graph();
+\&    $Graph = new Graph(@VertexIDs);
+.Ve
+.IP "\fBAddCycle\fR" 4
+.IX Item "AddCycle"
+.Vb 1
+\&    $Graph\->AddCycle(@VertexIDs);
+.Ve
+.Sp
+Adds edges between successive pair of \fIVertexIDs\fR including an additional edge from the last
+to first vertex \s-1ID\s0 to complete the cycle to \fIGraph\fR and returns \fIGraph\fR.
+.IP "\fBAddEdge\fR" 4
+.IX Item "AddEdge"
+.Vb 1
+\&    $Graph\->AddEdge($VertexID1, $VertexID2);
+.Ve
+.Sp
+Adds an edge between \fIVertexID1\fR and \fIVertexID2\fR in a \fIGraph\fR and returns \fIGraph\fR.
+.IP "\fBAddEdges\fR" 4
+.IX Item "AddEdges"
+.Vb 1
+\&    $Graph\->AddEdges(@VertexIDs);
+.Ve
+.Sp
+Adds edges between successive pair of \fIVertexIDs\fR in a \fIGraph\fR and returns \fIGraph\fR.
+.IP "\fBAddPath\fR" 4
+.IX Item "AddPath"
+.Vb 1
+\&    $Graph\->AddPath(@VertexIDs);
+.Ve
+.Sp
+Adds edges between successive pair of \fIVertexIDs\fR in a \fIGraph\fR and returns \fIGraph\fR.
+.IP "\fBAddVertex\fR" 4
+.IX Item "AddVertex"
+.Vb 1
+\&    $Graph\->AddVertex($VertexID);
+.Ve
+.Sp
+Adds \fIVertexID\fR to \fIGraph\fR and returns \fIGraph\fR.
+.IP "\fBAddVertices\fR" 4
+.IX Item "AddVertices"
+.Vb 1
+\&    $Graph\->AddVertices(@VertexIDs);
+.Ve
+.Sp
+Adds vertices using \fIVertexIDs\fR to \fIGraph\fR and returns \fIGraph\fR.
+.IP "\fBClearCycles\fR" 4
+.IX Item "ClearCycles"
+.Vb 1
+\&    $Graph\->ClearCycles();
+.Ve
+.Sp
+Delete all cycle properties assigned to graph, vertices, and edges by \fIDetectCycles\fR method.
+.IP "\fBCopy\fR" 4
+.IX Item "Copy"
+.Vb 1
+\&    $NewGraph = $Graph\->Copy();
+.Ve
+.Sp
+Copies \fIGraph\fR and its associated data using \fBStorable::dclone\fR and returns a new
+\&\fBGraph\fR object.
+.IP "\fBCopyEdgesProperties\fR" 4
+.IX Item "CopyEdgesProperties"
+.Vb 1
+\&    $OtherGraph = $Graph\->CopyEdgesProperties($OtherGraph);
+.Ve
+.Sp
+Copies all properties associated with edges from \fIGraph\fR to \fI\f(CI$OtherGraph\fI\fR and
+returns \fIOtherGraph\fR.
+.IP "\fBCopyVerticesAndEdges\fR" 4
+.IX Item "CopyVerticesAndEdges"
+.Vb 1
+\&    $OtherGraph = $Graph\->CopyVerticesAndEdges($OtherGraph);
+.Ve
+.Sp
+Copies all vertices and edges from \fIGraph\fR to \fI\f(CI$OtherGraph\fI\fR and returns \fIOtherGraph\fR.
+.IP "\fBCopyVerticesProperties\fR" 4
+.IX Item "CopyVerticesProperties"
+.Vb 1
+\&    $OtherGraph = $Graph\->CopyVerticesProperties($OtherGraph);
+.Ve
+.Sp
+Copies all properties associated with vertices from \fIGraph\fR to \fI\f(CI$OtherGraph\fI\fR and
+returns \fIOtherGraph\fR.
+.IP "\fBDeleteCycle\fR" 4
+.IX Item "DeleteCycle"
+.Vb 1
+\&    $Graph\->DeleteCycle(@VertexIDs);
+.Ve
+.Sp
+Deletes edges between successive pair of \fIVertexIDs\fR including an additional edge from the last
+to first vertex \s-1ID\s0 to complete the cycle to \fIGraph\fR and returns \fIGraph\fR.
+.IP "\fBDeleteEdge\fR" 4
+.IX Item "DeleteEdge"
+.Vb 1
+\&    $Graph\->DeleteEdge($VertexID1, $VertexID2);
+.Ve
+.Sp
+Deletes an edge between \fIVertexID1\fR and \fIVertexID2\fR in a \fIGraph\fR and returns \fIGraph\fR.
+.IP "\fBDeleteEdgeProperties\fR" 4
+.IX Item "DeleteEdgeProperties"
+.Vb 1
+\&    $Graph\->DeleteEdgeProperties($VertexID1, $VertexID2);
+.Ve
+.Sp
+Deletes all properties associated with edge between \fIVertexID1\fR and \fIVertexID2\fR in a \fIGraph\fR
+and returns \fIGraph\fR.
+.IP "\fBDeleteEdgeProperty\fR" 4
+.IX Item "DeleteEdgeProperty"
+.Vb 1
+\&    $Graph\->DeleteEdgeProperty($PropertyName, $VertexID1, $VertexID2);
+.Ve
+.Sp
+Deletes \fIPropertyName\fR associated with edge between \fIVertexID1\fR and \fIVertexID2\fR in a \fIGraph\fR
+and returns \fIGraph\fR.
+.IP "\fBDeleteEdges\fR" 4
+.IX Item "DeleteEdges"
+.Vb 1
+\&    $Graph\->DeleteEdges(@VertexIDs);
+.Ve
+.Sp
+Deletes edges between successive pair of \fIVertexIDs\fR and returns \fIGraph\fR.
+.IP "\fBDeleteEdgesProperties\fR" 4
+.IX Item "DeleteEdgesProperties"
+.Vb 1
+\&    $Graph\->DeleteEdgesProperties(@VertexIDs);
+.Ve
+.Sp
+Deletes all properties associated with edges between successive pair of \fIVertexIDs\fR and
+returns \fIGraph\fR.
+.IP "\fBDeleteEdgesProperty\fR" 4
+.IX Item "DeleteEdgesProperty"
+.Vb 1
+\&    $Graph\->DeleteEdgesProperty($PropertyName, @VertexIDs);
+.Ve
+.Sp
+Deletes \fIPropertyName\fR associated with edges between successive pair of \fIVertexIDs\fR
+and returns \fIGraph\fR.
+.IP "\fBDeleteGraphProperties\fR" 4
+.IX Item "DeleteGraphProperties"
+.Vb 1
+\&    $Graph\->DeleteGraphProperties();
+.Ve
+.Sp
+Deletes all properties associated as graph not including properties associated to vertices
+or edges and returns \fIGraph\fR.
+.IP "\fBDeleteGraphProperty\fR" 4
+.IX Item "DeleteGraphProperty"
+.Vb 1
+\&    $Graph\->DeleteGraphProperty($PropertyName);
+.Ve
+.Sp
+Deletes a \fIPropertyName\fR associated as graph property and returns \fIGraph\fR.
+.IP "\fBDeletePath\fR" 4
+.IX Item "DeletePath"
+.Vb 1
+\&    $Graph\->DeletePath(@VertexIDs);
+.Ve
+.Sp
+Deletes edges between successive pair of \fIVertexIDs\fR in a \fIGraph\fR and returns \fIGraph\fR.
+.IP "\fBDeleteVertex\fR" 4
+.IX Item "DeleteVertex"
+.Vb 1
+\&    $Graph\->DeleteVertex($VertexID);
+.Ve
+.Sp
+Deletes \fIVertexID\fR to \fIGraph\fR and returns \fIGraph\fR.
+.IP "\fBDeleteVertexProperties\fR" 4
+.IX Item "DeleteVertexProperties"
+.Vb 1
+\&    $Graph\->DeleteVertexProperties($VertexID);
+.Ve
+.Sp
+Deletes all properties associated with \fIVertexID\fR and returns \fIGraph\fR.
+.IP "\fBDeleteVertexProperty\fR" 4
+.IX Item "DeleteVertexProperty"
+.Vb 1
+\&    $Graph\->DeleteVertexProperty($PropertyName, $VertexID);
+.Ve
+.Sp
+Deletes a \fIPropertyName\fR associated with \fIVertexID\fR and returns \fIGraph\fR.
+.IP "\fBDeleteVertices\fR" 4
+.IX Item "DeleteVertices"
+.Vb 1
+\&    $Graph\->DeleteVertices(@VertexIDs);
+.Ve
+.Sp
+Deletes vertices specified in \fIVertexIDs\fR and returns \fIGraph\fR.
+.IP "\fBDeleteVerticesProperty\fR" 4
+.IX Item "DeleteVerticesProperty"
+.Vb 1
+\&    $Graph\->DeleteVerticesProperty($PropertyName, @VertexIDs);
+.Ve
+.Sp
+Deletes a \fIPropertyName\fR associated with \fIVertexIDs\fR and returns \fIGraph\fR.
+.IP "\fBDetectCycles\fR" 4
+.IX Item "DetectCycles"
+.Vb 1
+\&    $Graph\->DetectCycles();
+.Ve
+.Sp
+Detect cycles using \fBCyclesDetection\fR class and associate found cycles to \fIGraph\fR
+object as graph properties: \fIActiveCyclicPaths, AllCyclicPaths, IndependentCyclicPaths\fR.
+.Sp
+Notes:
+.Sp
+.Vb 6
+\&    . CyclesDetection class detects all cycles in the graph and filters
+\&      them to find independent cycles.
+\&    . All cycles related methods in the graph operate on
+\&      ActiveCyclicPaths. By default, active cyclic paths correspond
+\&      to IndependentCyclicPaths. This behavior can be changed
+\&      using SetActiveCyclicPaths method.
+.Ve
+.IP "\fBGetAdjacencyMatrix\fR" 4
+.IX Item "GetAdjacencyMatrix"
+.Vb 1
+\&    $GraphMatrix = $Graph\->GetAdjacencyMatrix();
+.Ve
+.Sp
+Returns adjacency matrix for \fIGraph\fR as a \fIGraphMatrix\fR object with row and column indices
+corresponding to graph vertices returned by GetVertices method.
+.Sp
+For a simple graph G with n vertices, the adjacency matrix for G is a n x n square matrix and
+its elements Mij are:
+.Sp
+.Vb 3
+\&    . 0    if i == j
+\&    . 1    if i != j and vertex Vi is adjacent to vertex Vj
+\&    . 0    if i != j and vertex Vi is not adjacent to vertex Vj
+.Ve
+.IP "\fBGetAdmittanceMatrix\fR" 4
+.IX Item "GetAdmittanceMatrix"
+.Vb 1
+\&    $GraphMatrix = $Graph\->GetAdmittanceMatrix();
+.Ve
+.Sp
+Returns admittance matrix for \fIGraph\fR as a \fIGraphMatrix\fR object with row and column indices
+corresponding to graph vertices returned by GetVertices method.
+.Sp
+For a simple graph G with n vertices, the adjacency matrix for G is a n x n square matrix and
+its elements Mij are:
+.Sp
+.Vb 3
+\&    . 0    if i == j
+\&    . 1    if i != j and vertex Vi is adjacent to vertex Vj
+\&    . 0    if i != j and vertex Vi is not adjacent to vertex Vj
+.Ve
+.IP "\fBGetAllPaths\fR" 4
+.IX Item "GetAllPaths"
+.Vb 1
+\&    $PathsRef = $Graph\->GetAllPaths([$AllowCycles]);
+.Ve
+.Sp
+Returns a reference to an array containing \fBPath\fR objects corresponding to all possible
+lengths starting from each vertex in graph with sharing of edges in paths traversed.
+By default, cycles are included in paths. A path containing a cycle is terminated at a vertex
+completing the cycle. Duplicate paths are not removed.
+.IP "\fBGetAllPathsStartingAt\fR" 4
+.IX Item "GetAllPathsStartingAt"
+.Vb 2
+\&    @Paths = $Graph\->GetAllPathsStartingAt($StartVertexID,
+\&             [$AllowCycles]);
+.Ve
+.Sp
+Returns an array of \fIPath\fR objects starting from a \fIStartVertexID\fR of any length
+with sharing of edges in paths traversed. By default, cycles are included in paths.
+A path containing a cycle is terminated at a vertex completing the cycle.
+.IP "\fBGetAllPathsStartingAtWithLength\fR" 4
+.IX Item "GetAllPathsStartingAtWithLength"
+.Vb 2
+\&    @Paths = $Graph\->GetAllPathsStartingAtWithLength($StartVertexID,
+\&             $Length, [$AllowCycles]);
+.Ve
+.Sp
+Returns an array of \fIPath\fR objects starting from a \fIStartVertexID\fR of specified \fILength\fR
+with sharing of edges in paths traversed. By default, cycles are included in paths.
+A path containing a cycle is terminated at a vertex completing the cycle.
+.IP "\fBGetAllPathsStartingAtWithLengthUpto\fR" 4
+.IX Item "GetAllPathsStartingAtWithLengthUpto"
+.Vb 2
+\&    @Paths = $Graph\->GetAllPathsStartingAtWithLengthUpto($StartVertexID,
+\&             $Length, [$AllowCycles]);
+.Ve
+.Sp
+Returns an array of \fIPath\fR objects starting from a \fIStartVertexID\fR with length upto a
+\&\fILength\fR with sharing of edges in paths traversed. By default, cycles are included in paths.
+A path containing a cycle is terminated at a vertex completing the cycle.
+.IP "\fBGetAllPathsWithLength\fR" 4
+.IX Item "GetAllPathsWithLength"
+.Vb 2
+\&    $PathsRef = $Graph\->GetAllPathsWithLength($Length,
+\&                [$AllowCycles]);
+.Ve
+.Sp
+Returns a reference to an array containing \fBPath\fR objects corresponding to paths with
+\&\fILength\fR starting from each vertex in graph with sharing of edges in paths traversed.
+By default, cycles are included in paths. A path containing a cycle is terminated at a vertex
+completing the cycle. Duplicate paths are not removed.
+.IP "\fBGetAllPathsWithLengthUpto\fR" 4
+.IX Item "GetAllPathsWithLengthUpto"
+.Vb 2
+\&    $PathsRef = $Graph\->GetAllPathsWithLengthUpto($Length,
+\&                [$AllowCycles]);
+.Ve
+.Sp
+Returns a reference to an array containing \fBPath\fR objects corresponding to paths up to
+specified \fILength\fR starting from each vertex in graph with sharing of edges in paths traversed.
+By default, cycles are included in paths. A path containing a cycle is terminated at a vertex
+completing the cycle. Duplicate paths are not removed.
+.IP "\fBGetCircumference\fR" 4
+.IX Item "GetCircumference"
+.Vb 1
+\&    $Circumference = $Graph\->GetCircumference();
+.Ve
+.Sp
+Returns size of largest cycle in a \fIGraph\fR
+.IP "\fBGetConnectedComponentsVertices\fR" 4
+.IX Item "GetConnectedComponentsVertices"
+.Vb 1
+\&    @ConnectedComponents = $Graph\->GetConnectedComponentsVertices();
+.Ve
+.Sp
+Returns an array \fIConnectedComponents\fR containing referecens to arrays with vertex
+IDs for each component sorted in order of their decreasing size.
+.IP "\fBGetCycles\fR" 4
+.IX Item "GetCycles"
+.Vb 1
+\&    @CyclicPaths = $Graphs\->GetCycles();
+.Ve
+.Sp
+Returns an array \fICyclicPaths\fR containing \fIPath\fR objects corresponding to cycles
+in a \fIGraph\fR.
+.IP "\fBGetCyclesWithEvenSize\fR" 4
+.IX Item "GetCyclesWithEvenSize"
+.Vb 1
+\&    @CyclicPaths = $Graph\->GetCyclesWithEvenSize();
+.Ve
+.Sp
+Returns an array \fICyclicPaths\fR containing \fIPath\fR objects corresponding to cycles with
+even size in a \fIGraph\fR.
+.IP "\fBGetCyclesWithOddSize\fR" 4
+.IX Item "GetCyclesWithOddSize"
+.Vb 1
+\&    @CyclicPaths = $Graph\->GetCyclesWithOddSize();
+.Ve
+.Sp
+Returns an array \fICyclicPaths\fR containing \fIPath\fR objects corresponding to cycles with
+odd size in a \fIGraph\fR.
+.IP "\fBGetCyclesWithSize\fR" 4
+.IX Item "GetCyclesWithSize"
+.Vb 1
+\&    @CyclicPaths = $Graph\->GetCyclesWithSize($CycleSize);
+.Ve
+.Sp
+Returns an array \fICyclicPaths\fR containing \fIPath\fR objects corresponding to cycles with
+\&\fICycleSize\fR in a \fIGraph\fR.
+.IP "\fBGetCyclesWithSizeGreaterThan\fR" 4
+.IX Item "GetCyclesWithSizeGreaterThan"
+.Vb 1
+\&    @CyclicPaths = $Graph\->GetCyclesWithSizeGreaterThan($CycleSize);
+.Ve
+.Sp
+Returns an array \fICyclicPaths\fR containing \fIPath\fR objects corresponding to cycles with
+size greater than \fICycleSize\fR in a \fIGraph\fR.
+.IP "\fBGetCyclesWithSizeLessThan\fR" 4
+.IX Item "GetCyclesWithSizeLessThan"
+.Vb 1
+\&    @CyclicPaths = $Graph\->GetCyclesWithSizeGreaterThan($CycleSize);
+.Ve
+.Sp
+Returns an array \fICyclicPaths\fR containing \fIPath\fR objects corresponding to cycles with
+size less than \fICycleSize\fR in a \fIGraph\fR.
+.IP "\fBGetDegree\fR" 4
+.IX Item "GetDegree"
+.Vb 1
+\&    $Degree = $Graph\->GetDegree($VertexID);
+.Ve
+.Sp
+Returns \fBDegree\fR for \fIVertexID\fR in a \fIGraph\fR corresponding to sum of in and out vertex
+degree values.
+.IP "\fBGetDegreeMatrix\fR" 4
+.IX Item "GetDegreeMatrix"
+.Vb 1
+\&    $GraphMatrix = $Graph\->GetDegreeMatrix();
+.Ve
+.Sp
+Returns degree matrix for \fIGraph\fR as a \fIGraphMatrix\fR object with row and column indices
+corresponding to graph vertices returned by GetVertices method.
+.Sp
+For a simple graph G with n vertices, the degree matrix for G is a n x n square matrix and
+its elements Mij are:
+.Sp
+.Vb 2
+\&    . deg(Vi)   if i == j and deg(Vi) is the degree of vertex Vi
+\&    . 0         otherwise
+.Ve
+.IP "\fBGetDistanceMatrix\fR" 4
+.IX Item "GetDistanceMatrix"
+.Vb 1
+\&    $GraphMatrix = $Graph\->GetDistanceMatrix();
+.Ve
+.Sp
+Returns distance matrix for \fIGraph\fR as a \fIGraphMatrix\fR object with row and column indices
+corresponding to graph vertices returned by GetVertices method.
+.Sp
+For a simple graph G with n vertices, the distance matrix for G is a n x n square matrix and
+its elements Mij are:
+.Sp
+.Vb 2
+\&    . 0    if i == j
+\&    . d    if i != j and d is the shortest distance between vertex Vi and vertex Vj
+.Ve
+.Sp
+In the final matrix, value of constant \fBBigNumber\fR defined in \fBConstants.pm\fR module
+corresponds to vertices with no edges.
+.IP "\fBGetEdgeCycles\fR" 4
+.IX Item "GetEdgeCycles"
+.Vb 1
+\&    @CyclicPaths = $Graph\->GetEdgeCycles($VertexID1, $VertexID2);
+.Ve
+.Sp
+Returns an array \fICyclicPaths\fR containing \fIPath\fR objects corresponding to all cycles containing
+edge between \fIVertexID1\fR and \fIVertexID2\fR in a \fIGraph\fR.
+.IP "\fBGetEdgeCyclesWithEvenSize\fR" 4
+.IX Item "GetEdgeCyclesWithEvenSize"
+.Vb 2
+\&    @CyclicPaths = $Graph\->GetEdgeCyclesWithEvenSize($VertexID1,
+\&                   $VertexID2);
+.Ve
+.Sp
+Returns an array \fICyclicPaths\fR containing \fIPath\fR objects corresponding to cycles with
+even size containing edge between \fIVertexID1\fR and \fIVertexID2\fR in a \fIGraph\fR.
+.IP "\fBGetEdgeCyclesWithOddSize\fR" 4
+.IX Item "GetEdgeCyclesWithOddSize"
+.Vb 2
+\&    @CyclicPaths = $Graph\->GetEdgeCyclesWithOddSize($VertexID1,
+\&                   $VertexID2);
+.Ve
+.Sp
+Returns an array \fICyclicPaths\fR containing \fIPath\fR objects corresponding to cycles with
+odd size containing edge between \fIVertexID1\fR and \fIVertexID2\fR in a \fIGraph\fR.
+.IP "\fBGetEdgeCyclesWithSize\fR" 4
+.IX Item "GetEdgeCyclesWithSize"
+.Vb 2
+\&    @CyclicPaths = $Graph\->GetEdgeCyclesWithSize($VertexID1, $VertexID2,
+\&                   $CycleSize);
+.Ve
+.Sp
+Returns an array \fICyclicPaths\fR containing \fIPath\fR objects corresponding to cycles with
+size \fICycleSize\fR containing edge between \fIVertexID1\fR and \fIVertexID2\fR in a \fIGraph\fR.
+.IP "\fBGetEdgeCyclesWithSizeGreaterThan\fR" 4
+.IX Item "GetEdgeCyclesWithSizeGreaterThan"
+.Vb 2
+\&    @CyclicPaths = $Graph\->GetEdgeCyclesWithSizeGreaterThan($VertexID1,
+\&                   $VertexID2, $CycleSize);
+.Ve
+.Sp
+Returns an array \fICyclicPaths\fR containing \fIPath\fR objects corresponding to cycles with
+size greater than \fICycleSize\fR containing edge between \fIVertexID1\fR and \fIVertexID2\fR
+in a \fIGraph\fR.
+.IP "\fBGetEdgeCyclesWithSizeLessThan\fR" 4
+.IX Item "GetEdgeCyclesWithSizeLessThan"
+.Vb 2
+\&    @CyclicPaths = $Graph\->GetEdgeCyclesWithSizeLessThan($VertexID1,
+\&                   $VertexID2, $CycleSize);
+.Ve
+.Sp
+Returns an array \fICyclicPaths\fR containing \fIPath\fR objects corresponding to cycles with
+size less than \fICycleSize\fR containing edge between \fIVertexID1\fR and \fIVertexID2\fR.
+.IP "\fBGetEdgeProperties\fR" 4
+.IX Item "GetEdgeProperties"
+.Vb 1
+\&    %EdgeProperties = $Graph\->GetEdgeProperties($VertexID1, $VertexID2);
+.Ve
+.Sp
+Returns a hash \fBEdgeProperties\fR containing all \fBPropertyName\fR and \fBPropertyValue\fR
+pairs associated with an edge between \fIVertexID1\fR and \fIVertexID2\fR in a \fIGraph\fR.
+.IP "\fBGetEdgeProperty\fR" 4
+.IX Item "GetEdgeProperty"
+.Vb 1
+\&    $Value = $Graph\->GetEdgeProperty($PropertyName, $VertexID1, $VertexID2);
+.Ve
+.Sp
+Returns value of \fIPropertyName\fR associated with an edge between \fIVertexID1\fR
+and \fIVertexID2\fR in a \fIGraph\fR.
+.IP "\fBGetEdges\fR" 4
+.IX Item "GetEdges"
+.Vb 2
+\&    @EdgeVertexIDs = $Graph\->GetEdges($VertexID);
+\&    $NumOfEdges = $Graph\->GetEdges($VertexID);
+.Ve
+.Sp
+Returns an array \fIEdgeVertexIDs\fR with successive pair of IDs corresponding to edges involving
+\&\fIVertexID\fR or number of edges for \fIVertexID\fR in a \fIGraph\fR.
+.IP "\fBGetEdgesProperty\fR" 4
+.IX Item "GetEdgesProperty"
+.Vb 1
+\&    @PropertyValues = $Graph\->GetEdgesProperty($PropertyName, @VertexIDs);
+.Ve
+.Sp
+Returns an array \fIPropertyValues\fR containing property values corresponding to
+\&\fIPropertyName\fR associated with edges between successive pair of \fIVertexIDs\fR.
+.IP "\fBGetFusedAndNonFusedCycles\fR" 4
+.IX Item "GetFusedAndNonFusedCycles"
+.Vb 2
+\&    ($FusedCycleSetsRef, $NonFusedCyclesRef) =
+\&       $Graph\->GetFusedAndNonFusedCycles();
+.Ve
+.Sp
+Returns references to arrays \fIFusedCycleSetsRef\fR and \fINonFusedCyclesRef\fR
+containing references to arrays of cyclic \fIPath\fR objects corresponding to fuses and
+non-fused cyclic paths.
+.IP "\fBGetGirth\fR" 4
+.IX Item "GetGirth"
+.Vb 1
+\&    $Girth = $Graph\->GetGirth();
+.Ve
+.Sp
+Returns size of smallest cycle in a \fIGraph\fR.
+.IP "\fBGetGraphProperties\fR" 4
+.IX Item "GetGraphProperties"
+.Vb 1
+\&    %GraphProperties = $Graph\->GetGraphProperties();
+.Ve
+.Sp
+Returns a hash \fBEdgeProperties\fR containing all \fBPropertyName\fR and \fBPropertyValue\fR
+pairs associated with graph in a \fIGraph\fR.
+.IP "\fBGetGraphProperty\fR" 4
+.IX Item "GetGraphProperty"
+.Vb 1
+\&    $PropertyValue = $Graph\->GetGraphProperty($PropertyName);
+.Ve
+.Sp
+Returns value of \fIPropertyName\fR associated with graph in a \fIGraph\fR.
+.IP "\fBGetIncidenceMatrix\fR" 4
+.IX Item "GetIncidenceMatrix"
+.Vb 1
+\&    $GraphMatrix = $Graph\->GetIncidenceMatrix();
+.Ve
+.Sp
+Returns incidence matrix for \fIGraph\fR as a \fIGraphMatrix\fR object with row and column indices
+corresponding to graph vertices returned by GetVertices method.
+.Sp
+For a simple graph G with n vertices and e edges, the incidence matrix for G is a n x e matrix
+its elements Mij are:
+.Sp
+.Vb 2
+\&    . 1    if vertex Vi and the edge Ej are incident; in other words, Vi and Ej are related
+\&    . 0    otherwise
+.Ve
+.IP "\fBGetIsolatedVertices\fR" 4
+.IX Item "GetIsolatedVertices"
+.Vb 1
+\&    @VertexIDs = $Graph\->GetIsolatedVertices();
+.Ve
+.Sp
+Returns an array \fIVertexIDs\fR containing vertices without any edges in \fIGraph\fR.
+.IP "\fBGetKirchhoffMatrix\fR" 4
+.IX Item "GetKirchhoffMatrix"
+.Vb 1
+\&    $GraphMatrix = $Graph\->GetGetKirchhoffMatrix();
+.Ve
+.Sp
+Returns Kirchhoff matrix for \fIGraph\fR as a \fIGraphMatrix\fR object with row and column indices
+corresponding to graph vertices returned by GetVertices method.
+.Sp
+\&\fBKirchhoffMatrix\fR is another name for \fBLaplacianMatrix\fR.
+.IP "\fBGetLaplacianMatrix\fR" 4
+.IX Item "GetLaplacianMatrix"
+.Vb 1
+\&    $GraphMatrix = $Graph\->GetLaplacianMatrix();
+.Ve
+.Sp
+Returns Laplacian matrix for \fIGraph\fR as a \fIGraphMatrix\fR object with row and column indices
+corresponding to graph vertices returned by GetVertices method.
+.Sp
+For a simple graph G with n vertices, the Laplacian matrix for G is a n x n square matrix and
+its elements Mij are:
+.Sp
+.Vb 3
+\&    . deg(Vi)   if i == j and deg(Vi) is the degree of vertex Vi
+\&    . \-1        if i != j and vertex Vi is adjacent to vertex Vj
+\&    . 0         otherwise
+.Ve
+.IP "\fBGetLargestCycle\fR" 4
+.IX Item "GetLargestCycle"
+.Vb 1
+\&    $CyclicPath = $Graph\->GetLargestCycle();
+.Ve
+.Sp
+Returns a cyclic \fIPath\fR object corresponding to largest cycle in a \fIGraph\fR.
+.IP "\fBGetLargestEdgeCycle\fR" 4
+.IX Item "GetLargestEdgeCycle"
+.Vb 1
+\&    $CyclicPath = $Graph\->GetLargestEdgeCycle($VertexID1, $VertexID2);
+.Ve
+.Sp
+Returns a cyclic \fIPath\fR object corresponding to largest cycle containing edge between
+\&\fIVertexID1\fR and \fIVertexID2\fR in a \fIGraph\fR.
+.IP "\fBGetLargestVertexCycle\fR" 4
+.IX Item "GetLargestVertexCycle"
+.Vb 1
+\&    $CyclicPath = $Graph\->GetLargestVertexCycle($VertexID);
+.Ve
+.Sp
+Returns a cyclic \fIPath\fR object corresponding to largest cycle containing \fIVertexID\fR
+in a \fIGraph\fR.
+.IP "\fBGetLeafVertices\fR" 4
+.IX Item "GetLeafVertices"
+.Vb 1
+\&    @VertexIDs = $Graph\->GetLeafVertices();
+.Ve
+.Sp
+Returns an array \fIVertexIDs\fR containing vertices with degree of 1 in a \fIGraph\fR.
+.IP "\fBGetMaximumDegree\fR" 4
+.IX Item "GetMaximumDegree"
+.Vb 1
+\&    $Degree = $Graph\->GetMaximumDegree();
+.Ve
+.Sp
+Returns value of maximum vertex degree in a \fIGraph\fR.
+.IP "\fBGetMininumDegree\fR" 4
+.IX Item "GetMininumDegree"
+.Vb 1
+\&    $Degree = $Graph\->GetMininumDegree();
+.Ve
+.Sp
+Returns value of minimum vertex degree in a \fIGraph\fR.
+.IP "\fBGetNeighborhoodVertices\fR" 4
+.IX Item "GetNeighborhoodVertices"
+.Vb 1
+\&    @VertexNeighborhoods = GetNeighborhoodVertices($StartVertexID);
+.Ve
+.Sp
+Returns an array \fIVertexNeighborhoods\fR containing references to arrays corresponding to
+neighborhood vertices around a specified \fIStartVertexID\fR at all possible radii levels.
+.IP "\fBGetNeighborhoodVerticesWithRadiusUpto\fR" 4
+.IX Item "GetNeighborhoodVerticesWithRadiusUpto"
+.Vb 2
+\&    @VertexNeighborhoods = GetNeighborhoodVerticesWithRadiusUpto(
+\&                           $StartVertexID, $Radius);
+.Ve
+.Sp
+Returns an array \fIVertexNeighborhoods\fR containing references to arrays corresponding to
+neighborhood vertices around a specified \fIStartVertexID\fR upto specified \fIRadius\fR levels.
+.IP "\fBGetNeighborhoodVerticesWithSuccessors\fR" 4
+.IX Item "GetNeighborhoodVerticesWithSuccessors"
+.Vb 2
+\&    @VertexNeighborhoods = GetNeighborhoodVerticesWithSuccessors(
+\&                           $StartVertexID);
+.Ve
+.Sp
+Returns vertex neighborhoods around a specified \fIStartVertexID\fR, along with their successor
+connected vertices, collected at all neighborhood radii as an array \fIVertexNeighborhoods\fR
+containing references to arrays with first value corresponding to vertex \s-1ID\s0 and second
+value as reference to an array  containing its successor connected vertices.
+.Sp
+For a neighborhood vertex at each radius level, the successor connected vertices correspond to the
+neighborhood vertices at the next radius level. Consequently, the neighborhood vertices at the last
+radius level don't contain any successor vertices which fall outside the range of specified radius.
+.IP "\fBGetNeighborhoodVerticesWithSuccessorsAndRadiusUpto\fR" 4
+.IX Item "GetNeighborhoodVerticesWithSuccessorsAndRadiusUpto"
+.Vb 2
+\&    @VertexNeighborhoods = GetNeighborhoodVerticesWithSuccessors(
+\&                           $StartVertexID, $Radius);
+.Ve
+.Sp
+Returns vertex neighborhoods around a specified \fIStartVertexID\fR, along with their successor
+connected vertices, collected with in a specified \fIRadius\fR as an array \fIVertexNeighborhoods\fR
+containing references to arrays with first value corresponding to vertex \s-1ID\s0 and second value
+as reference to a list containing its successor connected vertices.
+.Sp
+For a neighborhood vertex at each radius level, the successor connected vertices correspond to the
+neighborhood vertices at the next radius level. Consequently, the neighborhood vertices at the last
+radius level don't contain any successor vertices which fall outside the range of specified radius.
+.IP "\fBGetNeighbors\fR" 4
+.IX Item "GetNeighbors"
+.Vb 2
+\&    @VertexIDs = $Graph\->GetNeighbors($VertexID);
+\&    $NumOfNeighbors = $Graph\->GetNeighbors($VertexID);
+.Ve
+.Sp
+Returns an array \fIVertexIDs\fR containing vertices connected to \fIVertexID\fR of number of
+neighbors of a \fIVertextID\fR in a \fIGraph\fR.
+.IP "\fBGetNormalizedLaplacianMatrix\fR" 4
+.IX Item "GetNormalizedLaplacianMatrix"
+.Vb 1
+\&    $GraphMatrix = $Graph\->GetNormalizedLaplacianMatrix();
+.Ve
+.Sp
+Returns normalized Laplacian matrix for \fIGraph\fR as a \fIGraphMatrix\fR object with row and column indices
+corresponding to graph vertices returned by GetVertices method.
+.Sp
+For a simple graph G with n vertices, the normalized Laplacian matrix L for G is a n x n square
+matrix and its elements Lij are:
+.Sp
+.Vb 3
+\&    .  1                           if i == j and deg(Vi) != 0
+\&    .  \-1/SQRT(deg(Vi) * deg(Vj))  if i != j and vertex Vi is adjacent to vertex Vj
+\&    .  0                           otherwise
+.Ve
+.IP "\fBGetNumOfCycles\fR" 4
+.IX Item "GetNumOfCycles"
+.Vb 1
+\&    $NumOfCycles = $Graph\->GetNumOfCycles();
+.Ve
+.Sp
+Returns number of cycles in a \fIGraph\fR.
+.IP "\fBGetNumOfCyclesWithEvenSize\fR" 4
+.IX Item "GetNumOfCyclesWithEvenSize"
+.Vb 1
+\&    $NumOfCycles = $Graph\->GetNumOfCyclesWithEvenSize();
+.Ve
+.Sp
+Returns number of cycles with even size in a \fIGraph\fR.
+.IP "\fBGetNumOfCyclesWithOddSize\fR" 4
+.IX Item "GetNumOfCyclesWithOddSize"
+.Vb 1
+\&    $NumOfCycles = $Graph\->GetNumOfCyclesWithOddSize();
+.Ve
+.Sp
+Returns number of cycles with odd size in a \fIGraph\fR.
+.IP "\fBGetNumOfCyclesWithSize\fR" 4
+.IX Item "GetNumOfCyclesWithSize"
+.Vb 1
+\&    $NumOfCycles = $Graph\->GetNumOfCyclesWithSize($CycleSize);
+.Ve
+.Sp
+Returns number of cycles with \fICyclesSize\fR in a \fIGraph\fR.
+.IP "\fBGetNumOfCyclesWithSizeGreaterThan\fR" 4
+.IX Item "GetNumOfCyclesWithSizeGreaterThan"
+.Vb 2
+\&    $NumOfCycles = $Graph\->GetNumOfCyclesWithSizeGreaterThan(
+\&                   $CycleSize);
+.Ve
+.Sp
+Returns number of cycles with size greater than \fICyclesSize\fR in a \fIGraph\fR.
+.IP "\fBGetNumOfCyclesWithSizeLessThan\fR" 4
+.IX Item "GetNumOfCyclesWithSizeLessThan"
+.Vb 1
+\&    $NumOfCycles = $Graph\->GetNumOfCyclesWithSizeLessThan($CycleSize);
+.Ve
+.Sp
+Returns number of cycles with size less than \fICyclesSize\fR in a \fIGraph\fR.
+.IP "\fBGetNumOfEdgeCycles\fR" 4
+.IX Item "GetNumOfEdgeCycles"
+.Vb 1
+\&    $NumOfCycles = $Graph\->GetNumOfEdgeCycles($VertexID1, $VertexID2);
+.Ve
+.Sp
+Returns number of cycles containing edge between \fIVertexID1\fR and \fIVertexID2\fR
+in a \fIGraph\fR.
+.IP "\fBGetNumOfEdgeCyclesWithEvenSize\fR" 4
+.IX Item "GetNumOfEdgeCyclesWithEvenSize"
+.Vb 2
+\&    $NumOfCycles = $Graph\->GetNumOfEdgeCyclesWithEvenSize($VertexID1,
+\&                   $VertexID2);
+.Ve
+.Sp
+Returns number of cycles containing edge between \fIVertexID1\fR and \fIVertexID2\fR with even
+size in a \fIGraph\fR.
+.IP "\fBGetNumOfEdgeCyclesWithOddSize\fR" 4
+.IX Item "GetNumOfEdgeCyclesWithOddSize"
+.Vb 2
+\&    $NumOfCycles = $Graph\->GetNumOfEdgeCyclesWithOddSize($VertexID1,
+\&                   $VertexID2);
+.Ve
+.Sp
+Returns number of cycles containing edge between \fIVertexID1\fR and \fIVertexID2\fR with odd
+size in a \fIGraph\fR.
+.IP "\fBGetNumOfEdgeCyclesWithSize\fR" 4
+.IX Item "GetNumOfEdgeCyclesWithSize"
+.Vb 2
+\&    $NumOfCycles = $Graph\->GetNumOfEdgeCyclesWithSize($VertexID1,
+\&                   $VertexID2, $CycleSize);
+.Ve
+.Sp
+Returns number of cycles containing edge between \fIVertexID1\fR and \fIVertexID2\fR with
+\&\fICycleSize\fR size in a \fIGraph\fR.
+.IP "\fBGetNumOfEdgeCyclesWithSizeGreaterThan\fR" 4
+.IX Item "GetNumOfEdgeCyclesWithSizeGreaterThan"
+.Vb 2
+\&    $NumOfCycles = $Graph\->GetNumOfEdgeCyclesWithSizeGreaterThan(
+\&                   $VertexID1, $VertexID2, $CycleSize);
+.Ve
+.Sp
+Returns number of cycles containing edge between \fIVertexID1\fR and \fIVertexID2\fR with
+size greater than \fICycleSize\fR size in a \fIGraph\fR.
+.IP "\fBGetNumOfEdgeCyclesWithSizeLessThan\fR" 4
+.IX Item "GetNumOfEdgeCyclesWithSizeLessThan"
+.Vb 2
+\&    $NumOfCycles = $Graph\->GetNumOfEdgeCyclesWithSizeLessThan(
+\&                   $VertexID1, $VertexID2, $CycleSize);
+.Ve
+.Sp
+Returns number of cycles containing edge between \fIVertexID1\fR and \fIVertexID2\fR with
+size less than \fICycleSize\fR size in a \fIGraph\fR.
+.IP "\fBGetNumOfVertexCycles\fR" 4
+.IX Item "GetNumOfVertexCycles"
+.Vb 1
+\&    $NumOfCycles = $Graph\->GetNumOfVertexCycles($VertexID);
+.Ve
+.Sp
+Returns number of cycles containing \fIVertexID\fR in a \fIGraph\fR.
+.IP "\fBGetNumOfVertexCyclesWithEvenSize\fR" 4
+.IX Item "GetNumOfVertexCyclesWithEvenSize"
+.Vb 1
+\&    $NumOfCycles = $Graph\->GetNumOfVertexCyclesWithEvenSize($VertexID);
+.Ve
+.Sp
+Returns number of cycles containing \fIVertexID\fR with even size in a \fIGraph\fR.
+.IP "\fBGetNumOfVertexCyclesWithOddSize\fR" 4
+.IX Item "GetNumOfVertexCyclesWithOddSize"
+.Vb 1
+\&    $NumOfCycles = $Graph\->GetNumOfVertexCyclesWithOddSize($VertexID);
+.Ve
+.Sp
+Returns number of cycles containing \fIVertexID\fR with odd size in a \fIGraph\fR.
+.IP "\fBGetNumOfVertexCyclesWithSize\fR" 4
+.IX Item "GetNumOfVertexCyclesWithSize"
+.Vb 1
+\&    $NumOfCycles = $Graph\->GetNumOfVertexCyclesWithSize($VertexID);
+.Ve
+.Sp
+Returns number of cycles containing \fIVertexID\fR with even size in a \fIGraph\fR.
+.IP "\fBGetNumOfVertexCyclesWithSizeGreaterThan\fR" 4
+.IX Item "GetNumOfVertexCyclesWithSizeGreaterThan"
+.Vb 2
+\&    $NumOfCycles = $Graph\->GetNumOfVertexCyclesWithSizeGreaterThan(
+\&                   $VertexID, $CycleSize);
+.Ve
+.Sp
+Returns number of cycles containing \fIVertexID\fR with size greater than \fICycleSize\fR
+in a \fIGraph\fR.
+.IP "\fBGetNumOfVertexCyclesWithSizeLessThan\fR" 4
+.IX Item "GetNumOfVertexCyclesWithSizeLessThan"
+.Vb 2
+\&    $NumOfCycles = $Graph\->GetNumOfVertexCyclesWithSizeLessThan(
+\&                   $VertexID, $CycleSize);
+.Ve
+.Sp
+Returns number of cycles containing \fIVertexID\fR with size less than \fICycleSize\fR
+in a \fIGraph\fR.
+.IP "\fBGetPaths\fR" 4
+.IX Item "GetPaths"
+.Vb 1
+\&    $PathsRefs = $Graph\->GetPaths([$AllowCycles]);
+.Ve
+.Sp
+Returns a reference to an array of \fIPath\fR objects corresponding to paths of all possible
+lengths starting from each vertex with no sharing of edges in paths traversed. By default,
+cycles are included in paths. A path containing a cycle is terminated at a vertex completing
+the cycle.
+.IP "\fBGetPathsBetween\fR" 4
+.IX Item "GetPathsBetween"
+.Vb 1
+\&    @Paths = $Graph\->GetPathsBetween($StartVertexID, $EndVertexID);
+.Ve
+.Sp
+Returns an arrays of \fIPath\fR objects list of paths between \fIStartVertexID\fR and \fIEndVertexID\fR.
+For cyclic graphs, the list contains may contain more than one \fIPath\fR object.
+.IP "\fBGetPathsStartingAt\fR" 4
+.IX Item "GetPathsStartingAt"
+.Vb 1
+\&    @Paths = $Graph\->GetPathsStartingAt($StartVertexID, [$AllowCycles]);
+.Ve
+.Sp
+Returns an array of \fIPath\fR objects corresponding to all possible lengths starting from a
+specified \fIStartVertexID\fR with no sharing of edges in paths traversed. By default, cycles
+are included in paths. A path containing a cycle is terminated at a vertex completing the cycle.
+.IP "\fBGetPathsStartingAtWithLength\fR" 4
+.IX Item "GetPathsStartingAtWithLength"
+.Vb 2
+\&    @Paths = $Graph\->StartingAtWithLength($StartVertexID, $Length,
+\&             $AllowCycles);
+.Ve
+.Sp
+Returns an array of \fIPath\fR objects corresponding to all paths starting from a specified \fIStartVertexID\fR
+with length \fILength\fR and no sharing of edges in paths traversed. By default, cycles are included in paths.
+A path containing a cycle is terminated at a vertex completing the cycle.
+.IP "\fBGetPathsStartingAtWithLengthUpto\fR" 4
+.IX Item "GetPathsStartingAtWithLengthUpto"
+.Vb 2
+\&    @Paths = $Graph\->StartingAtWithLengthUpto($StartVertexID, $Length,
+\&             $AllowCycles);
+.Ve
+.Sp
+Returns an array of \fIPath\fR objects corresponding to all paths starting from a specified \fIStartVertexID\fR
+with length upto \fILength\fR and no sharing of edges in paths traversed. By default, cycles are included in paths.
+A path containing a cycle is terminated at a vertex completing the cycle.
+.IP "\fBGetPathsWithLength\fR" 4
+.IX Item "GetPathsWithLength"
+.Vb 1
+\&    @Paths = $Graph\->GetPathsWithLength($Length, $AllowCycles);
+.Ve
+.Sp
+Returns an array of \fIPath\fR objects corresponding to to paths starting from each vertex in graph
+with specified <Length> and no sharing of edges in paths traversed. By default, cycles are included
+in paths. A path containing a cycle is terminated at a vertex completing the cycle.
+.IP "\fBGetPathsWithLengthUpto\fR" 4
+.IX Item "GetPathsWithLengthUpto"
+.Vb 1
+\&    @Paths = $Graph\->GetPathsWithLengthUpto($Length, $AllowCycles);
+.Ve
+.Sp
+Returns an array of \fIPath\fR objects corresponding to to paths starting from each vertex in graph
+with length upto specified \fILength\fR and no sharing of edges in paths traversed. By default,
+cycles are included in paths. A path containing a cycle is terminated at a vertex completing the cycle.
+.IP "\fBGetSiedelAdjacencyMatrix\fR" 4
+.IX Item "GetSiedelAdjacencyMatrix"
+.Vb 1
+\&    $GraphMatrix = $Graph\->GetSiedelAdjacencyMatrix();
+.Ve
+.Sp
+Returns Siedel admittance matrix for \fIGraph\fR as a \fIGraphMatrix\fR object with row and column indices
+corresponding to graph vertices returned by GetVertices method.
+.Sp
+For a simple graph G with n vertices, the Siedal adjacency matrix for G is a n x n square matrix and
+its elements Mij are:
+.Sp
+.Vb 3
+\&    . 0    if i == j
+\&    . \-1   if i != j and vertex Vi is adjacent to vertex Vj
+\&    . 1    if i != j and vertex Vi is not adjacent to vertex Vj
+.Ve
+.IP "\fBGetSizeOfLargestCycle\fR" 4
+.IX Item "GetSizeOfLargestCycle"
+.Vb 1
+\&    $Size = $Graph\->GetSizeOfLargestCycle();
+.Ve
+.Sp
+Returns size of the largest cycle in a \fIGraph\fR.
+.IP "\fBGetSizeOfLargestEdgeCycle\fR" 4
+.IX Item "GetSizeOfLargestEdgeCycle"
+.Vb 1
+\&    $Size = $Graph\->GetSizeOfLargestEdgeCycle($VertexID1, $VertexID2);
+.Ve
+.Sp
+Returns size of the largest cycle containing egde between \fIVertextID1\fR and  \fIVertexID2\fR
+in a \fIGraph\fR.
+.IP "\fBGetSizeOfLargestVertexCycle\fR" 4
+.IX Item "GetSizeOfLargestVertexCycle"
+.Vb 1
+\&    $Size = $Graph\->GetSizeOfLargestVertexCycle($VertexID);
+.Ve
+.Sp
+Returns size of the largest cycle containing  \fIVertextID\fR in a \fIGraph\fR.
+.IP "\fBGetSizeOfSmallestCycle\fR" 4
+.IX Item "GetSizeOfSmallestCycle"
+.Vb 1
+\&    $Size = $Graph\->GetSizeOfSmallestCycle();
+.Ve
+.Sp
+Returns size of the smallest cycle in a \fIGraph\fR.
+.IP "\fBGetSizeOfSmallestEdgeCycle\fR" 4
+.IX Item "GetSizeOfSmallestEdgeCycle"
+.Vb 1
+\&    $Size = $Graph\->GetSizeOfSmallestEdgeCycle($VertexID1, $VertexID2);
+.Ve
+.Sp
+Returns size of the smallest cycle containing egde between \fIVertextID1\fR and  \fIVertexID2\fR
+in a \fIGraph\fR.
+.IP "\fBGetSizeOfSmallestVertexCycle\fR" 4
+.IX Item "GetSizeOfSmallestVertexCycle"
+.Vb 1
+\&    $Size = $Graph\->GetSizeOfSmallestVertexCycle($VertexID);
+.Ve
+.Sp
+Returns size of the smallest cycle containing  \fIVertextID\fR in a \fIGraph\fR.
+.IP "\fBGetSmallestCycle\fR" 4
+.IX Item "GetSmallestCycle"
+.Vb 1
+\&    $CyclicPath = $Graph\->GetSmallestCycle();
+.Ve
+.Sp
+Returns a cyclic \fIPath\fR object corresponding to smallest cycle in a \fIGraph\fR.
+.IP "\fBGetSmallestEdgeCycle\fR" 4
+.IX Item "GetSmallestEdgeCycle"
+.Vb 1
+\&    $CyclicPath = $Graph\->GetSmallestEdgeCycle($VertexID1, $VertexID2);
+.Ve
+.Sp
+Returns a cyclic \fIPath\fR object corresponding to smallest cycle containing edge between
+\&\fIVertexID1\fR and \fIVertexID2\fR in a \fIGraph\fR.
+.IP "\fBGetSmallestVertexCycle\fR" 4
+.IX Item "GetSmallestVertexCycle"
+.Vb 1
+\&    $CyclicPath = $Graph\->GetSmallestVertexCycle($VertexID);
+.Ve
+.Sp
+Returns a cyclic \fIPath\fR object corresponding to smallest cycle containing \fIVertexID\fR in a \fIGraph\fR.
+.IP "\fBGetTopologicallySortedVertices\fR" 4
+.IX Item "GetTopologicallySortedVertices"
+.Vb 2
+\&    @VertexIDs = $Graph\->GetTopologicallySortedVertices(
+\&                 [$RootVertexID]);
+.Ve
+.Sp
+Returns an array of \fIVertexIDs\fR sorted topologically starting from a specified \fIRootVertexID\fR or
+from an arbitrary vertex \s-1ID\s0.
+.IP "\fBGetVertex\fR" 4
+.IX Item "GetVertex"
+.Vb 1
+\&    $VertexValue = $Graph\->GetVertex($VertexID);
+.Ve
+.Sp
+Returns vartex value for \fIVertexID\fR in a \fIGraph\fR. Vartex IDs and values are equivalent
+in the current implementation of \fBGraph\fR.
+.IP "\fBGetVertexCycles\fR" 4
+.IX Item "GetVertexCycles"
+.Vb 1
+\&    @CyclicPaths = $Graph\->GetVertexCycles($VertexID);
+.Ve
+.Sp
+Returns an array \fICyclicPaths\fR containing \fIPath\fR objects corresponding to all cycles containing
+\&\fIVertexID\fR in a \fIGraph\fR.
+.IP "\fBGetVertexCyclesWithEvenSize\fR" 4
+.IX Item "GetVertexCyclesWithEvenSize"
+.Vb 1
+\&    @CyclicPaths = $Graph\->GetVertexCyclesWithEvenSize($VertexID);
+.Ve
+.Sp
+Returns an array \fICyclicPaths\fR containing \fIPath\fR objects corresponding to cycles with
+even size containing \fIVertexID\fR in a \fIGraph\fR.
+.IP "\fBGetVertexCyclesWithOddSize\fR" 4
+.IX Item "GetVertexCyclesWithOddSize"
+.Vb 1
+\&    @CyclicPaths = $Graph\->GetVertexCyclesWithOddSize($VertexID);
+.Ve
+.Sp
+Returns an array \fICyclicPaths\fR containing \fIPath\fR objects corresponding to cycles with
+odd size containing \fIVertexID\fR in a \fIGraph\fR.
+.IP "\fBGetVertexCyclesWithSize\fR" 4
+.IX Item "GetVertexCyclesWithSize"
+.Vb 2
+\&    @CyclicPaths = $Graph\->GetVertexCyclesWithSize($VertexID,
+\&                   $CycleSize);
+.Ve
+.Sp
+Returns an array \fICyclicPaths\fR containing \fIPath\fR objects corresponding to cycles with
+size \fICycleSize\fR containing \fIVertexID\fR in a \fIGraph\fR.
+.IP "\fBGetVertexCyclesWithSizeGreaterThan\fR" 4
+.IX Item "GetVertexCyclesWithSizeGreaterThan"
+.Vb 2
+\&    @CyclicPaths = $Graph\->GetVertexCyclesWithSizeGreaterThan($VertexID,
+\&                   $CycleSize);
+.Ve
+.Sp
+Returns an array \fICyclicPaths\fR containing \fIPath\fR objects corresponding to cycles with
+size greater than \fICycleSize\fR containing \fIVertexID\fR in a \fIGraph\fR.
+.IP "\fBGetVertexCyclesWithSizeLessThan\fR" 4
+.IX Item "GetVertexCyclesWithSizeLessThan"
+.Vb 2
+\&    @CyclicPaths = $Graph\->GetVertexCyclesWithSizeLessThan($VertexID,
+\&                   $CycleSize);
+.Ve
+.Sp
+Returns an array \fICyclicPaths\fR containing \fIPath\fR objects corresponding to cycles with
+size less than \fICycleSize\fR containing \fIVertexID\fR in a \fIGraph\fR.
+.IP "\fBGetVertexProperties\fR" 4
+.IX Item "GetVertexProperties"
+.Vb 1
+\&    %VertexProperties = $Graph\->GetVertexProperties($VertexID);
+.Ve
+.Sp
+Returns a hash \fBVertexProperties\fR containing all \fBPropertyName\fR and \fBPropertyValue\fR
+pairs associated with a \fIVertexID\fR in a \fIGraph\fR.
+.IP "\fBGetVertexProperty\fR" 4
+.IX Item "GetVertexProperty"
+.Vb 1
+\&    $Value = $Graph\->GetVertexProperty($PropertyName, $VertexID);
+.Ve
+.Sp
+Returns value of \fIPropertyName\fR associated with a \fIVertexID\fR in a \fIGraph\fR.
+.IP "\fBGetVertexWithLargestDegree\fR" 4
+.IX Item "GetVertexWithLargestDegree"
+.Vb 1
+\&    $VertexID = $Graph\->GetVertexWithLargestDegree();
+.Ve
+.Sp
+Returns \fBVertexID\fR with largest degree in a \fIGraph\fR.
+.IP "\fBGetVertexWithSmallestDegree\fR" 4
+.IX Item "GetVertexWithSmallestDegree"
+.Vb 1
+\&    $VertexID = $Graph\->GetVertexWithSmallestDegree();
+.Ve
+.Sp
+Returns \fBVertexID\fR with smallest degree in a \fIGraph\fR.
+.IP "\fBGetVertices\fR" 4
+.IX Item "GetVertices"
+.Vb 2
+\&    @VertexIDs = $Graph\->GetVertices();
+\&    $VertexCount = $Graph\->GetVertices();
+.Ve
+.Sp
+Returns an array of \fIVertexIDs\fR corresponding to all vertices in a \fIGraph\fR; in a scalar context,
+number of vertices is returned.
+.IP "\fBGetVerticesProperty\fR" 4
+.IX Item "GetVerticesProperty"
+.Vb 1
+\&    @PropertyValues = $Graph\->GetVerticesProperty($PropertyName, @VertexIDs);
+.Ve
+.Sp
+Returns an array \fIPropertyValues\fR containing property values corresponding to
+\&\fIPropertyName\fR associated with with \fIVertexIDs\fR in a \fIGraph\fR.
+.IP "\fBGetVerticesWithDegreeLessThan\fR" 4
+.IX Item "GetVerticesWithDegreeLessThan"
+.Vb 1
+\&    @VertexIDs  = $Graph\->GetVerticesWithDegreeLessThan($Degree);
+.Ve
+.Sp
+Returns an array of \fIVertexIDs\fR containing vertices with degree less than \fIDegree\fR in
+a \fIGraph\fR.
+.IP "\fBHasCycle\fR" 4
+.IX Item "HasCycle"
+.Vb 1
+\&    $Status = $Graph\->HasCycle(@VertexIDs);
+.Ve
+.Sp
+Returns 1 or 0 based on whether edges between successive pair of \fIVertexIDs\fR including
+an additional edge from the last to first vertex \s-1ID\s0 exists in a \fIGraph\fR.
+.IP "\fBHasEdge\fR" 4
+.IX Item "HasEdge"
+.Vb 1
+\&    $Status = $Graph\->HasEdge($VertexID1, $VertexID2);
+.Ve
+.Sp
+Returns 1 or 0 based on whether an edge between \fIVertexID1\fR and \fIVertexID2\fR exist in
+a \fIGraph\fR.
+.IP "\fBHasEdgeProperty\fR" 4
+.IX Item "HasEdgeProperty"
+.Vb 2
+\&    $Status = $Graph\->HasEdgeProperty($PropertyName, $VertexID1,
+\&              $VertexID2);
+.Ve
+.Sp
+Returns 1 or 0 based on whether \fIPropertyName\fR has already been associated with an edge
+between \fIVertexID1\fR and \fIVertexID2\fR in a \fIGraph\fR.
+.IP "\fBHasEdges\fR" 4
+.IX Item "HasEdges"
+.Vb 2
+\&    @EdgesStatus = $Graph\->HasEdges(@VertexIDs);
+\&    $FoundEdgesCount = $Graph\->HasEdges(@VertexIDs);
+.Ve
+.Sp
+Returns an array \fIEdgesStatus\fR containing 1s and 0s corresponding to whether edges between
+successive pairs of \fIVertexIDs\fR exist in a \fIGraph\fR. In a scalar context, number of edges found
+is returned.
+.IP "\fBHasFusedCycles\fR" 4
+.IX Item "HasFusedCycles"
+.Vb 1
+\&    $Status = $Graph\->HasFusedCycles();
+.Ve
+.Sp
+Returns 1 or 0 based on whether any fused cycles exist in a \fIGraph\fR.
+.IP "\fBHasGraphProperty\fR" 4
+.IX Item "HasGraphProperty"
+.Vb 1
+\&    $Status = $Graph\->HasGraphProperty($PropertyName);
+.Ve
+.Sp
+Returns 1 or 0 based on whether \fIPropertyName\fR has already been associated as a
+graph property as opposed to vertex or edge property in a \fIGraph\fR.
+.IP "\fBHasPath\fR" 4
+.IX Item "HasPath"
+.Vb 1
+\&    $Status = $Graph\->HasPath(@VertexIDs));
+.Ve
+.Sp
+Returns 1 or 0 based on whether edges between all successive pairs of \fIVertexIDs\fR exist in
+a \fIGraph\fR.
+.IP "\fBHasVertex\fR" 4
+.IX Item "HasVertex"
+.Vb 1
+\&    $Status = $Graph\->HasVertex($VertexID);
+.Ve
+.Sp
+Returns 1 or 0 based on whether \fIVertexID\fR exists in a \fIGraph\fR.
+.IP "\fBHasVertexProperty\fR" 4
+.IX Item "HasVertexProperty"
+.Vb 1
+\&    $Status = $Graph\->HasGraphProperty($HasVertexProperty, $VertexID);
+.Ve
+.Sp
+Returns 1 or 0 based on whether \fIPropertyName\fR has already been associated with
+\&\fIVertexID\fR in a \fIGraph\fR.
+.IP "\fBHasVertices\fR" 4
+.IX Item "HasVertices"
+.Vb 2
+\&    @VerticesStatus = $Graph\->HasVertices(@VertexIDs);
+\&    $VerticesFoundCount = $Graph\->HasVertices(@VertexIDs);
+.Ve
+.Sp
+Returns an array \fI\fR containing 1s and 0s corresponding to whether \fIVertexIDs\fR exist in a 
+\&\fIGraph\fR. In a scalar context, number of vertices found is returned.
+.IP "\fBIsAcyclic\fR" 4
+.IX Item "IsAcyclic"
+.Vb 1
+\&    $Status = $Graph\->IsAcyclic();
+.Ve
+.Sp
+Returns 0 or 1 based on whether a cycle exist in a \fIGraph\fR.
+.IP "\fBIsAcyclicEdge\fR" 4
+.IX Item "IsAcyclicEdge"
+.Vb 1
+\&    $Status = $Graph\->IsAcyclicEdge($VertexID1, $VertexID2);
+.Ve
+.Sp
+Returns 0 or 1 based on whether a cycle containing an edge between \fIVertexID1\fR and
+\&\fIVertexID2\fR exists in a \fIGraph\fR.
+.IP "\fBIsAcyclicVertex\fR" 4
+.IX Item "IsAcyclicVertex"
+.Vb 1
+\&    $Status = $Graph\->IsAcyclicVertex($VertexID1);
+.Ve
+.Sp
+Returns 0 or 1 based on whether a cycle containing a \fIVertexID\fR exists in a \fIGraph\fR.
+.IP "\fBIsCyclic\fR" 4
+.IX Item "IsCyclic"
+.Vb 1
+\&    $Status = $Graph\->IsCyclic();
+.Ve
+.Sp
+Returns 1 or 0 based on whether a cycle exist in a \fIGraph\fR.
+.IP "\fBIsCyclicEdge\fR" 4
+.IX Item "IsCyclicEdge"
+.Vb 1
+\&    $Status = $Graph\->IsCyclicEdge($VertexID1, $VertexID2);
+.Ve
+.Sp
+Returns 1 or 0 based on whether a cycle containing an edge between \fIVertexID1\fR and
+\&\fIVertexID2\fR exists in a \fIGraph\fR.
+.IP "\fBIsCyclicVertex\fR" 4
+.IX Item "IsCyclicVertex"
+.Vb 1
+\&    $Status = $Graph\->IsCyclicVertex($VertexID1);
+.Ve
+.Sp
+Returns 1 or 0 based on whether a cycle containing a \fIVertexID\fR exists in a \fIGraph\fR.
+.IP "\fBIsGraph\fR" 4
+.IX Item "IsGraph"
+.Vb 1
+\&    $Status = Graph::IsGraph($Object);
+.Ve
+.Sp
+Returns 1 or 0 based on whether \fIObject\fR is a \fBGraph\fR object.
+.IP "\fBIsIsolatedVertex\fR" 4
+.IX Item "IsIsolatedVertex"
+.Vb 1
+\&    $Status = $Graph\->IsIsolatedVertex($VertexID);
+.Ve
+.Sp
+Returns 1 or 0 based on whether \fIVertexID\fR is an isolated vertex in a \fIGraph\fR. A vertex
+with zero as its degree value is considered an isolated vertex.
+.IP "\fBIsLeafVertex\fR" 4
+.IX Item "IsLeafVertex"
+.Vb 1
+\&    $Status = $Graph\->IsLeafVertex($VertexID);
+.Ve
+.Sp
+Returns 1 or 0 based on whether \fIVertexID\fR is an isolated vertex in a \fIGraph\fR. A vertex
+with one as its degree value is considered an isolated vertex.
+.IP "\fBIsUnicyclic\fR" 4
+.IX Item "IsUnicyclic"
+.Vb 1
+\&    $Status = $Graph\->IsUnicyclic();
+.Ve
+.Sp
+Returns 1 or 0 based on whether only one cycle is present in a \fIGraph\fR.
+.IP "\fBIsUnicyclicEdge\fR" 4
+.IX Item "IsUnicyclicEdge"
+.Vb 1
+\&    $Status = $Graph\->IsUnicyclicEdge($VertexID1, $VertexID2);
+.Ve
+.Sp
+Returns 1 or 0 based on whether only one cycle contains the edge between \fIVertexID1\fR and
+\&\fIVertexID2\fR in a \fIGraph\fR.
+.IP "\fBIsUnicyclicVertex\fR" 4
+.IX Item "IsUnicyclicVertex"
+.Vb 1
+\&    $Status = $Graph\->IsUnicyclicVertex($VertexID);
+.Ve
+.Sp
+Returns 1 or 0 based on whether only one cycle contains \fIVertexID\fR in a \fIGraph\fR.
+.IP "\fBSetActiveCyclicPaths\fR" 4
+.IX Item "SetActiveCyclicPaths"
+.Vb 1
+\&    $Graph\->SetActiveCyclicPaths($CyclicPathsType);
+.Ve
+.Sp
+Sets the type of cyclic paths to use during all methods related to cycles and returns \fIGraph\fR.
+Possible values for cyclic paths: \fIIndependent or All\fR.
+.IP "\fBSetEdgeProperties\fR" 4
+.IX Item "SetEdgeProperties"
+.Vb 1
+\&    $Graph\->SetEdgeProperties($VertexID1, $VertexID2, @NamesAndValues);
+.Ve
+.Sp
+Associates property names and values corresponding to successive pairs of values in
+\&\fINamesAndValues\fR to an edge between \fIVertexID1\fR and \fIVertexID2\fR in a \fIGraph\fR
+and returns \fIGraph\fR.
+.IP "\fBSetEdgeProperty\fR" 4
+.IX Item "SetEdgeProperty"
+.Vb 1
+\&    $Graph\->SetEdgeProperty($Name, $Value, $VertexID1, $VertexID2);
+.Ve
+.Sp
+Associates property \fIName\fR and \fIValue\fR to an edge between \fIVertexID1\fR and \fIVertexID2\fR
+in a \fIGraph\fR and returns \fIGraph\fR.
+.IP "\fBSetEdgesProperty\fR" 4
+.IX Item "SetEdgesProperty"
+.Vb 1
+\&    $Graph\->SetEdgesProperty($Name, @ValuesAndVertexIDs);
+.Ve
+.Sp
+Associates a same property \fIName\fR but different \fIValues\fR for different edges specified using
+triplets of \fIPropertyValue, \f(CI$VertexID1\fI, \f(CI$VertexID2\fI\fR via \fIValuesAndVertexIDs\fR in a \fIgraph\fR.
+.IP "\fBSetGraphProperties\fR" 4
+.IX Item "SetGraphProperties"
+.Vb 1
+\&    $Graph\->SetGraphProperties(%NamesAndValues);
+.Ve
+.Sp
+Associates property names and values \fINamesAndValues\fR hash to graph as opposed to vertex
+or edge and returns \fIGraph\fR.
+.IP "\fBSetGraphProperty\fR" 4
+.IX Item "SetGraphProperty"
+.Vb 1
+\&    $Graph\->SetGraphProperty($Name, $Value);
+.Ve
+.Sp
+Associates property \fIName\fR and \fIValue\fR to graph as opposed to vertex
+or edge and returns \fIGraph\fR.
+.IP "\fBSetVertexProperties\fR" 4
+.IX Item "SetVertexProperties"
+.Vb 1
+\&    $Graph\->SetVertexProperties($VertexID, @NamesAndValues);
+.Ve
+.Sp
+Associates property names and values corresponding to successive pairs of values in
+\&\fINamesAndValues\fR to \fIVertexID\fR in a \fIGraph\fR and returns \fIGraph\fR.
+.IP "\fBSetVertexProperty\fR" 4
+.IX Item "SetVertexProperty"
+.Vb 1
+\&    $Graph\->SetVertexProperty($Name, $Value, $VertexID);
+.Ve
+.Sp
+Associates property \fIName\fR and \fIValue\fR to \fIVertexID\fR in a \fIGraph\fR and returns \fIGraph\fR.
+.IP "\fBSetVerticesProperty\fR" 4
+.IX Item "SetVerticesProperty"
+.Vb 1
+\&    $Graph\->SetVerticesProperty($Name, @ValuesAndVertexIDs));
+.Ve
+.Sp
+Associates a same property \fIName\fR but different \fIValues\fR for different vertices specified using
+doublets of \fIPropertyValue, \f(CI$VertexID\fI\fR via \fIValuesAndVertexIDs\fR in a \fIgraph\fR.
+.IP "\fBStringifyEdgesProperties\fR" 4
+.IX Item "StringifyEdgesProperties"
+.Vb 1
+\&    $String = $Graph\->StringifyEdgesProperties();
+.Ve
+.Sp
+Returns a string containing information about properties associated with all edges in a \fIGraph\fR object.
+.IP "\fBStringifyGraph\fR" 4
+.IX Item "StringifyGraph"
+.Vb 1
+\&    $String = $Graph\->StringifyGraph();
+.Ve
+.Sp
+Returns a string containing information about \fIGraph\fR object.
+.IP "\fBStringifyGraphProperties\fR" 4
+.IX Item "StringifyGraphProperties"
+.Vb 1
+\&    $String = $Graph\->StringifyGraphProperties();
+.Ve
+.Sp
+Returns a string containing information about properties associated with graph as opposed to vertex.
+or an edge in a \fIGraph\fR object
+.IP "\fBStringifyProperties\fR" 4
+.IX Item "StringifyProperties"
+.Vb 1
+\&    $String = $Graph\->StringifyProperties();
+.Ve
+.Sp
+Returns a string containing information about properties associated with graph, vertices, and edges in
+a \fIGraph\fR object.
+.IP "\fBStringifyVerticesAndEdges\fR" 4
+.IX Item "StringifyVerticesAndEdges"
+.Vb 1
+\&    $String = $Graph\->StringifyVerticesAndEdges();
+.Ve
+.Sp
+Returns a string containing information about vertices and edges in a \fIGraph\fR object.
+.IP "\fBStringifyVerticesProperties\fR" 4
+.IX Item "StringifyVerticesProperties"
+.Vb 1
+\&    $String = $Graph\->StringifyVerticesProperties();
+.Ve
+.Sp
+Returns a string containing information about properties associated with vertices a \fIGraph\fR object.
+.IP "\fBUpdateEdgeProperty\fR" 4
+.IX Item "UpdateEdgeProperty"
+.Vb 1
+\&    $Graph\->UpdateEdgeProperty($Name, $Value, $VertexID1, $VertexID2);
+.Ve
+.Sp
+Updates property \fIValue\fR for \fIName\fR associated with an edge between \fIVertexID1\fR and
+\&\fIVertexID1\fR and returns \fIGraph\fR.
+.IP "\fBUpdateVertexProperty\fR" 4
+.IX Item "UpdateVertexProperty"
+.Vb 1
+\&    $Graph\->UpdateVertexProperty($Name, $Value, $VertexID);
+.Ve
+.Sp
+Updates property \fIValue\fR for \fIName\fR associated with \fIVertexID\fR and returns \fIGraph\fR.
+.SH "AUTHOR"
+.IX Header "AUTHOR"
+Manish Sud <msud@san.rr.com>
+.SH "SEE ALSO"
+.IX Header "SEE ALSO"
+CyclesDetection.pm, Path.pm, PathGraph.pm, PathsTraversal.pm
+.SH "COPYRIGHT"
+.IX Header "COPYRIGHT"
+Copyright (C) 2015 Manish Sud. All rights reserved.
+.PP
+This file is part of MayaChemTools.
+.PP
+MayaChemTools is free software; you can redistribute it and/or modify it under
+the terms of the \s-1GNU\s0 Lesser General Public License as published by the Free
+Software Foundation; either version 3 of the License, or (at your option)
+any later version.