0
|
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.
|