Mercurial > repos > deepakjadmin > mayatool3_test3
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.