comparison mayachemtools/docs/modules/man3/PathsTraversal.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 "PATHSTRAVERSAL 1"
127 .TH PATHSTRAVERSAL 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 PathsTraversal
134 .SH "SYNOPSIS"
135 .IX Header "SYNOPSIS"
136 use Graph::PathsTraversal;
137 .PP
138 use Graph::PathsTraversal qw(:all);
139 .SH "DESCRIPTION"
140 .IX Header "DESCRIPTION"
141 \&\fBPathsTraversal\fR class provides the following methods:
142 .PP
143 new, Copy, GetConnectedComponentsVertices, GetPaths, GetVertices,
144 GetVerticesDepth, GetVerticesNeighborhoods,
145 GetVerticesNeighborhoodsWithSuccessors, GetVerticesPredecessors, GetVerticesRoots,
146 PerformAllPathsSearch, PerformAllPathsSearchWithLength,
147 PerformAllPathsSearchWithLengthUpto, PerformBreadthFirstSearch,
148 PerformBreadthFirstSearchWithLimit, PerformDepthFirstSearch,
149 PerformDepthFirstSearchWithLimit, PerformNeighborhoodVerticesSearch,
150 PerformNeighborhoodVerticesSearchWithRadiusUpto,
151 PerformNeighborhoodVerticesSearchWithSuccessors,
152 PerformNeighborhoodVerticesSearchWithSuccessorsAndRadiusUpto, PerformPathsSearch,
153 PerformPathsSearchBetween, PerformPathsSearchWithLength,
154 PerformPathsSearchWithLengthUpto, StringifyPaths, StringifyPathsTraversal,
155 StringifyVerticesDepth, StringifyVerticesNeighborhoods,
156 StringifyVerticesNeighborhoodsWithSuccessors, StringifyVerticesPredecessors,
157 StringifyVerticesRoots, StringifyVerticesSuccessors
158 .SS "\s-1METHODS\s0"
159 .IX Subsection "METHODS"
160 .IP "\fBnew\fR" 4
161 .IX Item "new"
162 .Vb 1
163 \& $PathsTraversal = new Graph::PathsTraversal($Graph);
164 .Ve
165 .Sp
166 Using specified \fIGraph\fR, \fBnew\fR method creates a new \fBPathsTraversal\fR object and returns
167 newly created \fBPathsTraversal\fR object.
168 .IP "\fBCopy\fR" 4
169 .IX Item "Copy"
170 .Vb 1
171 \& $PathsTraversal = $PathsTraversal\->Copy();
172 .Ve
173 .Sp
174 Copies \fIPathsTraversal\fR and its associated data using \fBStorable::dclone\fR and returns a new
175 \&\fBPathsTraversal\fR object.
176 .IP "\fBGetConnectedComponentsVertices\fR" 4
177 .IX Item "GetConnectedComponentsVertices"
178 .Vb 2
179 \& @Components = $PathsTraversal\->GetConnectedComponentsVertices();
180 \& $NumOfComponents = $PathsTraversal\->GetConnectedComponentsVertices();
181 .Ve
182 .Sp
183 Returns an array of \fBComponents\fR containing references to arrays of vertex IDs corresponding
184 to connected components of graph after a search. In scalar context, the number of connected
185 components is returned.
186 .Sp
187 Connected \fBComponents\fR is sorted in descending order of number of vertices in each
188 connected component.
189 .IP "\fBGetPaths\fR" 4
190 .IX Item "GetPaths"
191 .Vb 2
192 \& @Paths = $PathsTraversal\->GetPaths();
193 \& $NumOfPaths = $PathsTraversal\->GetPaths();
194 .Ve
195 .Sp
196 Returns an array of \fBPaths\fR containing references to arrays of vertex IDs corresponding to
197 to paths traversed in a graph after a search. In scalar context, number of paths is returned.
198 .Sp
199 \&\fBPaths\fR array is sorted in ascending order of path lengths.
200 .IP "\fBGetVertices\fR" 4
201 .IX Item "GetVertices"
202 .Vb 2
203 \& @Vertices = $PathsTraversal\->GetVertices();
204 \& $NumOfVertices = $PathsTraversal\->GetVertices();
205 .Ve
206 .Sp
207 Returns an array containing an ordered list of vertex IDs traversed during a search. In
208 scalar context, the number of vertices is returned.
209 .IP "\fBGetVerticesDepth\fR" 4
210 .IX Item "GetVerticesDepth"
211 .Vb 1
212 \& %VerticesDepth = $PathsTraversal\->GetVerticesDepth();
213 .Ve
214 .Sp
215 Returns a hash \fIVerticesDepth\fR containing vertex \s-1ID\s0 and depth from root vertex as a key and
216 value pair for all vertices traversed during a search.
217 .IP "\fBGetVerticesNeighborhoods\fR" 4
218 .IX Item "GetVerticesNeighborhoods"
219 .Vb 4
220 \& @VerticesNeighborhoods =
221 \& $PathsTraversal\->GetVerticesNeighborhoods();
222 \& $NumOfVerticesNeighborhoods =
223 \& $PathsTraversal\->GetVerticesNeighborhoods();
224 .Ve
225 .Sp
226 Returns an array \fIVerticesNeighborhoods\fR containing references to arrays corresponding
227 to vertices collected at various neighborhood radii around a specified vertex during a vertex
228 neighborhood search. In scalar context, the number of neighborhoods is returned.
229 .IP "\fBGetVerticesNeighborhoodsWithSuccessors\fR" 4
230 .IX Item "GetVerticesNeighborhoodsWithSuccessors"
231 .Vb 4
232 \& @VerticesNeighborhoodsWithSucceessors =
233 \& $PathsTraversal\->GetVerticesNeighborhoodsWithSuccessors();
234 \& $NumOfVerticesNeighborhoodsWithSucceessors =
235 \& $PathsTraversal\->GetVerticesNeighborhoodsWithSuccessors();
236 .Ve
237 .Sp
238 Returns an array \fIVerticesNeighborhoodsWithSucceessors\fR containing references to arrays
239 with first value corresponding to vertex IDs corresponding to a vertex at a specific neighborhood
240 radius level and second value a reference to an arraty containing its successors.
241 .IP "\fBGetVerticesPredecessors\fR" 4
242 .IX Item "GetVerticesPredecessors"
243 .Vb 1
244 \& %VerticesPredecessors = $PathsTraversal\->GetVerticesPredecessors();
245 .Ve
246 .Sp
247 Returns a hash \fIVerticesPredecessors\fR containing vertex \s-1ID\s0 and predecessor vertex \s-1ID\s0 as key
248 and value pair for all vertices traversed during a search.
249 .IP "\fBGetVerticesRoots\fR" 4
250 .IX Item "GetVerticesRoots"
251 .Vb 1
252 \& %VerticesRoots = $PathsTraversal\->GetVerticesRoots();
253 .Ve
254 .Sp
255 Returns a hash \fIVerticesPredecessors\fR containing vertex \s-1ID\s0 and root vertex \s-1ID\s0 as a key
256 and value pair for all vertices traversed during a search.
257 .IP "\fBPerformAllPathsSearch\fR" 4
258 .IX Item "PerformAllPathsSearch"
259 .Vb 1
260 \& $PathsTraversal\->PerformAllPathsSearch($StartVertexID, [$AllowCycles]);
261 .Ve
262 .Sp
263 Searches all paths starting from a \fIStartVertexID\fR with sharing of edges in paths traversed and
264 returns \fIPathsTraversal\fR.
265 .Sp
266 By default, cycles are included in paths. A path containing a cycle is terminated at a vertex
267 completing the cycle.
268 .IP "\fBPerformAllPathsSearchWithLength\fR" 4
269 .IX Item "PerformAllPathsSearchWithLength"
270 .Vb 2
271 \& $PathsTraversal\->PerformAllPathsSearchWithLength($StartVertexID,
272 \& $Length, [$AllowCycles]);
273 .Ve
274 .Sp
275 Searches all paths starting from \fIStartVertexID\fR of specific \fILength\fR with sharing of
276 edges in paths traversed and returns \fIPathsTraversal\fR.
277 .Sp
278 By default, cycles are included in paths. A path containing a cycle is terminated at a vertex
279 completing the cycle.
280 .IP "\fBPerformAllPathsSearchWithLengthUpto\fR" 4
281 .IX Item "PerformAllPathsSearchWithLengthUpto"
282 .Vb 2
283 \& $PathsTraversal\->PerformAllPathsSearchWithLengthUpto($StartVertexID,
284 \& $Length, [$AllowCycles]);
285 .Ve
286 .Sp
287 Searches all paths starting from \fIStartVertexID\fR of length upto a \fILength\fR with sharing of
288 edges in paths traversed and returns \fIPathsTraversal\fR.
289 .Sp
290 By default, cycles are included in paths. A path containing a cycle is terminated at a vertex
291 completing the cycle.
292 .IP "\fBPerformBreadthFirstSearch\fR" 4
293 .IX Item "PerformBreadthFirstSearch"
294 .Vb 1
295 \& $PathsTraversal\->PerformBreadthFirstSearch();
296 .Ve
297 .Sp
298 Performs Breadth First Search (\s-1BFS\s0) and returns \fIPathsTraversal\fR.
299 .IP "\fBPerformBreadthFirstSearchWithLimit\fR" 4
300 .IX Item "PerformBreadthFirstSearchWithLimit"
301 .Vb 2
302 \& $PathsTraversal\->PerformBreadthFirstSearchWithLimit($DepthLimit,
303 \& [$RootVertexID]);
304 .Ve
305 .Sp
306 Performs \s-1BFS\s0 with depth up to \fIDepthLimit\fR starting at \fIRootVertexID\fR and returns
307 \&\fIPathsTraversal\fR. By default, root vertex \s-1ID\s0 corresponds to an arbitrary vertex.
308 .IP "\fBPerformDepthFirstSearch\fR" 4
309 .IX Item "PerformDepthFirstSearch"
310 .Vb 1
311 \& $Return = $PathsTraversal\->PerformDepthFirstSearch();
312 .Ve
313 .Sp
314 Performs Depth First Search (\s-1DFS\s0) and returns \fIPathsTraversal\fR.
315 .IP "\fBPerformDepthFirstSearchWithLimit\fR" 4
316 .IX Item "PerformDepthFirstSearchWithLimit"
317 .Vb 2
318 \& $PathsTraversal\->PerformDepthFirstSearchWithLimit($DepthLimit,
319 \& [$RootVertexID]);
320 .Ve
321 .Sp
322 Performs \s-1DFS\s0 with depth up to \fIDepthLimit\fR starting at \fIRootVertexID\fR and returns
323 \&\fIPathsTraversal\fR. By default, root vertex \s-1ID\s0 corresponds to an arbitrary vertex.
324 .IP "\fBPerformNeighborhoodVerticesSearch\fR" 4
325 .IX Item "PerformNeighborhoodVerticesSearch"
326 .Vb 1
327 \& $PathsTraversal\->PerformNeighborhoodVerticesSearch($StartVertexID);
328 .Ve
329 .Sp
330 Searches vertices around \fIStartVertexID\fR at all neighborhood radii and returns
331 \&\fIPathsTraversal\fR object.
332 .IP "\fBPerformNeighborhoodVerticesSearchWithRadiusUpto\fR" 4
333 .IX Item "PerformNeighborhoodVerticesSearchWithRadiusUpto"
334 .Vb 2
335 \& $PathsTraversal\->PerformNeighborhoodVerticesSearchWithRadiusUpto(
336 \& $StartVertexID, $Radius);
337 .Ve
338 .Sp
339 Searches vertices around \fIStartVertexID\fR with neighborhood radius up to \fIRadius\fR and returns
340 \&\fIPathsTraversal\fR object.
341 .IP "\fBPerformNeighborhoodVerticesSearchWithSuccessors\fR" 4
342 .IX Item "PerformNeighborhoodVerticesSearchWithSuccessors"
343 .Vb 2
344 \& $PathsTraversal\->PerformNeighborhoodVerticesSearchWithSuccessors(
345 \& $StartVertexID);
346 .Ve
347 .Sp
348 Searches vertices around \fIStartVertexID\fR at all neighborhood radii along with identification of
349 successor vertices for each vertex found during the traversal and returns \fIPathsTraversal\fR.
350 .IP "\fBPerformNeighborhoodVerticesSearchWithSuccessorsAndRadiusUpto\fR" 4
351 .IX Item "PerformNeighborhoodVerticesSearchWithSuccessorsAndRadiusUpto"
352 .Vb 3
353 \& $PathsTraversal\->
354 \& PerformNeighborhoodVerticesSearchWithSuccessorsAndRadiusUpto(
355 \& $StartVertexID, $Radius);
356 .Ve
357 .Sp
358 Searches vertices around \fIStartVertexID\fR with neighborhood radius upto \fIRadius\fR along with
359 identification of successor vertices for each vertex found during the traversal and returns
360 \&\fIPathsTraversal\fR.
361 .IP "\fBPerformPathsSearch\fR" 4
362 .IX Item "PerformPathsSearch"
363 .Vb 1
364 \& $PathsTraversal\->PerformPathsSearch($StartVertexID, [$AllowCycles]);
365 .Ve
366 .Sp
367 Searches paths starting from \fIStartVertexID\fR with no sharing of edges in paths traversed and
368 returns \fIPathsTraversal\fR.
369 .Sp
370 By default, cycles are included in paths. A path containing a cycle is terminated at a vertex
371 completing the cycle.
372 .IP "\fBPerformPathsSearchBetween\fR" 4
373 .IX Item "PerformPathsSearchBetween"
374 .Vb 1
375 \& $PathsTraversal\->PerformPathsSearchBetween($StartVertexID, $EndVertexID);
376 .Ve
377 .Sp
378 Searches paths between \fIStartVertexID\fR and \fIEndVertexID\fR and returns \fIPathsTraversal\fR
379 .IP "\fBPerformPathsSearchWithLength\fR" 4
380 .IX Item "PerformPathsSearchWithLength"
381 .Vb 2
382 \& $PathsTraversal\->PerformPathsSearchWithLength($StartVertexID, $Length,
383 \& [$AllowCycles]);
384 .Ve
385 .Sp
386 Searches paths starting from \fIStartVertexID\fR with length \fILength\fR with no sharing of
387 edges in paths traversed and returns \fIPathsTraversal\fR.
388 .Sp
389 By default, cycles are included in paths. A path containing a cycle is terminated at a vertex
390 completing the cycle.
391 .IP "\fBPerformPathsSearchWithLengthUpto\fR" 4
392 .IX Item "PerformPathsSearchWithLengthUpto"
393 .Vb 2
394 \& $PathsTraversal\->PerformPathsSearchWithLengthUpto($StartVertexID, $Length,
395 \& [$AllowCycles]);
396 .Ve
397 .Sp
398 Searches paths starting from \fIStartVertexID\fR with length upto \fILength\fR with no sharing of
399 edges in paths traversed and returns \fIPathsTraversal\fR.
400 .Sp
401 By default, cycles are included in paths. A path containing a cycle is terminated at a vertex
402 completing the cycle.
403 .IP "\fBStringifyPaths\fR" 4
404 .IX Item "StringifyPaths"
405 .Vb 1
406 \& $String = $PathsTraversal\->StringifyPaths();
407 .Ve
408 .Sp
409 Returns a string containing information about traversed paths in \fIPathsTraversal\fR object
410 .IP "\fBStringifyPathsTraversal\fR" 4
411 .IX Item "StringifyPathsTraversal"
412 .Vb 1
413 \& $String = $PathsTraversal\->StringifyPathsTraversal();
414 .Ve
415 .Sp
416 Returns a string containing information about \fIPathsTraversal\fR object.
417 .IP "\fBStringifyVerticesDepth\fR" 4
418 .IX Item "StringifyVerticesDepth"
419 .Vb 1
420 \& $String = $PathsTraversal\->StringifyVerticesDepth();
421 .Ve
422 .Sp
423 Returns a string containing information about depth of vertices found during search by
424 \&\fIPathsTraversal\fR object.
425 .IP "\fBStringifyVerticesNeighborhoods\fR" 4
426 .IX Item "StringifyVerticesNeighborhoods"
427 .Vb 1
428 \& $String = $PathsTraversal\->StringifyVerticesNeighborhoods();
429 .Ve
430 .Sp
431 Returns a string containing information about neighborhoods of vertices found during search by
432 \&\fIPathsTraversal\fR object.
433 .IP "\fBStringifyVerticesNeighborhoodsWithSuccessors\fR" 4
434 .IX Item "StringifyVerticesNeighborhoodsWithSuccessors"
435 .Vb 1
436 \& $String = $PathsTraversal\->StringifyVerticesNeighborhoodsWithSuccessors();
437 .Ve
438 .Sp
439 Returns a string containing information about neighborhoods of vertices along with their successors
440 found during search by \fIPathsTraversal\fR object.
441 .IP "\fBStringifyVerticesPredecessors\fR" 4
442 .IX Item "StringifyVerticesPredecessors"
443 .Vb 1
444 \& $String = $PathsTraversal\->StringifyVerticesPredecessors();
445 .Ve
446 .Sp
447 Returns a string containing information about predecessors of vertices found during search by
448 \&\fIPathsTraversal\fR object.
449 .IP "\fBStringifyVerticesRoots\fR" 4
450 .IX Item "StringifyVerticesRoots"
451 .Vb 1
452 \& $String = $PathsTraversal\->StringifyVerticesRoots();
453 .Ve
454 .Sp
455 Returns a string containing information about roots of vertices found during search by
456 \&\fIPathsTraversal\fR object.
457 .IP "\fBStringifyVerticesSuccessors\fR" 4
458 .IX Item "StringifyVerticesSuccessors"
459 .Vb 1
460 \& $String = $PathsTraversal\->StringifyVerticesSuccessors();
461 .Ve
462 .Sp
463 Returns a string containing information about successors of vertices found during search by
464 \&\fIPathsTraversal\fR object.
465 .SH "AUTHOR"
466 .IX Header "AUTHOR"
467 Manish Sud <msud@san.rr.com>
468 .SH "SEE ALSO"
469 .IX Header "SEE ALSO"
470 Graph.pm, Path.pm
471 .SH "COPYRIGHT"
472 .IX Header "COPYRIGHT"
473 Copyright (C) 2015 Manish Sud. All rights reserved.
474 .PP
475 This file is part of MayaChemTools.
476 .PP
477 MayaChemTools is free software; you can redistribute it and/or modify it under
478 the terms of the \s-1GNU\s0 Lesser General Public License as published by the Free
479 Software Foundation; either version 3 of the License, or (at your option)
480 any later version.