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

Uploaded
author deepakjadmin
date Wed, 20 Jan 2016 11:55:01 -0500
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:73ae111cf86f
1 .\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.22)
2 .\"
3 .\" Standard preamble:
4 .\" ========================================================================
5 .de Sp \" Vertical space (when we can't use .PP)
6 .if t .sp .5v
7 .if n .sp
8 ..
9 .de Vb \" Begin verbatim text
10 .ft CW
11 .nf
12 .ne \\$1
13 ..
14 .de Ve \" End verbatim text
15 .ft R
16 .fi
17 ..
18 .\" Set up some character translations and predefined strings. \*(-- will
19 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
20 .\" double quote, and \*(R" will give a right double quote. \*(C+ will
21 .\" give a nicer C++. Capital omega is used to do unbreakable dashes and
22 .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
23 .\" nothing in troff, for use with C<>.
24 .tr \(*W-
25 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
26 .ie n \{\
27 . ds -- \(*W-
28 . ds PI pi
29 . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
30 . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
31 . ds L" ""
32 . ds R" ""
33 . ds C` ""
34 . ds C' ""
35 'br\}
36 .el\{\
37 . ds -- \|\(em\|
38 . ds PI \(*p
39 . ds L" ``
40 . ds R" ''
41 'br\}
42 .\"
43 .\" Escape single quotes in literal strings from groff's Unicode transform.
44 .ie \n(.g .ds Aq \(aq
45 .el .ds Aq '
46 .\"
47 .\" If the F register is turned on, we'll generate index entries on stderr for
48 .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
49 .\" entries marked with X<> in POD. Of course, you'll have to process the
50 .\" output yourself in some meaningful fashion.
51 .ie \nF \{\
52 . de IX
53 . tm Index:\\$1\t\\n%\t"\\$2"
54 ..
55 . nr % 0
56 . rr F
57 .\}
58 .el \{\
59 . de IX
60 ..
61 .\}
62 .\"
63 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
64 .\" Fear. Run. Save yourself. No user-serviceable parts.
65 . \" fudge factors for nroff and troff
66 .if n \{\
67 . ds #H 0
68 . ds #V .8m
69 . ds #F .3m
70 . ds #[ \f1
71 . ds #] \fP
72 .\}
73 .if t \{\
74 . ds #H ((1u-(\\\\n(.fu%2u))*.13m)
75 . ds #V .6m
76 . ds #F 0
77 . ds #[ \&
78 . ds #] \&
79 .\}
80 . \" simple accents for nroff and troff
81 .if n \{\
82 . ds ' \&
83 . ds ` \&
84 . ds ^ \&
85 . ds , \&
86 . ds ~ ~
87 . ds /
88 .\}
89 .if t \{\
90 . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
91 . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
92 . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
93 . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
94 . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
95 . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
96 .\}
97 . \" troff and (daisy-wheel) nroff accents
98 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
99 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
100 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
101 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
102 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
103 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
104 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
105 .ds ae a\h'-(\w'a'u*4/10)'e
106 .ds Ae A\h'-(\w'A'u*4/10)'E
107 . \" corrections for vroff
108 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
109 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
110 . \" for low resolution devices (crt and lpr)
111 .if \n(.H>23 .if \n(.V>19 \
112 \{\
113 . ds : e
114 . ds 8 ss
115 . ds o a
116 . ds d- d\h'-1'\(ga
117 . ds D- D\h'-1'\(hy
118 . ds th \o'bp'
119 . ds Th \o'LP'
120 . ds ae ae
121 . ds Ae AE
122 .\}
123 .rm #[ #] #H #V #F C
124 .\" ========================================================================
125 .\"
126 .IX Title "GRAPH 1"
127 .TH GRAPH 1 "2015-03-29" "perl v5.14.2" "MayaChemTools"
128 .\" For nroff, turn off justification. Always turn off hyphenation; it makes
129 .\" way too many mistakes in technical documents.
130 .if n .ad l
131 .nh
132 .SH "NAME"
133 Graph
134 .SH "SYNOPSIS"
135 .IX Header "SYNOPSIS"
136 use Graph;
137 .PP
138 use Graph qw(:all);
139 .SH "DESCRIPTION"
140 .IX Header "DESCRIPTION"
141 \&\fBGraph\fR class provides the following methods:
142 .PP
143 new, AddCycle, AddEdge, AddEdges, AddPath, AddVertex, AddVertices, ClearCycles,
144 Copy, CopyEdgesProperties, CopyVerticesAndEdges, CopyVerticesProperties,
145 DeleteCycle, DeleteEdge, DeleteEdgeProperties, DeleteEdgeProperty, DeleteEdges,
146 DeleteEdgesProperties, DeleteEdgesProperty, DeleteGraphProperties,
147 DeleteGraphProperty, DeletePath, DeleteVertex, DeleteVertexProperties,
148 DeleteVertexProperty, DeleteVertices, DeleteVerticesProperty, DetectCycles,
149 GetAdjacencyMatrix, GetAdmittanceMatrix, GetAllPaths, GetAllPathsStartingAt,
150 GetAllPathsStartingAtWithLength, GetAllPathsStartingAtWithLengthUpto,
151 GetAllPathsWithLength, GetAllPathsWithLengthUpto, GetCircumference,
152 GetConnectedComponentsVertices, GetCycles, GetCyclesWithEvenSize,
153 GetCyclesWithOddSize, GetCyclesWithSize, GetCyclesWithSizeGreaterThan,
154 GetCyclesWithSizeLessThan, GetDegree, GetDegreeMatrix, GetDistanceMatrix,
155 GetEdgeCycles, GetEdgeCyclesWithEvenSize, GetEdgeCyclesWithOddSize,
156 GetEdgeCyclesWithSize, GetEdgeCyclesWithSizeGreaterThan,
157 GetEdgeCyclesWithSizeLessThan, GetEdgeProperties, GetEdgeProperty, GetEdges,
158 GetEdgesProperty, GetFusedAndNonFusedCycles, GetGirth, GetGraphProperties,
159 GetGraphProperty, GetIncidenceMatrix, GetIsolatedVertices, GetKirchhoffMatrix,
160 GetLaplacianMatrix, GetLargestCycle, GetLargestEdgeCycle, GetLargestVertexCycle,
161 GetLeafVertices, GetMaximumDegree, GetMininumDegree, GetNeighborhoodVertices,
162 GetNeighborhoodVerticesWithRadiusUpto, GetNeighborhoodVerticesWithSuccessors,
163 GetNeighborhoodVerticesWithSuccessorsAndRadiusUpto, GetNeighbors,
164 GetNormalizedLaplacianMatrix, GetNumOfCycles, GetNumOfCyclesWithEvenSize,
165 GetNumOfCyclesWithOddSize, GetNumOfCyclesWithSize,
166 GetNumOfCyclesWithSizeGreaterThan, GetNumOfCyclesWithSizeLessThan,
167 GetNumOfEdgeCycles, GetNumOfEdgeCyclesWithEvenSize, GetNumOfEdgeCyclesWithOddSize,
168 GetNumOfEdgeCyclesWithSize, GetNumOfEdgeCyclesWithSizeGreaterThan,
169 GetNumOfEdgeCyclesWithSizeLessThan, GetNumOfVertexCycles,
170 GetNumOfVertexCyclesWithEvenSize, GetNumOfVertexCyclesWithOddSize,
171 GetNumOfVertexCyclesWithSize, GetNumOfVertexCyclesWithSizeGreaterThan,
172 GetNumOfVertexCyclesWithSizeLessThan, GetPaths, GetPathsBetween,
173 GetPathsStartingAt, GetPathsStartingAtWithLength,
174 GetPathsStartingAtWithLengthUpto, GetPathsWithLength, GetPathsWithLengthUpto,
175 GetSiedelAdjacencyMatrix, GetSizeOfLargestCycle, GetSizeOfLargestEdgeCycle,
176 GetSizeOfLargestVertexCycle, GetSizeOfSmallestCycle, GetSizeOfSmallestEdgeCycle,
177 GetSizeOfSmallestVertexCycle, GetSmallestCycle, GetSmallestEdgeCycle,
178 GetSmallestVertexCycle, GetTopologicallySortedVertices, GetVertex,
179 GetVertexCycles, GetVertexCyclesWithEvenSize, GetVertexCyclesWithOddSize,
180 GetVertexCyclesWithSize, GetVertexCyclesWithSizeGreaterThan,
181 GetVertexCyclesWithSizeLessThan, GetVertexProperties, GetVertexProperty,
182 GetVertexWithLargestDegree, GetVertexWithSmallestDegree, GetVertices,
183 GetVerticesProperty, GetVerticesWithDegreeLessThan, HasCycle, HasEdge,
184 HasEdgeProperty, HasEdges, HasFusedCycles, HasGraphProperty, HasPath, HasVertex,
185 HasVertexProperty, HasVertices, IsAcyclic, IsAcyclicEdge, IsAcyclicVertex,
186 IsCyclic, IsCyclicEdge, IsCyclicVertex, IsGraph, IsIsolatedVertex, IsLeafVertex,
187 IsUnicyclic, IsUnicyclicEdge, IsUnicyclicVertex, SetActiveCyclicPaths,
188 SetEdgeProperties, SetEdgeProperty, SetEdgesProperty, SetGraphProperties,
189 SetGraphProperty, SetVertexProperties, SetVertexProperty, SetVerticesProperty,
190 StringifyEdgesProperties, StringifyGraph, StringifyGraphProperties,
191 StringifyProperties, StringifyVerticesAndEdges, StringifyVerticesProperties,
192 UpdateEdgeProperty, UpdateVertexProperty
193 .SS "\s-1METHODS\s0"
194 .IX Subsection "METHODS"
195 .IP "\fBnew\fR" 4
196 .IX Item "new"
197 .Vb 1
198 \& $NewGraph = new Graph([@VertexIDs]);
199 .Ve
200 .Sp
201 Using specified \fIGraph\fR \fIVertexIDs\fR, \fBnew\fR method creates a new \fBGraph\fR object and returns
202 newly created \fBGraph\fR object.
203 .Sp
204 Examples:
205 .Sp
206 .Vb 2
207 \& $Graph = new Graph();
208 \& $Graph = new Graph(@VertexIDs);
209 .Ve
210 .IP "\fBAddCycle\fR" 4
211 .IX Item "AddCycle"
212 .Vb 1
213 \& $Graph\->AddCycle(@VertexIDs);
214 .Ve
215 .Sp
216 Adds edges between successive pair of \fIVertexIDs\fR including an additional edge from the last
217 to first vertex \s-1ID\s0 to complete the cycle to \fIGraph\fR and returns \fIGraph\fR.
218 .IP "\fBAddEdge\fR" 4
219 .IX Item "AddEdge"
220 .Vb 1
221 \& $Graph\->AddEdge($VertexID1, $VertexID2);
222 .Ve
223 .Sp
224 Adds an edge between \fIVertexID1\fR and \fIVertexID2\fR in a \fIGraph\fR and returns \fIGraph\fR.
225 .IP "\fBAddEdges\fR" 4
226 .IX Item "AddEdges"
227 .Vb 1
228 \& $Graph\->AddEdges(@VertexIDs);
229 .Ve
230 .Sp
231 Adds edges between successive pair of \fIVertexIDs\fR in a \fIGraph\fR and returns \fIGraph\fR.
232 .IP "\fBAddPath\fR" 4
233 .IX Item "AddPath"
234 .Vb 1
235 \& $Graph\->AddPath(@VertexIDs);
236 .Ve
237 .Sp
238 Adds edges between successive pair of \fIVertexIDs\fR in a \fIGraph\fR and returns \fIGraph\fR.
239 .IP "\fBAddVertex\fR" 4
240 .IX Item "AddVertex"
241 .Vb 1
242 \& $Graph\->AddVertex($VertexID);
243 .Ve
244 .Sp
245 Adds \fIVertexID\fR to \fIGraph\fR and returns \fIGraph\fR.
246 .IP "\fBAddVertices\fR" 4
247 .IX Item "AddVertices"
248 .Vb 1
249 \& $Graph\->AddVertices(@VertexIDs);
250 .Ve
251 .Sp
252 Adds vertices using \fIVertexIDs\fR to \fIGraph\fR and returns \fIGraph\fR.
253 .IP "\fBClearCycles\fR" 4
254 .IX Item "ClearCycles"
255 .Vb 1
256 \& $Graph\->ClearCycles();
257 .Ve
258 .Sp
259 Delete all cycle properties assigned to graph, vertices, and edges by \fIDetectCycles\fR method.
260 .IP "\fBCopy\fR" 4
261 .IX Item "Copy"
262 .Vb 1
263 \& $NewGraph = $Graph\->Copy();
264 .Ve
265 .Sp
266 Copies \fIGraph\fR and its associated data using \fBStorable::dclone\fR and returns a new
267 \&\fBGraph\fR object.
268 .IP "\fBCopyEdgesProperties\fR" 4
269 .IX Item "CopyEdgesProperties"
270 .Vb 1
271 \& $OtherGraph = $Graph\->CopyEdgesProperties($OtherGraph);
272 .Ve
273 .Sp
274 Copies all properties associated with edges from \fIGraph\fR to \fI\f(CI$OtherGraph\fI\fR and
275 returns \fIOtherGraph\fR.
276 .IP "\fBCopyVerticesAndEdges\fR" 4
277 .IX Item "CopyVerticesAndEdges"
278 .Vb 1
279 \& $OtherGraph = $Graph\->CopyVerticesAndEdges($OtherGraph);
280 .Ve
281 .Sp
282 Copies all vertices and edges from \fIGraph\fR to \fI\f(CI$OtherGraph\fI\fR and returns \fIOtherGraph\fR.
283 .IP "\fBCopyVerticesProperties\fR" 4
284 .IX Item "CopyVerticesProperties"
285 .Vb 1
286 \& $OtherGraph = $Graph\->CopyVerticesProperties($OtherGraph);
287 .Ve
288 .Sp
289 Copies all properties associated with vertices from \fIGraph\fR to \fI\f(CI$OtherGraph\fI\fR and
290 returns \fIOtherGraph\fR.
291 .IP "\fBDeleteCycle\fR" 4
292 .IX Item "DeleteCycle"
293 .Vb 1
294 \& $Graph\->DeleteCycle(@VertexIDs);
295 .Ve
296 .Sp
297 Deletes edges between successive pair of \fIVertexIDs\fR including an additional edge from the last
298 to first vertex \s-1ID\s0 to complete the cycle to \fIGraph\fR and returns \fIGraph\fR.
299 .IP "\fBDeleteEdge\fR" 4
300 .IX Item "DeleteEdge"
301 .Vb 1
302 \& $Graph\->DeleteEdge($VertexID1, $VertexID2);
303 .Ve
304 .Sp
305 Deletes an edge between \fIVertexID1\fR and \fIVertexID2\fR in a \fIGraph\fR and returns \fIGraph\fR.
306 .IP "\fBDeleteEdgeProperties\fR" 4
307 .IX Item "DeleteEdgeProperties"
308 .Vb 1
309 \& $Graph\->DeleteEdgeProperties($VertexID1, $VertexID2);
310 .Ve
311 .Sp
312 Deletes all properties associated with edge between \fIVertexID1\fR and \fIVertexID2\fR in a \fIGraph\fR
313 and returns \fIGraph\fR.
314 .IP "\fBDeleteEdgeProperty\fR" 4
315 .IX Item "DeleteEdgeProperty"
316 .Vb 1
317 \& $Graph\->DeleteEdgeProperty($PropertyName, $VertexID1, $VertexID2);
318 .Ve
319 .Sp
320 Deletes \fIPropertyName\fR associated with edge between \fIVertexID1\fR and \fIVertexID2\fR in a \fIGraph\fR
321 and returns \fIGraph\fR.
322 .IP "\fBDeleteEdges\fR" 4
323 .IX Item "DeleteEdges"
324 .Vb 1
325 \& $Graph\->DeleteEdges(@VertexIDs);
326 .Ve
327 .Sp
328 Deletes edges between successive pair of \fIVertexIDs\fR and returns \fIGraph\fR.
329 .IP "\fBDeleteEdgesProperties\fR" 4
330 .IX Item "DeleteEdgesProperties"
331 .Vb 1
332 \& $Graph\->DeleteEdgesProperties(@VertexIDs);
333 .Ve
334 .Sp
335 Deletes all properties associated with edges between successive pair of \fIVertexIDs\fR and
336 returns \fIGraph\fR.
337 .IP "\fBDeleteEdgesProperty\fR" 4
338 .IX Item "DeleteEdgesProperty"
339 .Vb 1
340 \& $Graph\->DeleteEdgesProperty($PropertyName, @VertexIDs);
341 .Ve
342 .Sp
343 Deletes \fIPropertyName\fR associated with edges between successive pair of \fIVertexIDs\fR
344 and returns \fIGraph\fR.
345 .IP "\fBDeleteGraphProperties\fR" 4
346 .IX Item "DeleteGraphProperties"
347 .Vb 1
348 \& $Graph\->DeleteGraphProperties();
349 .Ve
350 .Sp
351 Deletes all properties associated as graph not including properties associated to vertices
352 or edges and returns \fIGraph\fR.
353 .IP "\fBDeleteGraphProperty\fR" 4
354 .IX Item "DeleteGraphProperty"
355 .Vb 1
356 \& $Graph\->DeleteGraphProperty($PropertyName);
357 .Ve
358 .Sp
359 Deletes a \fIPropertyName\fR associated as graph property and returns \fIGraph\fR.
360 .IP "\fBDeletePath\fR" 4
361 .IX Item "DeletePath"
362 .Vb 1
363 \& $Graph\->DeletePath(@VertexIDs);
364 .Ve
365 .Sp
366 Deletes edges between successive pair of \fIVertexIDs\fR in a \fIGraph\fR and returns \fIGraph\fR.
367 .IP "\fBDeleteVertex\fR" 4
368 .IX Item "DeleteVertex"
369 .Vb 1
370 \& $Graph\->DeleteVertex($VertexID);
371 .Ve
372 .Sp
373 Deletes \fIVertexID\fR to \fIGraph\fR and returns \fIGraph\fR.
374 .IP "\fBDeleteVertexProperties\fR" 4
375 .IX Item "DeleteVertexProperties"
376 .Vb 1
377 \& $Graph\->DeleteVertexProperties($VertexID);
378 .Ve
379 .Sp
380 Deletes all properties associated with \fIVertexID\fR and returns \fIGraph\fR.
381 .IP "\fBDeleteVertexProperty\fR" 4
382 .IX Item "DeleteVertexProperty"
383 .Vb 1
384 \& $Graph\->DeleteVertexProperty($PropertyName, $VertexID);
385 .Ve
386 .Sp
387 Deletes a \fIPropertyName\fR associated with \fIVertexID\fR and returns \fIGraph\fR.
388 .IP "\fBDeleteVertices\fR" 4
389 .IX Item "DeleteVertices"
390 .Vb 1
391 \& $Graph\->DeleteVertices(@VertexIDs);
392 .Ve
393 .Sp
394 Deletes vertices specified in \fIVertexIDs\fR and returns \fIGraph\fR.
395 .IP "\fBDeleteVerticesProperty\fR" 4
396 .IX Item "DeleteVerticesProperty"
397 .Vb 1
398 \& $Graph\->DeleteVerticesProperty($PropertyName, @VertexIDs);
399 .Ve
400 .Sp
401 Deletes a \fIPropertyName\fR associated with \fIVertexIDs\fR and returns \fIGraph\fR.
402 .IP "\fBDetectCycles\fR" 4
403 .IX Item "DetectCycles"
404 .Vb 1
405 \& $Graph\->DetectCycles();
406 .Ve
407 .Sp
408 Detect cycles using \fBCyclesDetection\fR class and associate found cycles to \fIGraph\fR
409 object as graph properties: \fIActiveCyclicPaths, AllCyclicPaths, IndependentCyclicPaths\fR.
410 .Sp
411 Notes:
412 .Sp
413 .Vb 6
414 \& . CyclesDetection class detects all cycles in the graph and filters
415 \& them to find independent cycles.
416 \& . All cycles related methods in the graph operate on
417 \& ActiveCyclicPaths. By default, active cyclic paths correspond
418 \& to IndependentCyclicPaths. This behavior can be changed
419 \& using SetActiveCyclicPaths method.
420 .Ve
421 .IP "\fBGetAdjacencyMatrix\fR" 4
422 .IX Item "GetAdjacencyMatrix"
423 .Vb 1
424 \& $GraphMatrix = $Graph\->GetAdjacencyMatrix();
425 .Ve
426 .Sp
427 Returns adjacency matrix for \fIGraph\fR as a \fIGraphMatrix\fR object with row and column indices
428 corresponding to graph vertices returned by GetVertices method.
429 .Sp
430 For a simple graph G with n vertices, the adjacency matrix for G is a n x n square matrix and
431 its elements Mij are:
432 .Sp
433 .Vb 3
434 \& . 0 if i == j
435 \& . 1 if i != j and vertex Vi is adjacent to vertex Vj
436 \& . 0 if i != j and vertex Vi is not adjacent to vertex Vj
437 .Ve
438 .IP "\fBGetAdmittanceMatrix\fR" 4
439 .IX Item "GetAdmittanceMatrix"
440 .Vb 1
441 \& $GraphMatrix = $Graph\->GetAdmittanceMatrix();
442 .Ve
443 .Sp
444 Returns admittance matrix for \fIGraph\fR as a \fIGraphMatrix\fR object with row and column indices
445 corresponding to graph vertices returned by GetVertices method.
446 .Sp
447 For a simple graph G with n vertices, the adjacency matrix for G is a n x n square matrix and
448 its elements Mij are:
449 .Sp
450 .Vb 3
451 \& . 0 if i == j
452 \& . 1 if i != j and vertex Vi is adjacent to vertex Vj
453 \& . 0 if i != j and vertex Vi is not adjacent to vertex Vj
454 .Ve
455 .IP "\fBGetAllPaths\fR" 4
456 .IX Item "GetAllPaths"
457 .Vb 1
458 \& $PathsRef = $Graph\->GetAllPaths([$AllowCycles]);
459 .Ve
460 .Sp
461 Returns a reference to an array containing \fBPath\fR objects corresponding to all possible
462 lengths starting from each vertex in graph with sharing of edges in paths traversed.
463 By default, cycles are included in paths. A path containing a cycle is terminated at a vertex
464 completing the cycle. Duplicate paths are not removed.
465 .IP "\fBGetAllPathsStartingAt\fR" 4
466 .IX Item "GetAllPathsStartingAt"
467 .Vb 2
468 \& @Paths = $Graph\->GetAllPathsStartingAt($StartVertexID,
469 \& [$AllowCycles]);
470 .Ve
471 .Sp
472 Returns an array of \fIPath\fR objects starting from a \fIStartVertexID\fR of any length
473 with sharing of edges in paths traversed. By default, cycles are included in paths.
474 A path containing a cycle is terminated at a vertex completing the cycle.
475 .IP "\fBGetAllPathsStartingAtWithLength\fR" 4
476 .IX Item "GetAllPathsStartingAtWithLength"
477 .Vb 2
478 \& @Paths = $Graph\->GetAllPathsStartingAtWithLength($StartVertexID,
479 \& $Length, [$AllowCycles]);
480 .Ve
481 .Sp
482 Returns an array of \fIPath\fR objects starting from a \fIStartVertexID\fR of specified \fILength\fR
483 with sharing of edges in paths traversed. By default, cycles are included in paths.
484 A path containing a cycle is terminated at a vertex completing the cycle.
485 .IP "\fBGetAllPathsStartingAtWithLengthUpto\fR" 4
486 .IX Item "GetAllPathsStartingAtWithLengthUpto"
487 .Vb 2
488 \& @Paths = $Graph\->GetAllPathsStartingAtWithLengthUpto($StartVertexID,
489 \& $Length, [$AllowCycles]);
490 .Ve
491 .Sp
492 Returns an array of \fIPath\fR objects starting from a \fIStartVertexID\fR with length upto a
493 \&\fILength\fR with sharing of edges in paths traversed. By default, cycles are included in paths.
494 A path containing a cycle is terminated at a vertex completing the cycle.
495 .IP "\fBGetAllPathsWithLength\fR" 4
496 .IX Item "GetAllPathsWithLength"
497 .Vb 2
498 \& $PathsRef = $Graph\->GetAllPathsWithLength($Length,
499 \& [$AllowCycles]);
500 .Ve
501 .Sp
502 Returns a reference to an array containing \fBPath\fR objects corresponding to paths with
503 \&\fILength\fR starting from each vertex in graph with sharing of edges in paths traversed.
504 By default, cycles are included in paths. A path containing a cycle is terminated at a vertex
505 completing the cycle. Duplicate paths are not removed.
506 .IP "\fBGetAllPathsWithLengthUpto\fR" 4
507 .IX Item "GetAllPathsWithLengthUpto"
508 .Vb 2
509 \& $PathsRef = $Graph\->GetAllPathsWithLengthUpto($Length,
510 \& [$AllowCycles]);
511 .Ve
512 .Sp
513 Returns a reference to an array containing \fBPath\fR objects corresponding to paths up to
514 specified \fILength\fR starting from each vertex in graph with sharing of edges in paths traversed.
515 By default, cycles are included in paths. A path containing a cycle is terminated at a vertex
516 completing the cycle. Duplicate paths are not removed.
517 .IP "\fBGetCircumference\fR" 4
518 .IX Item "GetCircumference"
519 .Vb 1
520 \& $Circumference = $Graph\->GetCircumference();
521 .Ve
522 .Sp
523 Returns size of largest cycle in a \fIGraph\fR
524 .IP "\fBGetConnectedComponentsVertices\fR" 4
525 .IX Item "GetConnectedComponentsVertices"
526 .Vb 1
527 \& @ConnectedComponents = $Graph\->GetConnectedComponentsVertices();
528 .Ve
529 .Sp
530 Returns an array \fIConnectedComponents\fR containing referecens to arrays with vertex
531 IDs for each component sorted in order of their decreasing size.
532 .IP "\fBGetCycles\fR" 4
533 .IX Item "GetCycles"
534 .Vb 1
535 \& @CyclicPaths = $Graphs\->GetCycles();
536 .Ve
537 .Sp
538 Returns an array \fICyclicPaths\fR containing \fIPath\fR objects corresponding to cycles
539 in a \fIGraph\fR.
540 .IP "\fBGetCyclesWithEvenSize\fR" 4
541 .IX Item "GetCyclesWithEvenSize"
542 .Vb 1
543 \& @CyclicPaths = $Graph\->GetCyclesWithEvenSize();
544 .Ve
545 .Sp
546 Returns an array \fICyclicPaths\fR containing \fIPath\fR objects corresponding to cycles with
547 even size in a \fIGraph\fR.
548 .IP "\fBGetCyclesWithOddSize\fR" 4
549 .IX Item "GetCyclesWithOddSize"
550 .Vb 1
551 \& @CyclicPaths = $Graph\->GetCyclesWithOddSize();
552 .Ve
553 .Sp
554 Returns an array \fICyclicPaths\fR containing \fIPath\fR objects corresponding to cycles with
555 odd size in a \fIGraph\fR.
556 .IP "\fBGetCyclesWithSize\fR" 4
557 .IX Item "GetCyclesWithSize"
558 .Vb 1
559 \& @CyclicPaths = $Graph\->GetCyclesWithSize($CycleSize);
560 .Ve
561 .Sp
562 Returns an array \fICyclicPaths\fR containing \fIPath\fR objects corresponding to cycles with
563 \&\fICycleSize\fR in a \fIGraph\fR.
564 .IP "\fBGetCyclesWithSizeGreaterThan\fR" 4
565 .IX Item "GetCyclesWithSizeGreaterThan"
566 .Vb 1
567 \& @CyclicPaths = $Graph\->GetCyclesWithSizeGreaterThan($CycleSize);
568 .Ve
569 .Sp
570 Returns an array \fICyclicPaths\fR containing \fIPath\fR objects corresponding to cycles with
571 size greater than \fICycleSize\fR in a \fIGraph\fR.
572 .IP "\fBGetCyclesWithSizeLessThan\fR" 4
573 .IX Item "GetCyclesWithSizeLessThan"
574 .Vb 1
575 \& @CyclicPaths = $Graph\->GetCyclesWithSizeGreaterThan($CycleSize);
576 .Ve
577 .Sp
578 Returns an array \fICyclicPaths\fR containing \fIPath\fR objects corresponding to cycles with
579 size less than \fICycleSize\fR in a \fIGraph\fR.
580 .IP "\fBGetDegree\fR" 4
581 .IX Item "GetDegree"
582 .Vb 1
583 \& $Degree = $Graph\->GetDegree($VertexID);
584 .Ve
585 .Sp
586 Returns \fBDegree\fR for \fIVertexID\fR in a \fIGraph\fR corresponding to sum of in and out vertex
587 degree values.
588 .IP "\fBGetDegreeMatrix\fR" 4
589 .IX Item "GetDegreeMatrix"
590 .Vb 1
591 \& $GraphMatrix = $Graph\->GetDegreeMatrix();
592 .Ve
593 .Sp
594 Returns degree matrix for \fIGraph\fR as a \fIGraphMatrix\fR object with row and column indices
595 corresponding to graph vertices returned by GetVertices method.
596 .Sp
597 For a simple graph G with n vertices, the degree matrix for G is a n x n square matrix and
598 its elements Mij are:
599 .Sp
600 .Vb 2
601 \& . deg(Vi) if i == j and deg(Vi) is the degree of vertex Vi
602 \& . 0 otherwise
603 .Ve
604 .IP "\fBGetDistanceMatrix\fR" 4
605 .IX Item "GetDistanceMatrix"
606 .Vb 1
607 \& $GraphMatrix = $Graph\->GetDistanceMatrix();
608 .Ve
609 .Sp
610 Returns distance matrix for \fIGraph\fR as a \fIGraphMatrix\fR object with row and column indices
611 corresponding to graph vertices returned by GetVertices method.
612 .Sp
613 For a simple graph G with n vertices, the distance matrix for G is a n x n square matrix and
614 its elements Mij are:
615 .Sp
616 .Vb 2
617 \& . 0 if i == j
618 \& . d if i != j and d is the shortest distance between vertex Vi and vertex Vj
619 .Ve
620 .Sp
621 In the final matrix, value of constant \fBBigNumber\fR defined in \fBConstants.pm\fR module
622 corresponds to vertices with no edges.
623 .IP "\fBGetEdgeCycles\fR" 4
624 .IX Item "GetEdgeCycles"
625 .Vb 1
626 \& @CyclicPaths = $Graph\->GetEdgeCycles($VertexID1, $VertexID2);
627 .Ve
628 .Sp
629 Returns an array \fICyclicPaths\fR containing \fIPath\fR objects corresponding to all cycles containing
630 edge between \fIVertexID1\fR and \fIVertexID2\fR in a \fIGraph\fR.
631 .IP "\fBGetEdgeCyclesWithEvenSize\fR" 4
632 .IX Item "GetEdgeCyclesWithEvenSize"
633 .Vb 2
634 \& @CyclicPaths = $Graph\->GetEdgeCyclesWithEvenSize($VertexID1,
635 \& $VertexID2);
636 .Ve
637 .Sp
638 Returns an array \fICyclicPaths\fR containing \fIPath\fR objects corresponding to cycles with
639 even size containing edge between \fIVertexID1\fR and \fIVertexID2\fR in a \fIGraph\fR.
640 .IP "\fBGetEdgeCyclesWithOddSize\fR" 4
641 .IX Item "GetEdgeCyclesWithOddSize"
642 .Vb 2
643 \& @CyclicPaths = $Graph\->GetEdgeCyclesWithOddSize($VertexID1,
644 \& $VertexID2);
645 .Ve
646 .Sp
647 Returns an array \fICyclicPaths\fR containing \fIPath\fR objects corresponding to cycles with
648 odd size containing edge between \fIVertexID1\fR and \fIVertexID2\fR in a \fIGraph\fR.
649 .IP "\fBGetEdgeCyclesWithSize\fR" 4
650 .IX Item "GetEdgeCyclesWithSize"
651 .Vb 2
652 \& @CyclicPaths = $Graph\->GetEdgeCyclesWithSize($VertexID1, $VertexID2,
653 \& $CycleSize);
654 .Ve
655 .Sp
656 Returns an array \fICyclicPaths\fR containing \fIPath\fR objects corresponding to cycles with
657 size \fICycleSize\fR containing edge between \fIVertexID1\fR and \fIVertexID2\fR in a \fIGraph\fR.
658 .IP "\fBGetEdgeCyclesWithSizeGreaterThan\fR" 4
659 .IX Item "GetEdgeCyclesWithSizeGreaterThan"
660 .Vb 2
661 \& @CyclicPaths = $Graph\->GetEdgeCyclesWithSizeGreaterThan($VertexID1,
662 \& $VertexID2, $CycleSize);
663 .Ve
664 .Sp
665 Returns an array \fICyclicPaths\fR containing \fIPath\fR objects corresponding to cycles with
666 size greater than \fICycleSize\fR containing edge between \fIVertexID1\fR and \fIVertexID2\fR
667 in a \fIGraph\fR.
668 .IP "\fBGetEdgeCyclesWithSizeLessThan\fR" 4
669 .IX Item "GetEdgeCyclesWithSizeLessThan"
670 .Vb 2
671 \& @CyclicPaths = $Graph\->GetEdgeCyclesWithSizeLessThan($VertexID1,
672 \& $VertexID2, $CycleSize);
673 .Ve
674 .Sp
675 Returns an array \fICyclicPaths\fR containing \fIPath\fR objects corresponding to cycles with
676 size less than \fICycleSize\fR containing edge between \fIVertexID1\fR and \fIVertexID2\fR.
677 .IP "\fBGetEdgeProperties\fR" 4
678 .IX Item "GetEdgeProperties"
679 .Vb 1
680 \& %EdgeProperties = $Graph\->GetEdgeProperties($VertexID1, $VertexID2);
681 .Ve
682 .Sp
683 Returns a hash \fBEdgeProperties\fR containing all \fBPropertyName\fR and \fBPropertyValue\fR
684 pairs associated with an edge between \fIVertexID1\fR and \fIVertexID2\fR in a \fIGraph\fR.
685 .IP "\fBGetEdgeProperty\fR" 4
686 .IX Item "GetEdgeProperty"
687 .Vb 1
688 \& $Value = $Graph\->GetEdgeProperty($PropertyName, $VertexID1, $VertexID2);
689 .Ve
690 .Sp
691 Returns value of \fIPropertyName\fR associated with an edge between \fIVertexID1\fR
692 and \fIVertexID2\fR in a \fIGraph\fR.
693 .IP "\fBGetEdges\fR" 4
694 .IX Item "GetEdges"
695 .Vb 2
696 \& @EdgeVertexIDs = $Graph\->GetEdges($VertexID);
697 \& $NumOfEdges = $Graph\->GetEdges($VertexID);
698 .Ve
699 .Sp
700 Returns an array \fIEdgeVertexIDs\fR with successive pair of IDs corresponding to edges involving
701 \&\fIVertexID\fR or number of edges for \fIVertexID\fR in a \fIGraph\fR.
702 .IP "\fBGetEdgesProperty\fR" 4
703 .IX Item "GetEdgesProperty"
704 .Vb 1
705 \& @PropertyValues = $Graph\->GetEdgesProperty($PropertyName, @VertexIDs);
706 .Ve
707 .Sp
708 Returns an array \fIPropertyValues\fR containing property values corresponding to
709 \&\fIPropertyName\fR associated with edges between successive pair of \fIVertexIDs\fR.
710 .IP "\fBGetFusedAndNonFusedCycles\fR" 4
711 .IX Item "GetFusedAndNonFusedCycles"
712 .Vb 2
713 \& ($FusedCycleSetsRef, $NonFusedCyclesRef) =
714 \& $Graph\->GetFusedAndNonFusedCycles();
715 .Ve
716 .Sp
717 Returns references to arrays \fIFusedCycleSetsRef\fR and \fINonFusedCyclesRef\fR
718 containing references to arrays of cyclic \fIPath\fR objects corresponding to fuses and
719 non-fused cyclic paths.
720 .IP "\fBGetGirth\fR" 4
721 .IX Item "GetGirth"
722 .Vb 1
723 \& $Girth = $Graph\->GetGirth();
724 .Ve
725 .Sp
726 Returns size of smallest cycle in a \fIGraph\fR.
727 .IP "\fBGetGraphProperties\fR" 4
728 .IX Item "GetGraphProperties"
729 .Vb 1
730 \& %GraphProperties = $Graph\->GetGraphProperties();
731 .Ve
732 .Sp
733 Returns a hash \fBEdgeProperties\fR containing all \fBPropertyName\fR and \fBPropertyValue\fR
734 pairs associated with graph in a \fIGraph\fR.
735 .IP "\fBGetGraphProperty\fR" 4
736 .IX Item "GetGraphProperty"
737 .Vb 1
738 \& $PropertyValue = $Graph\->GetGraphProperty($PropertyName);
739 .Ve
740 .Sp
741 Returns value of \fIPropertyName\fR associated with graph in a \fIGraph\fR.
742 .IP "\fBGetIncidenceMatrix\fR" 4
743 .IX Item "GetIncidenceMatrix"
744 .Vb 1
745 \& $GraphMatrix = $Graph\->GetIncidenceMatrix();
746 .Ve
747 .Sp
748 Returns incidence matrix for \fIGraph\fR as a \fIGraphMatrix\fR object with row and column indices
749 corresponding to graph vertices returned by GetVertices method.
750 .Sp
751 For a simple graph G with n vertices and e edges, the incidence matrix for G is a n x e matrix
752 its elements Mij are:
753 .Sp
754 .Vb 2
755 \& . 1 if vertex Vi and the edge Ej are incident; in other words, Vi and Ej are related
756 \& . 0 otherwise
757 .Ve
758 .IP "\fBGetIsolatedVertices\fR" 4
759 .IX Item "GetIsolatedVertices"
760 .Vb 1
761 \& @VertexIDs = $Graph\->GetIsolatedVertices();
762 .Ve
763 .Sp
764 Returns an array \fIVertexIDs\fR containing vertices without any edges in \fIGraph\fR.
765 .IP "\fBGetKirchhoffMatrix\fR" 4
766 .IX Item "GetKirchhoffMatrix"
767 .Vb 1
768 \& $GraphMatrix = $Graph\->GetGetKirchhoffMatrix();
769 .Ve
770 .Sp
771 Returns Kirchhoff matrix for \fIGraph\fR as a \fIGraphMatrix\fR object with row and column indices
772 corresponding to graph vertices returned by GetVertices method.
773 .Sp
774 \&\fBKirchhoffMatrix\fR is another name for \fBLaplacianMatrix\fR.
775 .IP "\fBGetLaplacianMatrix\fR" 4
776 .IX Item "GetLaplacianMatrix"
777 .Vb 1
778 \& $GraphMatrix = $Graph\->GetLaplacianMatrix();
779 .Ve
780 .Sp
781 Returns Laplacian matrix for \fIGraph\fR as a \fIGraphMatrix\fR object with row and column indices
782 corresponding to graph vertices returned by GetVertices method.
783 .Sp
784 For a simple graph G with n vertices, the Laplacian matrix for G is a n x n square matrix and
785 its elements Mij are:
786 .Sp
787 .Vb 3
788 \& . deg(Vi) if i == j and deg(Vi) is the degree of vertex Vi
789 \& . \-1 if i != j and vertex Vi is adjacent to vertex Vj
790 \& . 0 otherwise
791 .Ve
792 .IP "\fBGetLargestCycle\fR" 4
793 .IX Item "GetLargestCycle"
794 .Vb 1
795 \& $CyclicPath = $Graph\->GetLargestCycle();
796 .Ve
797 .Sp
798 Returns a cyclic \fIPath\fR object corresponding to largest cycle in a \fIGraph\fR.
799 .IP "\fBGetLargestEdgeCycle\fR" 4
800 .IX Item "GetLargestEdgeCycle"
801 .Vb 1
802 \& $CyclicPath = $Graph\->GetLargestEdgeCycle($VertexID1, $VertexID2);
803 .Ve
804 .Sp
805 Returns a cyclic \fIPath\fR object corresponding to largest cycle containing edge between
806 \&\fIVertexID1\fR and \fIVertexID2\fR in a \fIGraph\fR.
807 .IP "\fBGetLargestVertexCycle\fR" 4
808 .IX Item "GetLargestVertexCycle"
809 .Vb 1
810 \& $CyclicPath = $Graph\->GetLargestVertexCycle($VertexID);
811 .Ve
812 .Sp
813 Returns a cyclic \fIPath\fR object corresponding to largest cycle containing \fIVertexID\fR
814 in a \fIGraph\fR.
815 .IP "\fBGetLeafVertices\fR" 4
816 .IX Item "GetLeafVertices"
817 .Vb 1
818 \& @VertexIDs = $Graph\->GetLeafVertices();
819 .Ve
820 .Sp
821 Returns an array \fIVertexIDs\fR containing vertices with degree of 1 in a \fIGraph\fR.
822 .IP "\fBGetMaximumDegree\fR" 4
823 .IX Item "GetMaximumDegree"
824 .Vb 1
825 \& $Degree = $Graph\->GetMaximumDegree();
826 .Ve
827 .Sp
828 Returns value of maximum vertex degree in a \fIGraph\fR.
829 .IP "\fBGetMininumDegree\fR" 4
830 .IX Item "GetMininumDegree"
831 .Vb 1
832 \& $Degree = $Graph\->GetMininumDegree();
833 .Ve
834 .Sp
835 Returns value of minimum vertex degree in a \fIGraph\fR.
836 .IP "\fBGetNeighborhoodVertices\fR" 4
837 .IX Item "GetNeighborhoodVertices"
838 .Vb 1
839 \& @VertexNeighborhoods = GetNeighborhoodVertices($StartVertexID);
840 .Ve
841 .Sp
842 Returns an array \fIVertexNeighborhoods\fR containing references to arrays corresponding to
843 neighborhood vertices around a specified \fIStartVertexID\fR at all possible radii levels.
844 .IP "\fBGetNeighborhoodVerticesWithRadiusUpto\fR" 4
845 .IX Item "GetNeighborhoodVerticesWithRadiusUpto"
846 .Vb 2
847 \& @VertexNeighborhoods = GetNeighborhoodVerticesWithRadiusUpto(
848 \& $StartVertexID, $Radius);
849 .Ve
850 .Sp
851 Returns an array \fIVertexNeighborhoods\fR containing references to arrays corresponding to
852 neighborhood vertices around a specified \fIStartVertexID\fR upto specified \fIRadius\fR levels.
853 .IP "\fBGetNeighborhoodVerticesWithSuccessors\fR" 4
854 .IX Item "GetNeighborhoodVerticesWithSuccessors"
855 .Vb 2
856 \& @VertexNeighborhoods = GetNeighborhoodVerticesWithSuccessors(
857 \& $StartVertexID);
858 .Ve
859 .Sp
860 Returns vertex neighborhoods around a specified \fIStartVertexID\fR, along with their successor
861 connected vertices, collected at all neighborhood radii as an array \fIVertexNeighborhoods\fR
862 containing references to arrays with first value corresponding to vertex \s-1ID\s0 and second
863 value as reference to an array containing its successor connected vertices.
864 .Sp
865 For a neighborhood vertex at each radius level, the successor connected vertices correspond to the
866 neighborhood vertices at the next radius level. Consequently, the neighborhood vertices at the last
867 radius level don't contain any successor vertices which fall outside the range of specified radius.
868 .IP "\fBGetNeighborhoodVerticesWithSuccessorsAndRadiusUpto\fR" 4
869 .IX Item "GetNeighborhoodVerticesWithSuccessorsAndRadiusUpto"
870 .Vb 2
871 \& @VertexNeighborhoods = GetNeighborhoodVerticesWithSuccessors(
872 \& $StartVertexID, $Radius);
873 .Ve
874 .Sp
875 Returns vertex neighborhoods around a specified \fIStartVertexID\fR, along with their successor
876 connected vertices, collected with in a specified \fIRadius\fR as an array \fIVertexNeighborhoods\fR
877 containing references to arrays with first value corresponding to vertex \s-1ID\s0 and second value
878 as reference to a list containing its successor connected vertices.
879 .Sp
880 For a neighborhood vertex at each radius level, the successor connected vertices correspond to the
881 neighborhood vertices at the next radius level. Consequently, the neighborhood vertices at the last
882 radius level don't contain any successor vertices which fall outside the range of specified radius.
883 .IP "\fBGetNeighbors\fR" 4
884 .IX Item "GetNeighbors"
885 .Vb 2
886 \& @VertexIDs = $Graph\->GetNeighbors($VertexID);
887 \& $NumOfNeighbors = $Graph\->GetNeighbors($VertexID);
888 .Ve
889 .Sp
890 Returns an array \fIVertexIDs\fR containing vertices connected to \fIVertexID\fR of number of
891 neighbors of a \fIVertextID\fR in a \fIGraph\fR.
892 .IP "\fBGetNormalizedLaplacianMatrix\fR" 4
893 .IX Item "GetNormalizedLaplacianMatrix"
894 .Vb 1
895 \& $GraphMatrix = $Graph\->GetNormalizedLaplacianMatrix();
896 .Ve
897 .Sp
898 Returns normalized Laplacian matrix for \fIGraph\fR as a \fIGraphMatrix\fR object with row and column indices
899 corresponding to graph vertices returned by GetVertices method.
900 .Sp
901 For a simple graph G with n vertices, the normalized Laplacian matrix L for G is a n x n square
902 matrix and its elements Lij are:
903 .Sp
904 .Vb 3
905 \& . 1 if i == j and deg(Vi) != 0
906 \& . \-1/SQRT(deg(Vi) * deg(Vj)) if i != j and vertex Vi is adjacent to vertex Vj
907 \& . 0 otherwise
908 .Ve
909 .IP "\fBGetNumOfCycles\fR" 4
910 .IX Item "GetNumOfCycles"
911 .Vb 1
912 \& $NumOfCycles = $Graph\->GetNumOfCycles();
913 .Ve
914 .Sp
915 Returns number of cycles in a \fIGraph\fR.
916 .IP "\fBGetNumOfCyclesWithEvenSize\fR" 4
917 .IX Item "GetNumOfCyclesWithEvenSize"
918 .Vb 1
919 \& $NumOfCycles = $Graph\->GetNumOfCyclesWithEvenSize();
920 .Ve
921 .Sp
922 Returns number of cycles with even size in a \fIGraph\fR.
923 .IP "\fBGetNumOfCyclesWithOddSize\fR" 4
924 .IX Item "GetNumOfCyclesWithOddSize"
925 .Vb 1
926 \& $NumOfCycles = $Graph\->GetNumOfCyclesWithOddSize();
927 .Ve
928 .Sp
929 Returns number of cycles with odd size in a \fIGraph\fR.
930 .IP "\fBGetNumOfCyclesWithSize\fR" 4
931 .IX Item "GetNumOfCyclesWithSize"
932 .Vb 1
933 \& $NumOfCycles = $Graph\->GetNumOfCyclesWithSize($CycleSize);
934 .Ve
935 .Sp
936 Returns number of cycles with \fICyclesSize\fR in a \fIGraph\fR.
937 .IP "\fBGetNumOfCyclesWithSizeGreaterThan\fR" 4
938 .IX Item "GetNumOfCyclesWithSizeGreaterThan"
939 .Vb 2
940 \& $NumOfCycles = $Graph\->GetNumOfCyclesWithSizeGreaterThan(
941 \& $CycleSize);
942 .Ve
943 .Sp
944 Returns number of cycles with size greater than \fICyclesSize\fR in a \fIGraph\fR.
945 .IP "\fBGetNumOfCyclesWithSizeLessThan\fR" 4
946 .IX Item "GetNumOfCyclesWithSizeLessThan"
947 .Vb 1
948 \& $NumOfCycles = $Graph\->GetNumOfCyclesWithSizeLessThan($CycleSize);
949 .Ve
950 .Sp
951 Returns number of cycles with size less than \fICyclesSize\fR in a \fIGraph\fR.
952 .IP "\fBGetNumOfEdgeCycles\fR" 4
953 .IX Item "GetNumOfEdgeCycles"
954 .Vb 1
955 \& $NumOfCycles = $Graph\->GetNumOfEdgeCycles($VertexID1, $VertexID2);
956 .Ve
957 .Sp
958 Returns number of cycles containing edge between \fIVertexID1\fR and \fIVertexID2\fR
959 in a \fIGraph\fR.
960 .IP "\fBGetNumOfEdgeCyclesWithEvenSize\fR" 4
961 .IX Item "GetNumOfEdgeCyclesWithEvenSize"
962 .Vb 2
963 \& $NumOfCycles = $Graph\->GetNumOfEdgeCyclesWithEvenSize($VertexID1,
964 \& $VertexID2);
965 .Ve
966 .Sp
967 Returns number of cycles containing edge between \fIVertexID1\fR and \fIVertexID2\fR with even
968 size in a \fIGraph\fR.
969 .IP "\fBGetNumOfEdgeCyclesWithOddSize\fR" 4
970 .IX Item "GetNumOfEdgeCyclesWithOddSize"
971 .Vb 2
972 \& $NumOfCycles = $Graph\->GetNumOfEdgeCyclesWithOddSize($VertexID1,
973 \& $VertexID2);
974 .Ve
975 .Sp
976 Returns number of cycles containing edge between \fIVertexID1\fR and \fIVertexID2\fR with odd
977 size in a \fIGraph\fR.
978 .IP "\fBGetNumOfEdgeCyclesWithSize\fR" 4
979 .IX Item "GetNumOfEdgeCyclesWithSize"
980 .Vb 2
981 \& $NumOfCycles = $Graph\->GetNumOfEdgeCyclesWithSize($VertexID1,
982 \& $VertexID2, $CycleSize);
983 .Ve
984 .Sp
985 Returns number of cycles containing edge between \fIVertexID1\fR and \fIVertexID2\fR with
986 \&\fICycleSize\fR size in a \fIGraph\fR.
987 .IP "\fBGetNumOfEdgeCyclesWithSizeGreaterThan\fR" 4
988 .IX Item "GetNumOfEdgeCyclesWithSizeGreaterThan"
989 .Vb 2
990 \& $NumOfCycles = $Graph\->GetNumOfEdgeCyclesWithSizeGreaterThan(
991 \& $VertexID1, $VertexID2, $CycleSize);
992 .Ve
993 .Sp
994 Returns number of cycles containing edge between \fIVertexID1\fR and \fIVertexID2\fR with
995 size greater than \fICycleSize\fR size in a \fIGraph\fR.
996 .IP "\fBGetNumOfEdgeCyclesWithSizeLessThan\fR" 4
997 .IX Item "GetNumOfEdgeCyclesWithSizeLessThan"
998 .Vb 2
999 \& $NumOfCycles = $Graph\->GetNumOfEdgeCyclesWithSizeLessThan(
1000 \& $VertexID1, $VertexID2, $CycleSize);
1001 .Ve
1002 .Sp
1003 Returns number of cycles containing edge between \fIVertexID1\fR and \fIVertexID2\fR with
1004 size less than \fICycleSize\fR size in a \fIGraph\fR.
1005 .IP "\fBGetNumOfVertexCycles\fR" 4
1006 .IX Item "GetNumOfVertexCycles"
1007 .Vb 1
1008 \& $NumOfCycles = $Graph\->GetNumOfVertexCycles($VertexID);
1009 .Ve
1010 .Sp
1011 Returns number of cycles containing \fIVertexID\fR in a \fIGraph\fR.
1012 .IP "\fBGetNumOfVertexCyclesWithEvenSize\fR" 4
1013 .IX Item "GetNumOfVertexCyclesWithEvenSize"
1014 .Vb 1
1015 \& $NumOfCycles = $Graph\->GetNumOfVertexCyclesWithEvenSize($VertexID);
1016 .Ve
1017 .Sp
1018 Returns number of cycles containing \fIVertexID\fR with even size in a \fIGraph\fR.
1019 .IP "\fBGetNumOfVertexCyclesWithOddSize\fR" 4
1020 .IX Item "GetNumOfVertexCyclesWithOddSize"
1021 .Vb 1
1022 \& $NumOfCycles = $Graph\->GetNumOfVertexCyclesWithOddSize($VertexID);
1023 .Ve
1024 .Sp
1025 Returns number of cycles containing \fIVertexID\fR with odd size in a \fIGraph\fR.
1026 .IP "\fBGetNumOfVertexCyclesWithSize\fR" 4
1027 .IX Item "GetNumOfVertexCyclesWithSize"
1028 .Vb 1
1029 \& $NumOfCycles = $Graph\->GetNumOfVertexCyclesWithSize($VertexID);
1030 .Ve
1031 .Sp
1032 Returns number of cycles containing \fIVertexID\fR with even size in a \fIGraph\fR.
1033 .IP "\fBGetNumOfVertexCyclesWithSizeGreaterThan\fR" 4
1034 .IX Item "GetNumOfVertexCyclesWithSizeGreaterThan"
1035 .Vb 2
1036 \& $NumOfCycles = $Graph\->GetNumOfVertexCyclesWithSizeGreaterThan(
1037 \& $VertexID, $CycleSize);
1038 .Ve
1039 .Sp
1040 Returns number of cycles containing \fIVertexID\fR with size greater than \fICycleSize\fR
1041 in a \fIGraph\fR.
1042 .IP "\fBGetNumOfVertexCyclesWithSizeLessThan\fR" 4
1043 .IX Item "GetNumOfVertexCyclesWithSizeLessThan"
1044 .Vb 2
1045 \& $NumOfCycles = $Graph\->GetNumOfVertexCyclesWithSizeLessThan(
1046 \& $VertexID, $CycleSize);
1047 .Ve
1048 .Sp
1049 Returns number of cycles containing \fIVertexID\fR with size less than \fICycleSize\fR
1050 in a \fIGraph\fR.
1051 .IP "\fBGetPaths\fR" 4
1052 .IX Item "GetPaths"
1053 .Vb 1
1054 \& $PathsRefs = $Graph\->GetPaths([$AllowCycles]);
1055 .Ve
1056 .Sp
1057 Returns a reference to an array of \fIPath\fR objects corresponding to paths of all possible
1058 lengths starting from each vertex with no sharing of edges in paths traversed. By default,
1059 cycles are included in paths. A path containing a cycle is terminated at a vertex completing
1060 the cycle.
1061 .IP "\fBGetPathsBetween\fR" 4
1062 .IX Item "GetPathsBetween"
1063 .Vb 1
1064 \& @Paths = $Graph\->GetPathsBetween($StartVertexID, $EndVertexID);
1065 .Ve
1066 .Sp
1067 Returns an arrays of \fIPath\fR objects list of paths between \fIStartVertexID\fR and \fIEndVertexID\fR.
1068 For cyclic graphs, the list contains may contain more than one \fIPath\fR object.
1069 .IP "\fBGetPathsStartingAt\fR" 4
1070 .IX Item "GetPathsStartingAt"
1071 .Vb 1
1072 \& @Paths = $Graph\->GetPathsStartingAt($StartVertexID, [$AllowCycles]);
1073 .Ve
1074 .Sp
1075 Returns an array of \fIPath\fR objects corresponding to all possible lengths starting from a
1076 specified \fIStartVertexID\fR with no sharing of edges in paths traversed. By default, cycles
1077 are included in paths. A path containing a cycle is terminated at a vertex completing the cycle.
1078 .IP "\fBGetPathsStartingAtWithLength\fR" 4
1079 .IX Item "GetPathsStartingAtWithLength"
1080 .Vb 2
1081 \& @Paths = $Graph\->StartingAtWithLength($StartVertexID, $Length,
1082 \& $AllowCycles);
1083 .Ve
1084 .Sp
1085 Returns an array of \fIPath\fR objects corresponding to all paths starting from a specified \fIStartVertexID\fR
1086 with length \fILength\fR and no sharing of edges in paths traversed. By default, cycles are included in paths.
1087 A path containing a cycle is terminated at a vertex completing the cycle.
1088 .IP "\fBGetPathsStartingAtWithLengthUpto\fR" 4
1089 .IX Item "GetPathsStartingAtWithLengthUpto"
1090 .Vb 2
1091 \& @Paths = $Graph\->StartingAtWithLengthUpto($StartVertexID, $Length,
1092 \& $AllowCycles);
1093 .Ve
1094 .Sp
1095 Returns an array of \fIPath\fR objects corresponding to all paths starting from a specified \fIStartVertexID\fR
1096 with length upto \fILength\fR and no sharing of edges in paths traversed. By default, cycles are included in paths.
1097 A path containing a cycle is terminated at a vertex completing the cycle.
1098 .IP "\fBGetPathsWithLength\fR" 4
1099 .IX Item "GetPathsWithLength"
1100 .Vb 1
1101 \& @Paths = $Graph\->GetPathsWithLength($Length, $AllowCycles);
1102 .Ve
1103 .Sp
1104 Returns an array of \fIPath\fR objects corresponding to to paths starting from each vertex in graph
1105 with specified <Length> and no sharing of edges in paths traversed. By default, cycles are included
1106 in paths. A path containing a cycle is terminated at a vertex completing the cycle.
1107 .IP "\fBGetPathsWithLengthUpto\fR" 4
1108 .IX Item "GetPathsWithLengthUpto"
1109 .Vb 1
1110 \& @Paths = $Graph\->GetPathsWithLengthUpto($Length, $AllowCycles);
1111 .Ve
1112 .Sp
1113 Returns an array of \fIPath\fR objects corresponding to to paths starting from each vertex in graph
1114 with length upto specified \fILength\fR and no sharing of edges in paths traversed. By default,
1115 cycles are included in paths. A path containing a cycle is terminated at a vertex completing the cycle.
1116 .IP "\fBGetSiedelAdjacencyMatrix\fR" 4
1117 .IX Item "GetSiedelAdjacencyMatrix"
1118 .Vb 1
1119 \& $GraphMatrix = $Graph\->GetSiedelAdjacencyMatrix();
1120 .Ve
1121 .Sp
1122 Returns Siedel admittance matrix for \fIGraph\fR as a \fIGraphMatrix\fR object with row and column indices
1123 corresponding to graph vertices returned by GetVertices method.
1124 .Sp
1125 For a simple graph G with n vertices, the Siedal adjacency matrix for G is a n x n square matrix and
1126 its elements Mij are:
1127 .Sp
1128 .Vb 3
1129 \& . 0 if i == j
1130 \& . \-1 if i != j and vertex Vi is adjacent to vertex Vj
1131 \& . 1 if i != j and vertex Vi is not adjacent to vertex Vj
1132 .Ve
1133 .IP "\fBGetSizeOfLargestCycle\fR" 4
1134 .IX Item "GetSizeOfLargestCycle"
1135 .Vb 1
1136 \& $Size = $Graph\->GetSizeOfLargestCycle();
1137 .Ve
1138 .Sp
1139 Returns size of the largest cycle in a \fIGraph\fR.
1140 .IP "\fBGetSizeOfLargestEdgeCycle\fR" 4
1141 .IX Item "GetSizeOfLargestEdgeCycle"
1142 .Vb 1
1143 \& $Size = $Graph\->GetSizeOfLargestEdgeCycle($VertexID1, $VertexID2);
1144 .Ve
1145 .Sp
1146 Returns size of the largest cycle containing egde between \fIVertextID1\fR and \fIVertexID2\fR
1147 in a \fIGraph\fR.
1148 .IP "\fBGetSizeOfLargestVertexCycle\fR" 4
1149 .IX Item "GetSizeOfLargestVertexCycle"
1150 .Vb 1
1151 \& $Size = $Graph\->GetSizeOfLargestVertexCycle($VertexID);
1152 .Ve
1153 .Sp
1154 Returns size of the largest cycle containing \fIVertextID\fR in a \fIGraph\fR.
1155 .IP "\fBGetSizeOfSmallestCycle\fR" 4
1156 .IX Item "GetSizeOfSmallestCycle"
1157 .Vb 1
1158 \& $Size = $Graph\->GetSizeOfSmallestCycle();
1159 .Ve
1160 .Sp
1161 Returns size of the smallest cycle in a \fIGraph\fR.
1162 .IP "\fBGetSizeOfSmallestEdgeCycle\fR" 4
1163 .IX Item "GetSizeOfSmallestEdgeCycle"
1164 .Vb 1
1165 \& $Size = $Graph\->GetSizeOfSmallestEdgeCycle($VertexID1, $VertexID2);
1166 .Ve
1167 .Sp
1168 Returns size of the smallest cycle containing egde between \fIVertextID1\fR and \fIVertexID2\fR
1169 in a \fIGraph\fR.
1170 .IP "\fBGetSizeOfSmallestVertexCycle\fR" 4
1171 .IX Item "GetSizeOfSmallestVertexCycle"
1172 .Vb 1
1173 \& $Size = $Graph\->GetSizeOfSmallestVertexCycle($VertexID);
1174 .Ve
1175 .Sp
1176 Returns size of the smallest cycle containing \fIVertextID\fR in a \fIGraph\fR.
1177 .IP "\fBGetSmallestCycle\fR" 4
1178 .IX Item "GetSmallestCycle"
1179 .Vb 1
1180 \& $CyclicPath = $Graph\->GetSmallestCycle();
1181 .Ve
1182 .Sp
1183 Returns a cyclic \fIPath\fR object corresponding to smallest cycle in a \fIGraph\fR.
1184 .IP "\fBGetSmallestEdgeCycle\fR" 4
1185 .IX Item "GetSmallestEdgeCycle"
1186 .Vb 1
1187 \& $CyclicPath = $Graph\->GetSmallestEdgeCycle($VertexID1, $VertexID2);
1188 .Ve
1189 .Sp
1190 Returns a cyclic \fIPath\fR object corresponding to smallest cycle containing edge between
1191 \&\fIVertexID1\fR and \fIVertexID2\fR in a \fIGraph\fR.
1192 .IP "\fBGetSmallestVertexCycle\fR" 4
1193 .IX Item "GetSmallestVertexCycle"
1194 .Vb 1
1195 \& $CyclicPath = $Graph\->GetSmallestVertexCycle($VertexID);
1196 .Ve
1197 .Sp
1198 Returns a cyclic \fIPath\fR object corresponding to smallest cycle containing \fIVertexID\fR in a \fIGraph\fR.
1199 .IP "\fBGetTopologicallySortedVertices\fR" 4
1200 .IX Item "GetTopologicallySortedVertices"
1201 .Vb 2
1202 \& @VertexIDs = $Graph\->GetTopologicallySortedVertices(
1203 \& [$RootVertexID]);
1204 .Ve
1205 .Sp
1206 Returns an array of \fIVertexIDs\fR sorted topologically starting from a specified \fIRootVertexID\fR or
1207 from an arbitrary vertex \s-1ID\s0.
1208 .IP "\fBGetVertex\fR" 4
1209 .IX Item "GetVertex"
1210 .Vb 1
1211 \& $VertexValue = $Graph\->GetVertex($VertexID);
1212 .Ve
1213 .Sp
1214 Returns vartex value for \fIVertexID\fR in a \fIGraph\fR. Vartex IDs and values are equivalent
1215 in the current implementation of \fBGraph\fR.
1216 .IP "\fBGetVertexCycles\fR" 4
1217 .IX Item "GetVertexCycles"
1218 .Vb 1
1219 \& @CyclicPaths = $Graph\->GetVertexCycles($VertexID);
1220 .Ve
1221 .Sp
1222 Returns an array \fICyclicPaths\fR containing \fIPath\fR objects corresponding to all cycles containing
1223 \&\fIVertexID\fR in a \fIGraph\fR.
1224 .IP "\fBGetVertexCyclesWithEvenSize\fR" 4
1225 .IX Item "GetVertexCyclesWithEvenSize"
1226 .Vb 1
1227 \& @CyclicPaths = $Graph\->GetVertexCyclesWithEvenSize($VertexID);
1228 .Ve
1229 .Sp
1230 Returns an array \fICyclicPaths\fR containing \fIPath\fR objects corresponding to cycles with
1231 even size containing \fIVertexID\fR in a \fIGraph\fR.
1232 .IP "\fBGetVertexCyclesWithOddSize\fR" 4
1233 .IX Item "GetVertexCyclesWithOddSize"
1234 .Vb 1
1235 \& @CyclicPaths = $Graph\->GetVertexCyclesWithOddSize($VertexID);
1236 .Ve
1237 .Sp
1238 Returns an array \fICyclicPaths\fR containing \fIPath\fR objects corresponding to cycles with
1239 odd size containing \fIVertexID\fR in a \fIGraph\fR.
1240 .IP "\fBGetVertexCyclesWithSize\fR" 4
1241 .IX Item "GetVertexCyclesWithSize"
1242 .Vb 2
1243 \& @CyclicPaths = $Graph\->GetVertexCyclesWithSize($VertexID,
1244 \& $CycleSize);
1245 .Ve
1246 .Sp
1247 Returns an array \fICyclicPaths\fR containing \fIPath\fR objects corresponding to cycles with
1248 size \fICycleSize\fR containing \fIVertexID\fR in a \fIGraph\fR.
1249 .IP "\fBGetVertexCyclesWithSizeGreaterThan\fR" 4
1250 .IX Item "GetVertexCyclesWithSizeGreaterThan"
1251 .Vb 2
1252 \& @CyclicPaths = $Graph\->GetVertexCyclesWithSizeGreaterThan($VertexID,
1253 \& $CycleSize);
1254 .Ve
1255 .Sp
1256 Returns an array \fICyclicPaths\fR containing \fIPath\fR objects corresponding to cycles with
1257 size greater than \fICycleSize\fR containing \fIVertexID\fR in a \fIGraph\fR.
1258 .IP "\fBGetVertexCyclesWithSizeLessThan\fR" 4
1259 .IX Item "GetVertexCyclesWithSizeLessThan"
1260 .Vb 2
1261 \& @CyclicPaths = $Graph\->GetVertexCyclesWithSizeLessThan($VertexID,
1262 \& $CycleSize);
1263 .Ve
1264 .Sp
1265 Returns an array \fICyclicPaths\fR containing \fIPath\fR objects corresponding to cycles with
1266 size less than \fICycleSize\fR containing \fIVertexID\fR in a \fIGraph\fR.
1267 .IP "\fBGetVertexProperties\fR" 4
1268 .IX Item "GetVertexProperties"
1269 .Vb 1
1270 \& %VertexProperties = $Graph\->GetVertexProperties($VertexID);
1271 .Ve
1272 .Sp
1273 Returns a hash \fBVertexProperties\fR containing all \fBPropertyName\fR and \fBPropertyValue\fR
1274 pairs associated with a \fIVertexID\fR in a \fIGraph\fR.
1275 .IP "\fBGetVertexProperty\fR" 4
1276 .IX Item "GetVertexProperty"
1277 .Vb 1
1278 \& $Value = $Graph\->GetVertexProperty($PropertyName, $VertexID);
1279 .Ve
1280 .Sp
1281 Returns value of \fIPropertyName\fR associated with a \fIVertexID\fR in a \fIGraph\fR.
1282 .IP "\fBGetVertexWithLargestDegree\fR" 4
1283 .IX Item "GetVertexWithLargestDegree"
1284 .Vb 1
1285 \& $VertexID = $Graph\->GetVertexWithLargestDegree();
1286 .Ve
1287 .Sp
1288 Returns \fBVertexID\fR with largest degree in a \fIGraph\fR.
1289 .IP "\fBGetVertexWithSmallestDegree\fR" 4
1290 .IX Item "GetVertexWithSmallestDegree"
1291 .Vb 1
1292 \& $VertexID = $Graph\->GetVertexWithSmallestDegree();
1293 .Ve
1294 .Sp
1295 Returns \fBVertexID\fR with smallest degree in a \fIGraph\fR.
1296 .IP "\fBGetVertices\fR" 4
1297 .IX Item "GetVertices"
1298 .Vb 2
1299 \& @VertexIDs = $Graph\->GetVertices();
1300 \& $VertexCount = $Graph\->GetVertices();
1301 .Ve
1302 .Sp
1303 Returns an array of \fIVertexIDs\fR corresponding to all vertices in a \fIGraph\fR; in a scalar context,
1304 number of vertices is returned.
1305 .IP "\fBGetVerticesProperty\fR" 4
1306 .IX Item "GetVerticesProperty"
1307 .Vb 1
1308 \& @PropertyValues = $Graph\->GetVerticesProperty($PropertyName, @VertexIDs);
1309 .Ve
1310 .Sp
1311 Returns an array \fIPropertyValues\fR containing property values corresponding to
1312 \&\fIPropertyName\fR associated with with \fIVertexIDs\fR in a \fIGraph\fR.
1313 .IP "\fBGetVerticesWithDegreeLessThan\fR" 4
1314 .IX Item "GetVerticesWithDegreeLessThan"
1315 .Vb 1
1316 \& @VertexIDs = $Graph\->GetVerticesWithDegreeLessThan($Degree);
1317 .Ve
1318 .Sp
1319 Returns an array of \fIVertexIDs\fR containing vertices with degree less than \fIDegree\fR in
1320 a \fIGraph\fR.
1321 .IP "\fBHasCycle\fR" 4
1322 .IX Item "HasCycle"
1323 .Vb 1
1324 \& $Status = $Graph\->HasCycle(@VertexIDs);
1325 .Ve
1326 .Sp
1327 Returns 1 or 0 based on whether edges between successive pair of \fIVertexIDs\fR including
1328 an additional edge from the last to first vertex \s-1ID\s0 exists in a \fIGraph\fR.
1329 .IP "\fBHasEdge\fR" 4
1330 .IX Item "HasEdge"
1331 .Vb 1
1332 \& $Status = $Graph\->HasEdge($VertexID1, $VertexID2);
1333 .Ve
1334 .Sp
1335 Returns 1 or 0 based on whether an edge between \fIVertexID1\fR and \fIVertexID2\fR exist in
1336 a \fIGraph\fR.
1337 .IP "\fBHasEdgeProperty\fR" 4
1338 .IX Item "HasEdgeProperty"
1339 .Vb 2
1340 \& $Status = $Graph\->HasEdgeProperty($PropertyName, $VertexID1,
1341 \& $VertexID2);
1342 .Ve
1343 .Sp
1344 Returns 1 or 0 based on whether \fIPropertyName\fR has already been associated with an edge
1345 between \fIVertexID1\fR and \fIVertexID2\fR in a \fIGraph\fR.
1346 .IP "\fBHasEdges\fR" 4
1347 .IX Item "HasEdges"
1348 .Vb 2
1349 \& @EdgesStatus = $Graph\->HasEdges(@VertexIDs);
1350 \& $FoundEdgesCount = $Graph\->HasEdges(@VertexIDs);
1351 .Ve
1352 .Sp
1353 Returns an array \fIEdgesStatus\fR containing 1s and 0s corresponding to whether edges between
1354 successive pairs of \fIVertexIDs\fR exist in a \fIGraph\fR. In a scalar context, number of edges found
1355 is returned.
1356 .IP "\fBHasFusedCycles\fR" 4
1357 .IX Item "HasFusedCycles"
1358 .Vb 1
1359 \& $Status = $Graph\->HasFusedCycles();
1360 .Ve
1361 .Sp
1362 Returns 1 or 0 based on whether any fused cycles exist in a \fIGraph\fR.
1363 .IP "\fBHasGraphProperty\fR" 4
1364 .IX Item "HasGraphProperty"
1365 .Vb 1
1366 \& $Status = $Graph\->HasGraphProperty($PropertyName);
1367 .Ve
1368 .Sp
1369 Returns 1 or 0 based on whether \fIPropertyName\fR has already been associated as a
1370 graph property as opposed to vertex or edge property in a \fIGraph\fR.
1371 .IP "\fBHasPath\fR" 4
1372 .IX Item "HasPath"
1373 .Vb 1
1374 \& $Status = $Graph\->HasPath(@VertexIDs));
1375 .Ve
1376 .Sp
1377 Returns 1 or 0 based on whether edges between all successive pairs of \fIVertexIDs\fR exist in
1378 a \fIGraph\fR.
1379 .IP "\fBHasVertex\fR" 4
1380 .IX Item "HasVertex"
1381 .Vb 1
1382 \& $Status = $Graph\->HasVertex($VertexID);
1383 .Ve
1384 .Sp
1385 Returns 1 or 0 based on whether \fIVertexID\fR exists in a \fIGraph\fR.
1386 .IP "\fBHasVertexProperty\fR" 4
1387 .IX Item "HasVertexProperty"
1388 .Vb 1
1389 \& $Status = $Graph\->HasGraphProperty($HasVertexProperty, $VertexID);
1390 .Ve
1391 .Sp
1392 Returns 1 or 0 based on whether \fIPropertyName\fR has already been associated with
1393 \&\fIVertexID\fR in a \fIGraph\fR.
1394 .IP "\fBHasVertices\fR" 4
1395 .IX Item "HasVertices"
1396 .Vb 2
1397 \& @VerticesStatus = $Graph\->HasVertices(@VertexIDs);
1398 \& $VerticesFoundCount = $Graph\->HasVertices(@VertexIDs);
1399 .Ve
1400 .Sp
1401 Returns an array \fI\fR containing 1s and 0s corresponding to whether \fIVertexIDs\fR exist in a
1402 \&\fIGraph\fR. In a scalar context, number of vertices found is returned.
1403 .IP "\fBIsAcyclic\fR" 4
1404 .IX Item "IsAcyclic"
1405 .Vb 1
1406 \& $Status = $Graph\->IsAcyclic();
1407 .Ve
1408 .Sp
1409 Returns 0 or 1 based on whether a cycle exist in a \fIGraph\fR.
1410 .IP "\fBIsAcyclicEdge\fR" 4
1411 .IX Item "IsAcyclicEdge"
1412 .Vb 1
1413 \& $Status = $Graph\->IsAcyclicEdge($VertexID1, $VertexID2);
1414 .Ve
1415 .Sp
1416 Returns 0 or 1 based on whether a cycle containing an edge between \fIVertexID1\fR and
1417 \&\fIVertexID2\fR exists in a \fIGraph\fR.
1418 .IP "\fBIsAcyclicVertex\fR" 4
1419 .IX Item "IsAcyclicVertex"
1420 .Vb 1
1421 \& $Status = $Graph\->IsAcyclicVertex($VertexID1);
1422 .Ve
1423 .Sp
1424 Returns 0 or 1 based on whether a cycle containing a \fIVertexID\fR exists in a \fIGraph\fR.
1425 .IP "\fBIsCyclic\fR" 4
1426 .IX Item "IsCyclic"
1427 .Vb 1
1428 \& $Status = $Graph\->IsCyclic();
1429 .Ve
1430 .Sp
1431 Returns 1 or 0 based on whether a cycle exist in a \fIGraph\fR.
1432 .IP "\fBIsCyclicEdge\fR" 4
1433 .IX Item "IsCyclicEdge"
1434 .Vb 1
1435 \& $Status = $Graph\->IsCyclicEdge($VertexID1, $VertexID2);
1436 .Ve
1437 .Sp
1438 Returns 1 or 0 based on whether a cycle containing an edge between \fIVertexID1\fR and
1439 \&\fIVertexID2\fR exists in a \fIGraph\fR.
1440 .IP "\fBIsCyclicVertex\fR" 4
1441 .IX Item "IsCyclicVertex"
1442 .Vb 1
1443 \& $Status = $Graph\->IsCyclicVertex($VertexID1);
1444 .Ve
1445 .Sp
1446 Returns 1 or 0 based on whether a cycle containing a \fIVertexID\fR exists in a \fIGraph\fR.
1447 .IP "\fBIsGraph\fR" 4
1448 .IX Item "IsGraph"
1449 .Vb 1
1450 \& $Status = Graph::IsGraph($Object);
1451 .Ve
1452 .Sp
1453 Returns 1 or 0 based on whether \fIObject\fR is a \fBGraph\fR object.
1454 .IP "\fBIsIsolatedVertex\fR" 4
1455 .IX Item "IsIsolatedVertex"
1456 .Vb 1
1457 \& $Status = $Graph\->IsIsolatedVertex($VertexID);
1458 .Ve
1459 .Sp
1460 Returns 1 or 0 based on whether \fIVertexID\fR is an isolated vertex in a \fIGraph\fR. A vertex
1461 with zero as its degree value is considered an isolated vertex.
1462 .IP "\fBIsLeafVertex\fR" 4
1463 .IX Item "IsLeafVertex"
1464 .Vb 1
1465 \& $Status = $Graph\->IsLeafVertex($VertexID);
1466 .Ve
1467 .Sp
1468 Returns 1 or 0 based on whether \fIVertexID\fR is an isolated vertex in a \fIGraph\fR. A vertex
1469 with one as its degree value is considered an isolated vertex.
1470 .IP "\fBIsUnicyclic\fR" 4
1471 .IX Item "IsUnicyclic"
1472 .Vb 1
1473 \& $Status = $Graph\->IsUnicyclic();
1474 .Ve
1475 .Sp
1476 Returns 1 or 0 based on whether only one cycle is present in a \fIGraph\fR.
1477 .IP "\fBIsUnicyclicEdge\fR" 4
1478 .IX Item "IsUnicyclicEdge"
1479 .Vb 1
1480 \& $Status = $Graph\->IsUnicyclicEdge($VertexID1, $VertexID2);
1481 .Ve
1482 .Sp
1483 Returns 1 or 0 based on whether only one cycle contains the edge between \fIVertexID1\fR and
1484 \&\fIVertexID2\fR in a \fIGraph\fR.
1485 .IP "\fBIsUnicyclicVertex\fR" 4
1486 .IX Item "IsUnicyclicVertex"
1487 .Vb 1
1488 \& $Status = $Graph\->IsUnicyclicVertex($VertexID);
1489 .Ve
1490 .Sp
1491 Returns 1 or 0 based on whether only one cycle contains \fIVertexID\fR in a \fIGraph\fR.
1492 .IP "\fBSetActiveCyclicPaths\fR" 4
1493 .IX Item "SetActiveCyclicPaths"
1494 .Vb 1
1495 \& $Graph\->SetActiveCyclicPaths($CyclicPathsType);
1496 .Ve
1497 .Sp
1498 Sets the type of cyclic paths to use during all methods related to cycles and returns \fIGraph\fR.
1499 Possible values for cyclic paths: \fIIndependent or All\fR.
1500 .IP "\fBSetEdgeProperties\fR" 4
1501 .IX Item "SetEdgeProperties"
1502 .Vb 1
1503 \& $Graph\->SetEdgeProperties($VertexID1, $VertexID2, @NamesAndValues);
1504 .Ve
1505 .Sp
1506 Associates property names and values corresponding to successive pairs of values in
1507 \&\fINamesAndValues\fR to an edge between \fIVertexID1\fR and \fIVertexID2\fR in a \fIGraph\fR
1508 and returns \fIGraph\fR.
1509 .IP "\fBSetEdgeProperty\fR" 4
1510 .IX Item "SetEdgeProperty"
1511 .Vb 1
1512 \& $Graph\->SetEdgeProperty($Name, $Value, $VertexID1, $VertexID2);
1513 .Ve
1514 .Sp
1515 Associates property \fIName\fR and \fIValue\fR to an edge between \fIVertexID1\fR and \fIVertexID2\fR
1516 in a \fIGraph\fR and returns \fIGraph\fR.
1517 .IP "\fBSetEdgesProperty\fR" 4
1518 .IX Item "SetEdgesProperty"
1519 .Vb 1
1520 \& $Graph\->SetEdgesProperty($Name, @ValuesAndVertexIDs);
1521 .Ve
1522 .Sp
1523 Associates a same property \fIName\fR but different \fIValues\fR for different edges specified using
1524 triplets of \fIPropertyValue, \f(CI$VertexID1\fI, \f(CI$VertexID2\fI\fR via \fIValuesAndVertexIDs\fR in a \fIgraph\fR.
1525 .IP "\fBSetGraphProperties\fR" 4
1526 .IX Item "SetGraphProperties"
1527 .Vb 1
1528 \& $Graph\->SetGraphProperties(%NamesAndValues);
1529 .Ve
1530 .Sp
1531 Associates property names and values \fINamesAndValues\fR hash to graph as opposed to vertex
1532 or edge and returns \fIGraph\fR.
1533 .IP "\fBSetGraphProperty\fR" 4
1534 .IX Item "SetGraphProperty"
1535 .Vb 1
1536 \& $Graph\->SetGraphProperty($Name, $Value);
1537 .Ve
1538 .Sp
1539 Associates property \fIName\fR and \fIValue\fR to graph as opposed to vertex
1540 or edge and returns \fIGraph\fR.
1541 .IP "\fBSetVertexProperties\fR" 4
1542 .IX Item "SetVertexProperties"
1543 .Vb 1
1544 \& $Graph\->SetVertexProperties($VertexID, @NamesAndValues);
1545 .Ve
1546 .Sp
1547 Associates property names and values corresponding to successive pairs of values in
1548 \&\fINamesAndValues\fR to \fIVertexID\fR in a \fIGraph\fR and returns \fIGraph\fR.
1549 .IP "\fBSetVertexProperty\fR" 4
1550 .IX Item "SetVertexProperty"
1551 .Vb 1
1552 \& $Graph\->SetVertexProperty($Name, $Value, $VertexID);
1553 .Ve
1554 .Sp
1555 Associates property \fIName\fR and \fIValue\fR to \fIVertexID\fR in a \fIGraph\fR and returns \fIGraph\fR.
1556 .IP "\fBSetVerticesProperty\fR" 4
1557 .IX Item "SetVerticesProperty"
1558 .Vb 1
1559 \& $Graph\->SetVerticesProperty($Name, @ValuesAndVertexIDs));
1560 .Ve
1561 .Sp
1562 Associates a same property \fIName\fR but different \fIValues\fR for different vertices specified using
1563 doublets of \fIPropertyValue, \f(CI$VertexID\fI\fR via \fIValuesAndVertexIDs\fR in a \fIgraph\fR.
1564 .IP "\fBStringifyEdgesProperties\fR" 4
1565 .IX Item "StringifyEdgesProperties"
1566 .Vb 1
1567 \& $String = $Graph\->StringifyEdgesProperties();
1568 .Ve
1569 .Sp
1570 Returns a string containing information about properties associated with all edges in a \fIGraph\fR object.
1571 .IP "\fBStringifyGraph\fR" 4
1572 .IX Item "StringifyGraph"
1573 .Vb 1
1574 \& $String = $Graph\->StringifyGraph();
1575 .Ve
1576 .Sp
1577 Returns a string containing information about \fIGraph\fR object.
1578 .IP "\fBStringifyGraphProperties\fR" 4
1579 .IX Item "StringifyGraphProperties"
1580 .Vb 1
1581 \& $String = $Graph\->StringifyGraphProperties();
1582 .Ve
1583 .Sp
1584 Returns a string containing information about properties associated with graph as opposed to vertex.
1585 or an edge in a \fIGraph\fR object
1586 .IP "\fBStringifyProperties\fR" 4
1587 .IX Item "StringifyProperties"
1588 .Vb 1
1589 \& $String = $Graph\->StringifyProperties();
1590 .Ve
1591 .Sp
1592 Returns a string containing information about properties associated with graph, vertices, and edges in
1593 a \fIGraph\fR object.
1594 .IP "\fBStringifyVerticesAndEdges\fR" 4
1595 .IX Item "StringifyVerticesAndEdges"
1596 .Vb 1
1597 \& $String = $Graph\->StringifyVerticesAndEdges();
1598 .Ve
1599 .Sp
1600 Returns a string containing information about vertices and edges in a \fIGraph\fR object.
1601 .IP "\fBStringifyVerticesProperties\fR" 4
1602 .IX Item "StringifyVerticesProperties"
1603 .Vb 1
1604 \& $String = $Graph\->StringifyVerticesProperties();
1605 .Ve
1606 .Sp
1607 Returns a string containing information about properties associated with vertices a \fIGraph\fR object.
1608 .IP "\fBUpdateEdgeProperty\fR" 4
1609 .IX Item "UpdateEdgeProperty"
1610 .Vb 1
1611 \& $Graph\->UpdateEdgeProperty($Name, $Value, $VertexID1, $VertexID2);
1612 .Ve
1613 .Sp
1614 Updates property \fIValue\fR for \fIName\fR associated with an edge between \fIVertexID1\fR and
1615 \&\fIVertexID1\fR and returns \fIGraph\fR.
1616 .IP "\fBUpdateVertexProperty\fR" 4
1617 .IX Item "UpdateVertexProperty"
1618 .Vb 1
1619 \& $Graph\->UpdateVertexProperty($Name, $Value, $VertexID);
1620 .Ve
1621 .Sp
1622 Updates property \fIValue\fR for \fIName\fR associated with \fIVertexID\fR and returns \fIGraph\fR.
1623 .SH "AUTHOR"
1624 .IX Header "AUTHOR"
1625 Manish Sud <msud@san.rr.com>
1626 .SH "SEE ALSO"
1627 .IX Header "SEE ALSO"
1628 CyclesDetection.pm, Path.pm, PathGraph.pm, PathsTraversal.pm
1629 .SH "COPYRIGHT"
1630 .IX Header "COPYRIGHT"
1631 Copyright (C) 2015 Manish Sud. All rights reserved.
1632 .PP
1633 This file is part of MayaChemTools.
1634 .PP
1635 MayaChemTools is free software; you can redistribute it and/or modify it under
1636 the terms of the \s-1GNU\s0 Lesser General Public License as published by the Free
1637 Software Foundation; either version 3 of the License, or (at your option)
1638 any later version.