view mayachemtools/docs/modules/man3/Graph.3 @ 9:ab29fa5c8c1f draft default tip

Uploaded
author deepakjadmin
date Thu, 15 Dec 2016 14:18:03 -0500
parents 73ae111cf86f
children
line wrap: on
line source

.\" 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.