comparison mayachemtools/docs/modules/man3/Matrix.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 "MATRIX 1"
127 .TH MATRIX 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 Matrix
134 .SH "SYNOPSIS"
135 .IX Header "SYNOPSIS"
136 use Matrix;
137 .PP
138 use Matrix qw(:all);
139 .SH "DESCRIPTION"
140 .IX Header "DESCRIPTION"
141 \&\fBMatrix\fR class provides the following methods:
142 .PP
143 new, AddColumnValues, AddRowValues, Copy, GetColumnValues,
144 GetColumnValuesAsColumnMatrix, GetColumnValuesAsRowMatrix,
145 GetColumnValuesAsString, GetColumnValuesAsVector, GetDiagonalValues,
146 GetDiagonalValuesAsColumnMatrix, GetDiagonalValuesAsRowMatrix,
147 GetDiagonalValuesAsString, GetDiagonalValuesAsVector, GetDimension,
148 GetMatrixValuesReference, GetNumOfColumns, GetNumOfRows, GetRowValues,
149 GetRowValuesAsColumnMatrix, GetRowValuesAsRowMatrix, GetRowValuesAsString,
150 GetRowValuesAsVector, GetSize, GetValue, IdentityMatrix, IsAntiSymmetric,
151 IsBiDiagonal, IsDiagonal, IsIdentity, IsLeftTriangular, IsLowerBiDiagonal,
152 IsLowerTriangular, IsLowerUniTriangular, IsMatrix, IsNegative, IsPositive,
153 IsRightTriangular, IsSkewSymmetric, IsSquare, IsStrictlyLowerTriangular,
154 IsStrictlyUpperTriangular, IsSymmetric, IsTriDiagonal, IsUnit,
155 IsUnitLowerTriangular, IsUnitUpperTriangular, IsUpperBiDiagonal,
156 IsUpperTriangular, IsUpperUniTriangular, NewFromColumns, NewFromDiagonal,
157 NewFromRows, One, SetAllValues, SetColumnValues, SetDiagonalValues,
158 SetMatrixPrintStyle, SetRowValues, SetValue, SetValuePrintFormat, StringifyMatrix,
159 Transpose, UnitMatrix, Zero, ZeroMatrix
160 .PP
161 The following functions are available:
162 .PP
163 IsMatrix, IdentityMatrix, NewFromRows, NewFromColumns, NewFromDiagonal,
164 UnitMatrix, ZeroMatrix
165 .PP
166 The following operators are overloaded:
167 .PP
168 .Vb 6
169 \& "" bool !
170 \& @{}
171 \& + \- * / ** %
172 \& == != < <= > >=
173 \& neg
174 \& abs exp log sqrt cos sin
175 .Ve
176 .PP
177 The matrix row and column indicies start from zero.
178 .SS "\s-1FUNCTIONS\s0"
179 .IX Subsection "FUNCTIONS"
180 .IP "\fBnew\fR" 4
181 .IX Item "new"
182 .Vb 1
183 \& $NewMatrix = $Matrix\->new($NumOfRows, $NumOfCols);
184 .Ve
185 .Sp
186 Creates a new \fBMatrix\fR of size \fINumOfRows x NumOfCol\fR and returns \fBNewMatrix\fR
187 object.
188 .IP "\fBAddColumnValues\fR" 4
189 .IX Item "AddColumnValues"
190 .Vb 4
191 \& $Matrix\->AddColumnValues(@Values);
192 \& $Matrix\->AddColumnValues(\e@Values);
193 \& $Matrix\->AddColumnValues($VectorObject);
194 \& $Matrix\->AddColumnValues("Value1 Value2 Value3 ...");
195 .Ve
196 .Sp
197 Adds column values to \fIMatrix\fR using an array, reference to an array, another vector, or space
198 delimited value string and returns \fIMatrix\fR.
199 .IP "\fBAddRowValues\fR" 4
200 .IX Item "AddRowValues"
201 .Vb 4
202 \& $Matrix\->AddRowValues(@Values);
203 \& $Matrix\->AddRowValues(\e@Values);
204 \& $Matrix\->AddRowValues($VectorObject);
205 \& $Matrix\->AddRowValues("Value1 Value2 Value3 ...");
206 .Ve
207 .Sp
208 Adds row values to \fIMatrix\fR using an array, reference to an array, another vector, or space
209 delimited value string and returns \fBMatrix\fR.
210 .IP "\fBCopy\fR" 4
211 .IX Item "Copy"
212 .Vb 1
213 \& $NewMatrix = $Matrix\->Copy();
214 .Ve
215 .Sp
216 Creates a copy of \fIMatrix\fR and returns \fBNewMatrix\fR.
217 .IP "\fBGetColumnValues\fR" 4
218 .IX Item "GetColumnValues"
219 .Vb 2
220 \& @Values = $Matrix\->GetColumnValues($ColIndex);
221 \& $ValueCount = $Matrix\->GetColumnValues($ColIndex);
222 .Ve
223 .Sp
224 Returns an array containing column value specified using \fIColIndex\fR with column index
225 starting at 0. In scalar context, number of column values is returned.
226 .IP "\fBGetColumnValuesAsColumnMatrix\fR" 4
227 .IX Item "GetColumnValuesAsColumnMatrix"
228 .Vb 1
229 \& $ColumnMatrix = $Matrix\->GetColumnValuesAsColumnMatrix($ColIndex);
230 .Ve
231 .Sp
232 Returns a new \fBColumnMatrix\fR containing column values specified using \fIColIndex\fR with
233 column index starting at 0.
234 .IP "\fBGetColumnValuesAsRowMatrix\fR" 4
235 .IX Item "GetColumnValuesAsRowMatrix"
236 .Vb 1
237 \& $RowMatrix = $Matrix\->GetColumnValuesAsRowMatrix($ColIndex);
238 .Ve
239 .Sp
240 Returns a new \fBRowMatrix\fR containing column values specified using \fIColIndex\fR with
241 column index starting at 0.
242 .IP "\fBGetColumnValuesAsString\fR" 4
243 .IX Item "GetColumnValuesAsString"
244 .Vb 1
245 \& $ColumnValuesString = $Matrix\->GetColumnValuesAsString($ColIndex);
246 .Ve
247 .Sp
248 Returns a space delimited \fBColumnValuesString\fR column values specified using \fIColIndex\fR with
249 column index starting at 0.
250 .IP "\fBGetColumnValuesAsVector\fR" 4
251 .IX Item "GetColumnValuesAsVector"
252 .Vb 1
253 \& $ColumnVector = $Matrix\->GetColumnValuesAsVector($ColIndex);
254 .Ve
255 .Sp
256 Returns a new \fBColumnVector\fR column values specified using \fIRowIndex\fR with
257 column index starting at 0.
258 .IP "\fBGetDiagonalValues\fR" 4
259 .IX Item "GetDiagonalValues"
260 .Vb 2
261 \& @Values = $Matrix\->GetDiagonalValues();
262 \& $ValueCount = $Matrix\->GetDiagonalValues();
263 .Ve
264 .Sp
265 Returns an array containing diagonal values. In scalar context, number of diagonal
266 values is returned.
267 .IP "\fBGetDiagonalValuesAsColumnMatrix\fR" 4
268 .IX Item "GetDiagonalValuesAsColumnMatrix"
269 .Vb 1
270 \& $ColumnMatrix = $Matrix\->GetDiagonalValuesAsColumnMatrix();
271 .Ve
272 .Sp
273 Returns a new \fBColumnMatrix\fR containing diagonal values corresponding to \fIMatrix\fR.
274 .IP "\fBGetDiagonalValuesAsRowMatrix\fR" 4
275 .IX Item "GetDiagonalValuesAsRowMatrix"
276 .Vb 1
277 \& $RowMatrix = $Matrix\->GetDiagonalValuesAsRowMatrix();
278 .Ve
279 .Sp
280 Returns a new \fBRowMatrix\fR containing diagonal values corresponding to \fIMatrix\fR.
281 .IP "\fBGetDiagonalValuesAsString\fR" 4
282 .IX Item "GetDiagonalValuesAsString"
283 .Vb 1
284 \& $DiagonalValuesString = $Matrix\->GetDiagonalValuesAsString();
285 .Ve
286 .Sp
287 Returns a space delimited \fBDiagonalValuesString\fR containing diagonal values corresponding to
288 \&\fIMatrix\fR.
289 .IP "\fBGetDiagonalValuesAsVector\fR" 4
290 .IX Item "GetDiagonalValuesAsVector"
291 .Vb 1
292 \& $DiagonalVector = $Matrix\->GetDiagonalValuesAsVector();
293 .Ve
294 .Sp
295 Returns a new \fBDiagonalVector\fR containing diagonal values corresponding to \fIMatrix\fR.
296 .IP "\fBGetDimension\fR" 4
297 .IX Item "GetDimension"
298 .Vb 1
299 \& ($NumOfRows, $NumOfCols) = $Matrix\->GetDimension();
300 .Ve
301 .Sp
302 Returns size of \fIMatrix\fR.
303 .IP "\fBGetMatrixValuesReference\fR" 4
304 .IX Item "GetMatrixValuesReference"
305 .Vb 1
306 \& $ValuesRef = $Matrix\->GetMatrixValuesReference();
307 .Ve
308 .Sp
309 Returns a reference to array containing rows and column values corresponding to \fIMatrix\fR.
310 .IP "\fBGetNumOfColumns\fR" 4
311 .IX Item "GetNumOfColumns"
312 .Vb 1
313 \& $NumOfCols = $Matrix\->GetNumOfColumns();
314 .Ve
315 .Sp
316 Returns \fBNumOfCols\fR in \fIMatrix\fR.
317 .IP "\fBGetNumOfRows\fR" 4
318 .IX Item "GetNumOfRows"
319 .Vb 1
320 \& $NumOfRows = $Matrix\->GetNumOfRows();
321 .Ve
322 .Sp
323 Returns \fBNumOfRows\fR in \fIMatrix\fR.
324 .IP "\fBGetRowValues\fR" 4
325 .IX Item "GetRowValues"
326 .Vb 2
327 \& @Values = $Matrix\->GetRowValues($RowIndex);
328 \& $ValueCount = $Matrix\->GetRowValues($RowIndex);
329 .Ve
330 .Sp
331 Returns an array containing row value specified using \fIRowIndex\fR with row index
332 starting at 0. In scalar context, number of row values is returned.
333 .IP "\fBGetRowValuesAsColumnMatrix\fR" 4
334 .IX Item "GetRowValuesAsColumnMatrix"
335 .Vb 1
336 \& $ColumnMatrix = $Matrix\->GetRowValuesAsColumnMatrix($RowIndex);
337 .Ve
338 .Sp
339 Returns a new \fBColumnMatrix\fR containing row values specified using \fIRowIndex\fR with
340 column index starting at 0.
341 .IP "\fBGetRowValuesAsRowMatrix\fR" 4
342 .IX Item "GetRowValuesAsRowMatrix"
343 .Vb 1
344 \& $RowMatrix = $Matrix\->GetRowValuesAsRowMatrix($RowIndex);
345 .Ve
346 .Sp
347 Returns a new \fBRowMatrix\fR containing row values specified using \fIRowIndex\fR with
348 row index starting at 0.
349 .IP "\fBGetRowValuesAsString\fR" 4
350 .IX Item "GetRowValuesAsString"
351 .Vb 1
352 \& $RowValuesString = $Matrix\->GetRowValuesAsString($RowIndex);
353 .Ve
354 .Sp
355 Returns a space delimited \fBRowValuesString\fR row values specified using \fIRowIndex\fR with
356 row index starting at 0.
357 .IP "\fBGetRowValuesAsVector\fR" 4
358 .IX Item "GetRowValuesAsVector"
359 .Vb 1
360 \& $RowVector = $Matrix\->GetColumnValuesAsVector($RowIndex);
361 .Ve
362 .Sp
363 Returns a new \fBRowVector\fR row values specified using \fIRowIndex\fR with
364 row index starting at 0.
365 .IP "\fBGetSize\fR" 4
366 .IX Item "GetSize"
367 .Vb 1
368 \& ($NumOfRows, $NumOfCols) = $Matrix\->GetSize();
369 .Ve
370 .Sp
371 Returns size of \fIMatrix\fR.
372 .IP "\fBGetValue\fR" 4
373 .IX Item "GetValue"
374 .Vb 1
375 \& $Value = $Matrix\->GetValue($RowIndex, $ColIndex, [$SkipIndexCheck]);
376 .Ve
377 .Sp
378 Returns \fBValue\fR of \fIMatrix\fR element specified using \fIRowIndex\fR and \fIColIndex\fR with indicies
379 starting at 0 with optional validation of specified index values.
380 .IP "\fBIdentityMatrix\fR" 4
381 .IX Item "IdentityMatrix"
382 .Vb 3
383 \& $NewIdentityMatrix = $Matrix\->IdentityMatrix($NumOfRows, $NumOfCols);
384 \& $NewIdentityMatrix = Matrix::IdentityMatrix($NumOfRows, $NumOfCols);
385 \& $NewIdentityMatrix = Matrix::IdentityMatrix();
386 .Ve
387 .Sp
388 Creates a new \fBIdentityMatrix\fR of specified size \fINumOfRows x NumOfCol\fR or of size 3 x 3 and
389 returns \fBNewIdentityMatrix\fR object.
390 .IP "\fBIsAntiSymmetric\fR" 4
391 .IX Item "IsAntiSymmetric"
392 .Vb 1
393 \& $Status = $Matrix\->IsAntiSymmetric();
394 .Ve
395 .Sp
396 Returns 1 or 0 based on whether \fIMatrix\fR is an anti symmetric matrix.
397 .Sp
398 A matrix is an anti symmetric matrix:
399 .Sp
400 .Vb 4
401 \& . It\*(Aqs a square matrix
402 \& . Its elements are asymmetric with respect to main diagonal. In other words,
403 \& elements below the main diagonal are equal to the negative of elements above
404 \& the main diagonal.
405 .Ve
406 .Sp
407 Transpose of an anti symmetric matrix equals the negative of the matrix.
408 .IP "\fBIsBiDiagonal\fR" 4
409 .IX Item "IsBiDiagonal"
410 .Vb 1
411 \& $Status = $Matrix\->IsBiDiagonal();
412 .Ve
413 .Sp
414 Returns 1 or 0 based on whether \fIMatrix\fR is upper or lower bidiagonal matrix.
415 .IP "\fBIsDiagonal\fR" 4
416 .IX Item "IsDiagonal"
417 .Vb 1
418 \& $Status = $Matrix\->IsDiagonal();
419 .Ve
420 .Sp
421 Returns 1 or 0 based on whether \fIMatrix\fR is a diagonal matrix.
422 .Sp
423 A matrix is a diagonal matrix:
424 .Sp
425 .Vb 3
426 \& . It\*(Aqs a square matrix
427 \& . All its off\-diagonal elements are zeros and its diagonal elements may or may not
428 \& be zeros
429 .Ve
430 .IP "\fBIsIdentity\fR" 4
431 .IX Item "IsIdentity"
432 .Vb 1
433 \& $Status = $Matrix\->IsIdentity();
434 .Ve
435 .Sp
436 Returns 1 or 0 based on whether \fIMatrix\fR is an identity matrix.
437 .IP "\fBIsLeftTriangular\fR" 4
438 .IX Item "IsLeftTriangular"
439 .Vb 1
440 \& $Status = $Matrix\->IsLeftTriangular();
441 .Ve
442 .Sp
443 Returns 1 or 0 based on whether \fIMatrix\fR is a left or lower matrix.
444 .Sp
445 A matrix is a left triangular matrix:
446 .Sp
447 .Vb 2
448 \& . It\*(Aqs a square matrix
449 \& . All its entries above the main diagonal are zero
450 .Ve
451 .IP "\fBIsLowerBiDiagonal\fR" 4
452 .IX Item "IsLowerBiDiagonal"
453 .Vb 1
454 \& $Status = $Matrix\->IsLowerBiDiagonal();
455 .Ve
456 .Sp
457 Returns 1 or 0 based on whether \fIMatrix\fR is a lower bidiagonal matrix.
458 .Sp
459 A matrix is a lower bidiagonal matrix:
460 .Sp
461 .Vb 3
462 \& . It\*(Aqs a square matrix
463 \& . All its main diagonal and lower diagonal elements are non\-zeros and all its
464 \& other elements are zeros
465 .Ve
466 .IP "\fBIsLowerTriangular\fR" 4
467 .IX Item "IsLowerTriangular"
468 .Vb 1
469 \& $Status = $Matrix\->IsLowerTriangular();
470 .Ve
471 .Sp
472 Returns 1 or 0 based on whether \fIMatrix\fR is a left or lower triangular matrix.
473 .Sp
474 A matrix is a lower triangular matrix:
475 .Sp
476 .Vb 2
477 \& . It\*(Aqs a square matrix
478 \& . All its entries above the main diagonal are zero
479 .Ve
480 .IP "\fBIsLowerUniTriangular\fR" 4
481 .IX Item "IsLowerUniTriangular"
482 .Vb 1
483 \& $Status = $Matrix\->IsLowerUniTriangular();
484 .Ve
485 .Sp
486 Returns 1 or 0 based on whether \fIMatrix\fR is a lower triangular matrix.
487 .IP "\fBIsMatrix\fR" 4
488 .IX Item "IsMatrix"
489 .Vb 1
490 \& $Status = Matrix::IsMatrix($Object);
491 .Ve
492 .Sp
493 Returns 1 or 0 based on whether \fIObject\fR is a \fBMatrix\fR object.
494 .IP "\fBIsNegative\fR" 4
495 .IX Item "IsNegative"
496 .Vb 1
497 \& $Status = $Matrix\->IsNegative();
498 .Ve
499 .Sp
500 Returns 1 or 0 based on whether \fIMatrix\fR is a negative matrix containing only values
501 less than or equal to zero.
502 .IP "\fBIsPositive\fR" 4
503 .IX Item "IsPositive"
504 .Vb 1
505 \& $Status = $Matrix\->IsPositive();
506 .Ve
507 .Sp
508 Returns 1 or 0 based on whether \fIMatrix\fR is a negative matrix containing only values
509 greater than or equal to zero.
510 .IP "\fBIsRightTriangular\fR" 4
511 .IX Item "IsRightTriangular"
512 .Vb 1
513 \& $Status = $Matrix\->IsRightTriangular();
514 .Ve
515 .Sp
516 Returns 1 or 0 based on whether \fIMatrix\fR is a right or upper triangular matrix.
517 .IP "\fBIsSkewSymmetric\fR" 4
518 .IX Item "IsSkewSymmetric"
519 .Vb 1
520 \& $Status = $Matrix\->IsSkewSymmetric();
521 .Ve
522 .Sp
523 Returns 1 or 0 based on whether \fIMatrix\fR is a skew or anti symmetric matrix.
524 .IP "\fBIsSquare\fR" 4
525 .IX Item "IsSquare"
526 .Vb 1
527 \& $Status = $Matrix\->IsSquare();
528 .Ve
529 .Sp
530 Returns 1 or 0 based on whether \fIMatrix\fR is a square matrix containing equal
531 number of rows and columns.
532 .IP "\fBIsStrictlyLowerTriangular\fR" 4
533 .IX Item "IsStrictlyLowerTriangular"
534 .Vb 1
535 \& $Status = $Matrix\->IsStrictlyLowerTriangular();
536 .Ve
537 .Sp
538 Returns 1 or 0 based on whether \fIMatrix\fR is a strictly lower triangular matrix.
539 .Sp
540 A matrix is a strictly lower triangular matrix:
541 .Sp
542 .Vb 2
543 \& . It\*(Aqs a square matrix
544 \& . All its entries on and above the main diagonal are zero
545 .Ve
546 .IP "\fBIsStrictlyUpperTriangular\fR" 4
547 .IX Item "IsStrictlyUpperTriangular"
548 .Vb 1
549 \& $Status = $Matrix\->IsStrictlyUpperTriangular();
550 .Ve
551 .Sp
552 Returns 1 or 0 based on whether \fIMatrix\fR is a strictly upper triangular matrix.
553 .Sp
554 A matrix is a strictly upper triangular matrix:
555 .Sp
556 .Vb 2
557 \& . It\*(Aqs a square matrix
558 \& . All its entries on and below the main diagonal are zero
559 .Ve
560 .IP "\fBIsSymmetric\fR" 4
561 .IX Item "IsSymmetric"
562 .Vb 1
563 \& $Status = $Matrix\->IsSymmetric();
564 .Ve
565 .Sp
566 Returns 1 or 0 based on whether \fIMatrix\fR is a symmetric matrix.
567 .Sp
568 A matrix is a symmetric matrix:
569 .Sp
570 .Vb 4
571 \& . It\*(Aqs a square matrix
572 \& . Its elements are symmetric with respect to main diagonal. In other words,
573 \& elements below the main diagonal are equal to the elements above the main
574 \& diagonal.
575 .Ve
576 .Sp
577 Transpose of a symmetric matrix equals the matrix itself.
578 .IP "\fBIsTriDiagonal\fR" 4
579 .IX Item "IsTriDiagonal"
580 .Vb 1
581 \& $Status = $Matrix\->IsTriDiagonal();
582 .Ve
583 .Sp
584 Returns 1 or 0 based on whether \fIMatrix\fR is a tridiagonal matrix.
585 .Sp
586 A matrix is a tribidiagonal matrix:
587 .Sp
588 .Vb 3
589 \& . It\*(Aqs a square matrix
590 \& . All its main diagonal, upper diagonal, and lower diagonal elements are non\-zeros and all its
591 \& other elements are zeros
592 .Ve
593 .IP "\fBIsUnit\fR" 4
594 .IX Item "IsUnit"
595 .Vb 1
596 \& $Status = $Matrix\->IsUnit();
597 .Ve
598 .Sp
599 Returns 1 or 0 based on whether \fIMatrix\fR is a unit matrix.
600 .Sp
601 A matrix is a unit matrix:
602 .Sp
603 .Vb 2
604 \& . It\*(Aqs a square matrix
605 \& . All its diagonal elements are ones and its off\-diagonal elements are zeros
606 .Ve
607 .IP "\fBIsUnitLowerTriangular\fR" 4
608 .IX Item "IsUnitLowerTriangular"
609 .Vb 1
610 \& $Status = $Matrix\->IsUnitLowerTriangular();
611 .Ve
612 .Sp
613 Returns 1 or 0 based on whether \fIMatrix\fR is an unit lower triangular matrix.
614 .Sp
615 A matrix is an unit lower triangular matrix:
616 .Sp
617 .Vb 3
618 \& . It\*(Aqs a square matrix
619 \& . All its entries main diagonal are one
620 \& . All its entries above the main diagonal are zero
621 .Ve
622 .IP "\fBIsUnitUpperTriangular\fR" 4
623 .IX Item "IsUnitUpperTriangular"
624 .Vb 1
625 \& $Status = $Matrix\->IsUnitUpperTriangular();
626 .Ve
627 .Sp
628 Returns 1 or 0 based on whether \fIMatrix\fR is an unit upper triangular matrix.
629 .Sp
630 A matrix is an unit upper triangular matrix:
631 .Sp
632 .Vb 3
633 \& . It\*(Aqs a square matrix
634 \& . All its entries main diagonal are one
635 \& . All its entries below the main diagonal are zero
636 .Ve
637 .IP "\fBIsUpperBiDiagonal\fR" 4
638 .IX Item "IsUpperBiDiagonal"
639 .Vb 1
640 \& $Status = $Matrix\->IsUpperBiDiagonal();
641 .Ve
642 .Sp
643 Returns 1 or 0 based on whether \fIMatrix\fR is an upper bidiagonal matrix.
644 .Sp
645 A matrix is an upper bidiagonal matrix:
646 .Sp
647 .Vb 3
648 \& . It\*(Aqs a square matrix
649 \& . All its main diagonal and upper diagonal elements are non\-zeros and all its
650 \& other elements are zeros
651 .Ve
652 .IP "\fBIsUpperTriangular\fR" 4
653 .IX Item "IsUpperTriangular"
654 .Vb 1
655 \& $Status = $Matrix\->IsUpperTriangular();
656 .Ve
657 .Sp
658 Returns 1 or 0 based on whether \fIMatrix\fR is a right or upper triangular matrix.
659 .Sp
660 A matrix is an upper triangular matrix:
661 .Sp
662 .Vb 2
663 \& . It\*(Aqs a square matrix
664 \& . All its entries below the main diagonal are zero
665 .Ve
666 .IP "\fBIsUpperUniTriangular\fR" 4
667 .IX Item "IsUpperUniTriangular"
668 .Vb 1
669 \& $Status = $Matrix\->IsUpperUniTriangular();
670 .Ve
671 .Sp
672 Returns 1 or 0 based on whether \fIMatrix\fR is a right or upper triangular matrix.
673 .IP "\fBNewFromColumns\fR" 4
674 .IX Item "NewFromColumns"
675 .Vb 3
676 \& $NewMatrix = Matrix::NewFromColumns($Col1Vector, $Col2Vector, ...);
677 \& $NewMatrix = Matrix::NewFromColumns($Col1ValuesRef, $Col2ValuesRef, ...);
678 \& $NewMatrix = Matrix::NewFromColumns("Val1 Val2 ...", "Val1 Val2", ...);
679 \&
680 \& $NewMatrix = $Matrix\->NewFromColumns($Col1Vector, $Col2Vector, ...);
681 \& $NewMatrix = $Matrix\->NewFromColumns($Col1ValuesRef, $Col2ValuesRef, ...);
682 \& $NewMatrix = $Matrix\->NewFromColumns("Val1 Val2 ...", "Val1 Val2", ...);
683 .Ve
684 .Sp
685 Creates a new \fBMatrix\fR using specified column values and returns \fBNewMatrix\fR object.
686 .Sp
687 The column values can be specified in one of the following formats:
688 .Sp
689 .Vb 3
690 \& . List of vector objects
691 \& . References to list of values
692 \& . List of strings containing columns values delimited by space
693 .Ve
694 .Sp
695 Each column must contain the same number of values.
696 .IP "\fBNewFromDiagonal\fR" 4
697 .IX Item "NewFromDiagonal"
698 .Vb 3
699 \& $NewMatrix = Matrix::NewFromDiagonal($DiagonalVector);
700 \& $NewMatrix = Matrix::NewFromDiagonal($DiagonalValuesRef);
701 \& $NewMatrix = Matrix::NewFromDiagonal("Val1 Val2 ...");
702 \&
703 \& $NewMatrix = Matrix\->NewFromDiagonal($DiagonalVector);
704 \& $NewMatrix = Matrix\->NewFromDiagonal($DiagonalValuesRef);
705 \& $NewMatrix = Matrix\->NewFromDiagonal("Val1 Val2 ...");
706 .Ve
707 .Sp
708 Creates a new \fBMatrix\fR using specified diagonal values and returns \fBNewMatrix\fR object.
709 .Sp
710 The column values can be specified in one of the following formats:
711 .Sp
712 .Vb 3
713 \& . A vector object
714 \& . Reference to list of values
715 \& . Strings containing diagonal values delimited by space
716 .Ve
717 .IP "\fBNewFromRows\fR" 4
718 .IX Item "NewFromRows"
719 .Vb 3
720 \& $NewMatrix = Matrix::NewFromRows($Row1Vector, $RowVector, ...);
721 \& $NewMatrix = Matrix::NewFromRows($Row1ValuesRef, $Row2ValuesRef, ...);
722 \& $NewMatrix = Matrix::NewFromRows("Val1 Val2 ...", "Val1 Val2", ...);
723 \&
724 \& $NewMatrix = $Matrix\->NewFromRows($Row1Vector, $Row2Vector, ...);
725 \& $NewMatrix = $Matrix\->NewFromRows($Row1ValuesRef, $Row2ValuesRef, ...);
726 \& $NewMatrix = $Matrix\->NewFromRows("Val1 Val2 ...", "Val1 Val2", ...);
727 .Ve
728 .Sp
729 Creates a new \fBMatrix\fR using specified row values and returns \fBNewMatrix\fR object.
730 .Sp
731 The row values can be specified in one of the following formats:
732 .Sp
733 .Vb 3
734 \& . List of vector objects
735 \& . References to list of values
736 \& . List of strings containing columns values delimited by space
737 .Ve
738 .Sp
739 Each row must contain the same number of values.
740 .IP "\fBOne\fR" 4
741 .IX Item "One"
742 .Vb 1
743 \& $Matrix\->One();
744 .Ve
745 .Sp
746 Sets values of all \fIMatrix\fR elements to 1 and returns \fIMatrix\fR.
747 .IP "\fBSetAllValues\fR" 4
748 .IX Item "SetAllValues"
749 .Vb 1
750 \& $Matrix\->SetAllValues($Value);
751 .Ve
752 .Sp
753 Sets values of all \fIMatrix\fR elements to specified \fIValue\fR and returns \fIMatrix\fR.
754 .IP "\fBSetColumnValues\fR" 4
755 .IX Item "SetColumnValues"
756 .Vb 4
757 \& $Matrix\->SetColumnValues($ColIndex, @Values);
758 \& $Matrix\->SetColumnValues($ColIndex, \e@Values);
759 \& $Matrix\->SetColumnValues($ColIndex, $VectorObject);
760 \& $Matrix\->SetColumnValues($ColIndex, "Value1 Value2 Value3 ...");
761 .Ve
762 .Sp
763 Sets column values of a specified \fIColIndex\fR of \fIMatrix\fR using an array, reference to an array,
764 another vector, or space delimited value string and returns \fIMatrix\fR.
765 .IP "\fBSetDiagonalValues\fR" 4
766 .IX Item "SetDiagonalValues"
767 .Vb 4
768 \& $Matrix\->SetDiagonalValues(@Values);
769 \& $Matrix\->SetDiagonalValues(\e@Values);
770 \& $Matrix\->SetDiagonalValues($VectorObject);
771 \& $Matrix\->SetDiagonalValues("Value1 Value2 Value3 ...");
772 .Ve
773 .Sp
774 Sets values of the diagonal in square \fIMatrix\fR and returns \fIMatrix\fR.
775 .IP "\fBSetMatrixPrintStyle\fR" 4
776 .IX Item "SetMatrixPrintStyle"
777 .Vb 2
778 \& $Matrix\->SetMatrixPrintStyle($MatrixStyle);
779 \& $Matrix::SetMatrixPrintStyle($MatrixStyle);
780 .Ve
781 .Sp
782 Sets print style for matrix rows for an individual object or the whole class during StringifyMatrix
783 operation. Possible \fIMatrixStyle\fR values: \fIAllRowsInOneLine, OneRowPerLine\fR. Default:
784 \&\fIAllRowsInOneLine\fR.
785 .IP "\fBSetRowValues\fR" 4
786 .IX Item "SetRowValues"
787 .Vb 4
788 \& $Matrix\->SetRowValues($ColIndex, @Values);
789 \& $Matrix\->SetRowValues($ColIndex, \e@Values);
790 \& $Matrix\->SetRowValues($ColIndex, $VectorObjext);
791 \& $Matrix\->SetRowValues($ColIndex, "Value1 Value2 Value3 ...");
792 .Ve
793 .Sp
794 Sets row values of a specified \fIRowIndex\fR of \fIMatrix\fR using an array, reference to an array,
795 another vector, or space delimited value string and returns \fIMatrix\fR.
796 .IP "\fBSetValue\fR" 4
797 .IX Item "SetValue"
798 .Vb 1
799 \& $Matrix\->SetValue($RowIndex, $ColIndex, $Value, [$SkipIndexCheck]);
800 .Ve
801 .Sp
802 Sets \fBValue\fR of \fIMatrix\fR element specified using \fIRowIndex\fR and \fIColIndex\fR with indicies
803 starting at 0 with optional validation of specified index values and return \fIMatrix\fR.
804 .IP "\fBSetValuePrintFormat\fR" 4
805 .IX Item "SetValuePrintFormat"
806 .Vb 2
807 \& $Matrix\->SetValuePrintFormat($ValueFormat);
808 \& $Matrix::SetValuePrintFormat($ValueFormat);
809 .Ve
810 .Sp
811 Sets value print format for an individual object or the whole class during StringifyMatrix operation
812 and returns \fIMatrix\fR.
813 .IP "\fBStringifyMatrix\fR" 4
814 .IX Item "StringifyMatrix"
815 .Vb 1
816 \& $String = $Matrix\->StringifyMatrix();
817 .Ve
818 .Sp
819 Returns a string containing information about \fIMatrix\fR object.
820 .IP "\fBTranspose\fR" 4
821 .IX Item "Transpose"
822 .Vb 1
823 \& $Matrix\->Transpose();
824 .Ve
825 .Sp
826 Transposes \fIMatrix\fR by swaping rows with columns and returns \fIMatrix\fR.
827 .IP "\fBUnitMatrix\fR" 4
828 .IX Item "UnitMatrix"
829 .Vb 3
830 \& $NewUnitMatrix = $Matrix::UnitMatrix($NumOfRows, $NumOfCols);
831 \& $NewUnitMatrix = $Matrix::UnitMatrix();
832 \& $NewUnitMatrix = $Matrix\->UnitMatrix($NumOfRows, $NumOfCols);
833 .Ve
834 .Sp
835 Creates a new \fBUnitMatrix\fR of specified size \fINumOfRows x NumOfCol\fR or of size 3 x 3 and
836 returns \fBNewUnitMatrix\fR object.
837 .IP "\fBZero\fR" 4
838 .IX Item "Zero"
839 .Vb 1
840 \& $Matrix\->Zero();
841 .Ve
842 .Sp
843 Sets values of all \fIMatrix\fR elements to 0 and returns \fIMatrix\fR.
844 .IP "\fBZeroMatrix\fR" 4
845 .IX Item "ZeroMatrix"
846 .Vb 3
847 \& $NewZeroMatrix = $Matrix::ZeroMatrix($NumOfRows, $NumOfCols);
848 \& $NewZeroMatrix = $Matrix::ZeroMatrix();
849 \& $NewZeroMatrix = $Matrix\->ZeroMatrix($NumOfRows, $NumOfCols);
850 .Ve
851 .Sp
852 Creates a new \fBZeroMatrix\fR of specified size \fINumOfRows x NumOfCol\fR or of size 3 x 3 and
853 returns \fBNewZeroMatrix\fR object.
854 .SH "AUTHOR"
855 .IX Header "AUTHOR"
856 Manish Sud <msud@san.rr.com>
857 .SH "SEE ALSO"
858 .IX Header "SEE ALSO"
859 Vector.pm
860 .SH "COPYRIGHT"
861 .IX Header "COPYRIGHT"
862 Copyright (C) 2015 Manish Sud. All rights reserved.
863 .PP
864 This file is part of MayaChemTools.
865 .PP
866 MayaChemTools is free software; you can redistribute it and/or modify it under
867 the terms of the \s-1GNU\s0 Lesser General Public License as published by the Free
868 Software Foundation; either version 3 of the License, or (at your option)
869 any later version.