comparison mayachemtools/docs/modules/html/Matrix.html @ 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 <html>
2 <head>
3 <title>MayaChemTools:Documentation:Matrix.pm</title>
4 <meta http-equiv="content-type" content="text/html;charset=utf-8">
5 <link rel="stylesheet" type="text/css" href="../../css/MayaChemTools.css">
6 </head>
7 <body leftmargin="20" rightmargin="20" topmargin="10" bottommargin="10">
8 <br/>
9 <center>
10 <a href="http://www.mayachemtools.org" title="MayaChemTools Home"><img src="../../images/MayaChemToolsLogo.gif" border="0" alt="MayaChemTools"></a>
11 </center>
12 <br/>
13 <div class="DocNav">
14 <table width="100%" border=0 cellpadding=0 cellspacing=2>
15 <tr align="left" valign="top"><td width="33%" align="left"><a href="./MathUtil.html" title="MathUtil.html">Previous</a>&nbsp;&nbsp;<a href="./index.html" title="Table of Contents">TOC</a>&nbsp;&nbsp;<a href="./AtomsCountDescriptors.html" title="AtomsCountDescriptors.html">Next</a></td><td width="34%" align="middle"><strong>Matrix.pm</strong></td><td width="33%" align="right"><a href="././code/Matrix.html" title="View source code">Code</a>&nbsp;|&nbsp;<a href="./../pdf/Matrix.pdf" title="PDF US Letter Size">PDF</a>&nbsp;|&nbsp;<a href="./../pdfgreen/Matrix.pdf" title="PDF US Letter Size with narrow margins: www.changethemargins.com">PDFGreen</a>&nbsp;|&nbsp;<a href="./../pdfa4/Matrix.pdf" title="PDF A4 Size">PDFA4</a>&nbsp;|&nbsp;<a href="./../pdfa4green/Matrix.pdf" title="PDF A4 Size with narrow margins: www.changethemargins.com">PDFA4Green</a></td></tr>
16 </table>
17 </div>
18 <p>
19 </p>
20 <h2>NAME</h2>
21 <p>Matrix</p>
22 <p>
23 </p>
24 <h2>SYNOPSIS</h2>
25 <p>use Matrix;</p>
26 <p>use Matrix qw(:all);</p>
27 <p>
28 </p>
29 <h2>DESCRIPTION</h2>
30 <p><strong>Matrix</strong> class provides the following methods:</p>
31 <p> <a href="#new">new</a>, <a href="#addcolumnvalues">AddColumnValues</a>, <a href="#addrowvalues">AddRowValues</a>, <a href="#copy">Copy</a>, <a href="#getcolumnvalues">GetColumnValues</a>
32 , <a href="#getcolumnvaluesascolumnmatrix">GetColumnValuesAsColumnMatrix</a>, <a href="#getcolumnvaluesasrowmatrix">GetColumnValuesAsRowMatrix</a>
33 , <a href="#getcolumnvaluesasstring">GetColumnValuesAsString</a>, <a href="#getcolumnvaluesasvector">GetColumnValuesAsVector</a>, <a href="#getdiagonalvalues">GetDiagonalValues</a>
34 , <a href="#getdiagonalvaluesascolumnmatrix">GetDiagonalValuesAsColumnMatrix</a>, <a href="#getdiagonalvaluesasrowmatrix">GetDiagonalValuesAsRowMatrix</a>
35 , <a href="#getdiagonalvaluesasstring">GetDiagonalValuesAsString</a>, <a href="#getdiagonalvaluesasvector">GetDiagonalValuesAsVector</a>, <a href="#getdimension">GetDimension</a>
36 , <a href="#getmatrixvaluesreference">GetMatrixValuesReference</a>, <a href="#getnumofcolumns">GetNumOfColumns</a>, <a href="#getnumofrows">GetNumOfRows</a>, <a href="#getrowvalues">GetRowValues</a>
37 , <a href="#getrowvaluesascolumnmatrix">GetRowValuesAsColumnMatrix</a>, <a href="#getrowvaluesasrowmatrix">GetRowValuesAsRowMatrix</a>, <a href="#getrowvaluesasstring">GetRowValuesAsString</a>
38 , <a href="#getrowvaluesasvector">GetRowValuesAsVector</a>, <a href="#getsize">GetSize</a>, <a href="#getvalue">GetValue</a>, <a href="#identitymatrix">IdentityMatrix</a>, <a href="#isantisymmetric">IsAntiSymmetric</a>
39 , <a href="#isbidiagonal">IsBiDiagonal</a>, <a href="#isdiagonal">IsDiagonal</a>, <a href="#isidentity">IsIdentity</a>, <a href="#islefttriangular">IsLeftTriangular</a>, <a href="#islowerbidiagonal">IsLowerBiDiagonal</a>
40 , <a href="#islowertriangular">IsLowerTriangular</a>, <a href="#islowerunitriangular">IsLowerUniTriangular</a>, <a href="#ismatrix">IsMatrix</a>, <a href="#isnegative">IsNegative</a>, <a href="#ispositive">IsPositive</a>
41 , <a href="#isrighttriangular">IsRightTriangular</a>, <a href="#isskewsymmetric">IsSkewSymmetric</a>, <a href="#issquare">IsSquare</a>, <a href="#isstrictlylowertriangular">IsStrictlyLowerTriangular</a>
42 , <a href="#isstrictlyuppertriangular">IsStrictlyUpperTriangular</a>, <a href="#issymmetric">IsSymmetric</a>, <a href="#istridiagonal">IsTriDiagonal</a>, <a href="#isunit">IsUnit</a>
43 , <a href="#isunitlowertriangular">IsUnitLowerTriangular</a>, <a href="#isunituppertriangular">IsUnitUpperTriangular</a>, <a href="#isupperbidiagonal">IsUpperBiDiagonal</a>
44 , <a href="#isuppertriangular">IsUpperTriangular</a>, <a href="#isupperunitriangular">IsUpperUniTriangular</a>, <a href="#newfromcolumns">NewFromColumns</a>, <a href="#newfromdiagonal">NewFromDiagonal</a>
45 , <a href="#newfromrows">NewFromRows</a>, <a href="#one">One</a>, <a href="#setallvalues">SetAllValues</a>, <a href="#setcolumnvalues">SetColumnValues</a>, <a href="#setdiagonalvalues">SetDiagonalValues</a>
46 , <a href="#setmatrixprintstyle">SetMatrixPrintStyle</a>, <a href="#setrowvalues">SetRowValues</a>, <a href="#setvalue">SetValue</a>, <a href="#setvalueprintformat">SetValuePrintFormat</a>, <a href="#stringifymatrix">StringifyMatrix</a>
47 , <a href="#transpose">Transpose</a>, <a href="#unitmatrix">UnitMatrix</a>, <a href="#zero">Zero</a>, <a href="#zeromatrix">ZeroMatrix</a>
48 </p><p>The following functions are available:</p>
49 <p>IsMatrix, IdentityMatrix, NewFromRows, NewFromColumns, NewFromDiagonal,
50 UnitMatrix, ZeroMatrix</p>
51 <p>The following operators are overloaded:</p>
52 <div class="OptionsBox">
53 &quot;&quot; bool !
54 <br/> @{}
55 <br/> + - * / ** %
56 <br/> == != &lt; &lt;= &gt; &gt;=
57 <br/> neg
58 <br/> abs exp log sqrt cos sin</div>
59 <p>The matrix row and column indicies start from zero.</p>
60 <p>
61 </p>
62 <h2>FUNCTIONS</h2>
63 <dl>
64 <dt><strong><a name="new" class="item"><strong>new</strong></a></strong></dt>
65 <dd>
66 <div class="OptionsBox">
67 $NewMatrix = $Matrix-&gt;new($NumOfRows, $NumOfCols);</div>
68 <p>Creates a new <strong>Matrix</strong> of size <em>NumOfRows x NumOfCol</em> and returns <strong>NewMatrix</strong>
69 object.</p>
70 </dd>
71 <dt><strong><a name="addcolumnvalues" class="item"><strong>AddColumnValues</strong></a></strong></dt>
72 <dd>
73 <div class="OptionsBox">
74 $Matrix-&gt;AddColumnValues(@Values);
75 <br/> $Matrix-&gt;AddColumnValues(\@Values);
76 <br/> $Matrix-&gt;AddColumnValues($VectorObject);
77 <br/> $Matrix-&gt;AddColumnValues(&quot;Value1 Value2 Value3 ...&quot;);</div>
78 <p>Adds column values to <em>Matrix</em> using an array, reference to an array, another vector, or space
79 delimited value string and returns <em>Matrix</em>.</p>
80 </dd>
81 <dt><strong><a name="addrowvalues" class="item"><strong>AddRowValues</strong></a></strong></dt>
82 <dd>
83 <div class="OptionsBox">
84 $Matrix-&gt;AddRowValues(@Values);
85 <br/> $Matrix-&gt;AddRowValues(\@Values);
86 <br/> $Matrix-&gt;AddRowValues($VectorObject);
87 <br/> $Matrix-&gt;AddRowValues(&quot;Value1 Value2 Value3 ...&quot;);</div>
88 <p>Adds row values to <em>Matrix</em> using an array, reference to an array, another vector, or space
89 delimited value string and returns <strong>Matrix</strong>.</p>
90 </dd>
91 <dt><strong><a name="copy" class="item"><strong>Copy</strong></a></strong></dt>
92 <dd>
93 <div class="OptionsBox">
94 $NewMatrix = $Matrix-&gt;Copy();</div>
95 <p>Creates a copy of <em>Matrix</em> and returns <strong>NewMatrix</strong>.</p>
96 </dd>
97 <dt><strong><a name="getcolumnvalues" class="item"><strong>GetColumnValues</strong></a></strong></dt>
98 <dd>
99 <div class="OptionsBox">
100 @Values = $Matrix-&gt;GetColumnValues($ColIndex);
101 <br/> $ValueCount = $Matrix-&gt;GetColumnValues($ColIndex);</div>
102 <p>Returns an array containing column value specified using <em>ColIndex</em> with column index
103 starting at 0. In scalar context, number of column values is returned.</p>
104 </dd>
105 <dt><strong><a name="getcolumnvaluesascolumnmatrix" class="item"><strong>GetColumnValuesAsColumnMatrix</strong></a></strong></dt>
106 <dd>
107 <div class="OptionsBox">
108 $ColumnMatrix = $Matrix-&gt;GetColumnValuesAsColumnMatrix($ColIndex);</div>
109 <p>Returns a new <strong>ColumnMatrix</strong> containing column values specified using <em>ColIndex</em> with
110 column index starting at 0.</p>
111 </dd>
112 <dt><strong><a name="getcolumnvaluesasrowmatrix" class="item"><strong>GetColumnValuesAsRowMatrix</strong></a></strong></dt>
113 <dd>
114 <div class="OptionsBox">
115 $RowMatrix = $Matrix-&gt;GetColumnValuesAsRowMatrix($ColIndex);</div>
116 <p>Returns a new <strong>RowMatrix</strong> containing column values specified using <em>ColIndex</em> with
117 column index starting at 0.</p>
118 </dd>
119 <dt><strong><a name="getcolumnvaluesasstring" class="item"><strong>GetColumnValuesAsString</strong></a></strong></dt>
120 <dd>
121 <div class="OptionsBox">
122 $ColumnValuesString = $Matrix-&gt;GetColumnValuesAsString($ColIndex);</div>
123 <p>Returns a space delimited <strong>ColumnValuesString</strong> column values specified using <em>ColIndex</em> with
124 column index starting at 0.</p>
125 </dd>
126 <dt><strong><a name="getcolumnvaluesasvector" class="item"><strong>GetColumnValuesAsVector</strong></a></strong></dt>
127 <dd>
128 <div class="OptionsBox">
129 $ColumnVector = $Matrix-&gt;GetColumnValuesAsVector($ColIndex);</div>
130 <p>Returns a new <strong>ColumnVector</strong> column values specified using <em>RowIndex</em> with
131 column index starting at 0.</p>
132 </dd>
133 <dt><strong><a name="getdiagonalvalues" class="item"><strong>GetDiagonalValues</strong></a></strong></dt>
134 <dd>
135 <div class="OptionsBox">
136 @Values = $Matrix-&gt;GetDiagonalValues();
137 <br/> $ValueCount = $Matrix-&gt;GetDiagonalValues();</div>
138 <p>Returns an array containing diagonal values. In scalar context, number of diagonal
139 values is returned.</p>
140 </dd>
141 <dt><strong><a name="getdiagonalvaluesascolumnmatrix" class="item"><strong>GetDiagonalValuesAsColumnMatrix</strong></a></strong></dt>
142 <dd>
143 <div class="OptionsBox">
144 $ColumnMatrix = $Matrix-&gt;GetDiagonalValuesAsColumnMatrix();</div>
145 <p>Returns a new <strong>ColumnMatrix</strong> containing diagonal values corresponding to <em>Matrix</em>.</p>
146 </dd>
147 <dt><strong><a name="getdiagonalvaluesasrowmatrix" class="item"><strong>GetDiagonalValuesAsRowMatrix</strong></a></strong></dt>
148 <dd>
149 <div class="OptionsBox">
150 $RowMatrix = $Matrix-&gt;GetDiagonalValuesAsRowMatrix();</div>
151 <p>Returns a new <strong>RowMatrix</strong> containing diagonal values corresponding to <em>Matrix</em>.</p>
152 </dd>
153 <dt><strong><a name="getdiagonalvaluesasstring" class="item"><strong>GetDiagonalValuesAsString</strong></a></strong></dt>
154 <dd>
155 <div class="OptionsBox">
156 $DiagonalValuesString = $Matrix-&gt;GetDiagonalValuesAsString();</div>
157 <p>Returns a space delimited <strong>DiagonalValuesString</strong> containing diagonal values corresponding to
158 <em>Matrix</em>.</p>
159 </dd>
160 <dt><strong><a name="getdiagonalvaluesasvector" class="item"><strong>GetDiagonalValuesAsVector</strong></a></strong></dt>
161 <dd>
162 <div class="OptionsBox">
163 $DiagonalVector = $Matrix-&gt;GetDiagonalValuesAsVector();</div>
164 <p>Returns a new <strong>DiagonalVector</strong> containing diagonal values corresponding to <em>Matrix</em>.</p>
165 </dd>
166 <dt><strong><a name="getdimension" class="item"><strong>GetDimension</strong></a></strong></dt>
167 <dd>
168 <div class="OptionsBox">
169 ($NumOfRows, $NumOfCols) = $Matrix-&gt;GetDimension();</div>
170 <p>Returns size of <em>Matrix</em>.</p>
171 </dd>
172 <dt><strong><a name="getmatrixvaluesreference" class="item"><strong>GetMatrixValuesReference</strong></a></strong></dt>
173 <dd>
174 <div class="OptionsBox">
175 $ValuesRef = $Matrix-&gt;GetMatrixValuesReference();</div>
176 <p>Returns a reference to array containing rows and column values corresponding to <em>Matrix</em>.</p>
177 </dd>
178 <dt><strong><a name="getnumofcolumns" class="item"><strong>GetNumOfColumns</strong></a></strong></dt>
179 <dd>
180 <div class="OptionsBox">
181 $NumOfCols = $Matrix-&gt;GetNumOfColumns();</div>
182 <p>Returns <strong>NumOfCols</strong> in <em>Matrix</em>.</p>
183 </dd>
184 <dt><strong><a name="getnumofrows" class="item"><strong>GetNumOfRows</strong></a></strong></dt>
185 <dd>
186 <div class="OptionsBox">
187 $NumOfRows = $Matrix-&gt;GetNumOfRows();</div>
188 <p>Returns <strong>NumOfRows</strong> in <em>Matrix</em>.</p>
189 </dd>
190 <dt><strong><a name="getrowvalues" class="item"><strong>GetRowValues</strong></a></strong></dt>
191 <dd>
192 <div class="OptionsBox">
193 @Values = $Matrix-&gt;GetRowValues($RowIndex);
194 <br/> $ValueCount = $Matrix-&gt;GetRowValues($RowIndex);</div>
195 <p>Returns an array containing row value specified using <em>RowIndex</em> with row index
196 starting at 0. In scalar context, number of row values is returned.</p>
197 </dd>
198 <dt><strong><a name="getrowvaluesascolumnmatrix" class="item"><strong>GetRowValuesAsColumnMatrix</strong></a></strong></dt>
199 <dd>
200 <div class="OptionsBox">
201 $ColumnMatrix = $Matrix-&gt;GetRowValuesAsColumnMatrix($RowIndex);</div>
202 <p>Returns a new <strong>ColumnMatrix</strong> containing row values specified using <em>RowIndex</em> with
203 column index starting at 0.</p>
204 </dd>
205 <dt><strong><a name="getrowvaluesasrowmatrix" class="item"><strong>GetRowValuesAsRowMatrix</strong></a></strong></dt>
206 <dd>
207 <div class="OptionsBox">
208 $RowMatrix = $Matrix-&gt;GetRowValuesAsRowMatrix($RowIndex);</div>
209 <p>Returns a new <strong>RowMatrix</strong> containing row values specified using <em>RowIndex</em> with
210 row index starting at 0.</p>
211 </dd>
212 <dt><strong><a name="getrowvaluesasstring" class="item"><strong>GetRowValuesAsString</strong></a></strong></dt>
213 <dd>
214 <div class="OptionsBox">
215 $RowValuesString = $Matrix-&gt;GetRowValuesAsString($RowIndex);</div>
216 <p>Returns a space delimited <strong>RowValuesString</strong> row values specified using <em>RowIndex</em> with
217 row index starting at 0.</p>
218 </dd>
219 <dt><strong><a name="getrowvaluesasvector" class="item"><strong>GetRowValuesAsVector</strong></a></strong></dt>
220 <dd>
221 <div class="OptionsBox">
222 $RowVector = $Matrix-&gt;GetColumnValuesAsVector($RowIndex);</div>
223 <p>Returns a new <strong>RowVector</strong> row values specified using <em>RowIndex</em> with
224 row index starting at 0.</p>
225 </dd>
226 <dt><strong><a name="getsize" class="item"><strong>GetSize</strong></a></strong></dt>
227 <dd>
228 <div class="OptionsBox">
229 ($NumOfRows, $NumOfCols) = $Matrix-&gt;GetSize();</div>
230 <p>Returns size of <em>Matrix</em>.</p>
231 </dd>
232 <dt><strong><a name="getvalue" class="item"><strong>GetValue</strong></a></strong></dt>
233 <dd>
234 <div class="OptionsBox">
235 $Value = $Matrix-&gt;GetValue($RowIndex, $ColIndex, [$SkipIndexCheck]);</div>
236 <p>Returns <strong>Value</strong> of <em>Matrix</em> element specified using <em>RowIndex</em> and <em>ColIndex</em> with indicies
237 starting at 0 with optional validation of specified index values.</p>
238 </dd>
239 <dt><strong><a name="identitymatrix" class="item"><strong>IdentityMatrix</strong></a></strong></dt>
240 <dd>
241 <div class="OptionsBox">
242 $NewIdentityMatrix = $Matrix-&gt;IdentityMatrix($NumOfRows, $NumOfCols);
243 <br/> $NewIdentityMatrix = Matrix::IdentityMatrix($NumOfRows, $NumOfCols);
244 <br/> $NewIdentityMatrix = Matrix::IdentityMatrix();</div>
245 <p>Creates a new <strong>IdentityMatrix</strong> of specified size <em>NumOfRows x NumOfCol</em> or of size 3 x 3 and
246 returns <strong>NewIdentityMatrix</strong> object.</p>
247 </dd>
248 <dt><strong><a name="isantisymmetric" class="item"><strong>IsAntiSymmetric</strong></a></strong></dt>
249 <dd>
250 <div class="OptionsBox">
251 $Status = $Matrix-&gt;IsAntiSymmetric();</div>
252 <p>Returns 1 or 0 based on whether <em>Matrix</em> is an anti symmetric matrix.</p>
253 <p>A matrix is an anti symmetric matrix:</p>
254 <div class="OptionsBox">
255 . It's a square matrix
256 <br/> . Its elements are asymmetric with respect to main diagonal. In other words,
257 elements below the main diagonal are equal to the negative of elements above
258 the main diagonal.</div>
259 <p>Transpose of an anti symmetric matrix equals the negative of the matrix.</p>
260 </dd>
261 <dt><strong><a name="isbidiagonal" class="item"><strong>IsBiDiagonal</strong></a></strong></dt>
262 <dd>
263 <div class="OptionsBox">
264 $Status = $Matrix-&gt;IsBiDiagonal();</div>
265 <p>Returns 1 or 0 based on whether <em>Matrix</em> is upper or lower bidiagonal matrix.</p>
266 </dd>
267 <dt><strong><a name="isdiagonal" class="item"><strong>IsDiagonal</strong></a></strong></dt>
268 <dd>
269 <div class="OptionsBox">
270 $Status = $Matrix-&gt;IsDiagonal();</div>
271 <p>Returns 1 or 0 based on whether <em>Matrix</em> is a diagonal matrix.</p>
272 <p>A matrix is a diagonal matrix:</p>
273 <div class="OptionsBox">
274 . It's a square matrix
275 <br/> . All its off-diagonal elements are zeros and its diagonal elements may or may not
276 be zeros</div>
277 </dd>
278 <dt><strong><a name="isidentity" class="item"><strong>IsIdentity</strong></a></strong></dt>
279 <dd>
280 <div class="OptionsBox">
281 $Status = $Matrix-&gt;IsIdentity();</div>
282 <p>Returns 1 or 0 based on whether <em>Matrix</em> is an identity matrix.</p>
283 </dd>
284 <dt><strong><a name="islefttriangular" class="item"><strong>IsLeftTriangular</strong></a></strong></dt>
285 <dd>
286 <div class="OptionsBox">
287 $Status = $Matrix-&gt;IsLeftTriangular();</div>
288 <p>Returns 1 or 0 based on whether <em>Matrix</em> is a left or lower matrix.</p>
289 <p>A matrix is a left triangular matrix:</p>
290 <div class="OptionsBox">
291 . It's a square matrix
292 <br/> . All its entries above the main diagonal are zero</div>
293 </dd>
294 <dt><strong><a name="islowerbidiagonal" class="item"><strong>IsLowerBiDiagonal</strong></a></strong></dt>
295 <dd>
296 <div class="OptionsBox">
297 $Status = $Matrix-&gt;IsLowerBiDiagonal();</div>
298 <p>Returns 1 or 0 based on whether <em>Matrix</em> is a lower bidiagonal matrix.</p>
299 <p>A matrix is a lower bidiagonal matrix:</p>
300 <div class="OptionsBox">
301 . It's a square matrix
302 <br/> . All its main diagonal and lower diagonal elements are non-zeros and all its
303 other elements are zeros</div>
304 </dd>
305 <dt><strong><a name="islowertriangular" class="item"><strong>IsLowerTriangular</strong></a></strong></dt>
306 <dd>
307 <div class="OptionsBox">
308 $Status = $Matrix-&gt;IsLowerTriangular();</div>
309 <p>Returns 1 or 0 based on whether <em>Matrix</em> is a left or lower triangular matrix.</p>
310 <p>A matrix is a lower triangular matrix:</p>
311 <div class="OptionsBox">
312 . It's a square matrix
313 <br/> . All its entries above the main diagonal are zero</div>
314 </dd>
315 <dt><strong><a name="islowerunitriangular" class="item"><strong>IsLowerUniTriangular</strong></a></strong></dt>
316 <dd>
317 <div class="OptionsBox">
318 $Status = $Matrix-&gt;IsLowerUniTriangular();</div>
319 <p>Returns 1 or 0 based on whether <em>Matrix</em> is a lower triangular matrix.</p>
320 </dd>
321 <dt><strong><a name="ismatrix" class="item"><strong>IsMatrix</strong></a></strong></dt>
322 <dd>
323 <div class="OptionsBox">
324 $Status = Matrix::IsMatrix($Object);</div>
325 <p>Returns 1 or 0 based on whether <em>Object</em> is a <strong>Matrix</strong> object.</p>
326 </dd>
327 <dt><strong><a name="isnegative" class="item"><strong>IsNegative</strong></a></strong></dt>
328 <dd>
329 <div class="OptionsBox">
330 $Status = $Matrix-&gt;IsNegative();</div>
331 <p>Returns 1 or 0 based on whether <em>Matrix</em> is a negative matrix containing only values
332 less than or equal to zero.</p>
333 </dd>
334 <dt><strong><a name="ispositive" class="item"><strong>IsPositive</strong></a></strong></dt>
335 <dd>
336 <div class="OptionsBox">
337 $Status = $Matrix-&gt;IsPositive();</div>
338 <p>Returns 1 or 0 based on whether <em>Matrix</em> is a negative matrix containing only values
339 greater than or equal to zero.</p>
340 </dd>
341 <dt><strong><a name="isrighttriangular" class="item"><strong>IsRightTriangular</strong></a></strong></dt>
342 <dd>
343 <div class="OptionsBox">
344 $Status = $Matrix-&gt;IsRightTriangular();</div>
345 <p>Returns 1 or 0 based on whether <em>Matrix</em> is a right or upper triangular matrix.</p>
346 </dd>
347 <dt><strong><a name="isskewsymmetric" class="item"><strong>IsSkewSymmetric</strong></a></strong></dt>
348 <dd>
349 <div class="OptionsBox">
350 $Status = $Matrix-&gt;IsSkewSymmetric();</div>
351 <p>Returns 1 or 0 based on whether <em>Matrix</em> is a skew or anti symmetric matrix.</p>
352 </dd>
353 <dt><strong><a name="issquare" class="item"><strong>IsSquare</strong></a></strong></dt>
354 <dd>
355 <div class="OptionsBox">
356 $Status = $Matrix-&gt;IsSquare();</div>
357 <p>Returns 1 or 0 based on whether <em>Matrix</em> is a square matrix containing equal
358 number of rows and columns.</p>
359 </dd>
360 <dt><strong><a name="isstrictlylowertriangular" class="item"><strong>IsStrictlyLowerTriangular</strong></a></strong></dt>
361 <dd>
362 <div class="OptionsBox">
363 $Status = $Matrix-&gt;IsStrictlyLowerTriangular();</div>
364 <p>Returns 1 or 0 based on whether <em>Matrix</em> is a strictly lower triangular matrix.</p>
365 <p>A matrix is a strictly lower triangular matrix:</p>
366 <div class="OptionsBox">
367 . It's a square matrix
368 <br/> . All its entries on and above the main diagonal are zero</div>
369 </dd>
370 <dt><strong><a name="isstrictlyuppertriangular" class="item"><strong>IsStrictlyUpperTriangular</strong></a></strong></dt>
371 <dd>
372 <div class="OptionsBox">
373 $Status = $Matrix-&gt;IsStrictlyUpperTriangular();</div>
374 <p>Returns 1 or 0 based on whether <em>Matrix</em> is a strictly upper triangular matrix.</p>
375 <p>A matrix is a strictly upper triangular matrix:</p>
376 <div class="OptionsBox">
377 . It's a square matrix
378 <br/> . All its entries on and below the main diagonal are zero</div>
379 </dd>
380 <dt><strong><a name="issymmetric" class="item"><strong>IsSymmetric</strong></a></strong></dt>
381 <dd>
382 <div class="OptionsBox">
383 $Status = $Matrix-&gt;IsSymmetric();</div>
384 <p>Returns 1 or 0 based on whether <em>Matrix</em> is a symmetric matrix.</p>
385 <p>A matrix is a symmetric matrix:</p>
386 <div class="OptionsBox">
387 . It's a square matrix
388 <br/> . Its elements are symmetric with respect to main diagonal. In other words,
389 elements below the main diagonal are equal to the elements above the main
390 diagonal.</div>
391 <p>Transpose of a symmetric matrix equals the matrix itself.</p>
392 </dd>
393 <dt><strong><a name="istridiagonal" class="item"><strong>IsTriDiagonal</strong></a></strong></dt>
394 <dd>
395 <div class="OptionsBox">
396 $Status = $Matrix-&gt;IsTriDiagonal();</div>
397 <p>Returns 1 or 0 based on whether <em>Matrix</em> is a tridiagonal matrix.</p>
398 <p>A matrix is a tribidiagonal matrix:</p>
399 <div class="OptionsBox">
400 . It's a square matrix
401 <br/> . All its main diagonal, upper diagonal, and lower diagonal elements are non-zeros and all its
402 other elements are zeros</div>
403 </dd>
404 <dt><strong><a name="isunit" class="item"><strong>IsUnit</strong></a></strong></dt>
405 <dd>
406 <div class="OptionsBox">
407 $Status = $Matrix-&gt;IsUnit();</div>
408 <p>Returns 1 or 0 based on whether <em>Matrix</em> is a unit matrix.</p>
409 <p>A matrix is a unit matrix:</p>
410 <div class="OptionsBox">
411 . It's a square matrix
412 <br/> . All its diagonal elements are ones and its off-diagonal elements are zeros</div>
413 </dd>
414 <dt><strong><a name="isunitlowertriangular" class="item"><strong>IsUnitLowerTriangular</strong></a></strong></dt>
415 <dd>
416 <div class="OptionsBox">
417 $Status = $Matrix-&gt;IsUnitLowerTriangular();</div>
418 <p>Returns 1 or 0 based on whether <em>Matrix</em> is an unit lower triangular matrix.</p>
419 <p>A matrix is an unit lower triangular matrix:</p>
420 <div class="OptionsBox">
421 . It's a square matrix
422 <br/> . All its entries main diagonal are one
423 <br/> . All its entries above the main diagonal are zero</div>
424 </dd>
425 <dt><strong><a name="isunituppertriangular" class="item"><strong>IsUnitUpperTriangular</strong></a></strong></dt>
426 <dd>
427 <div class="OptionsBox">
428 $Status = $Matrix-&gt;IsUnitUpperTriangular();</div>
429 <p>Returns 1 or 0 based on whether <em>Matrix</em> is an unit upper triangular matrix.</p>
430 <p>A matrix is an unit upper triangular matrix:</p>
431 <div class="OptionsBox">
432 . It's a square matrix
433 <br/> . All its entries main diagonal are one
434 <br/> . All its entries below the main diagonal are zero</div>
435 </dd>
436 <dt><strong><a name="isupperbidiagonal" class="item"><strong>IsUpperBiDiagonal</strong></a></strong></dt>
437 <dd>
438 <div class="OptionsBox">
439 $Status = $Matrix-&gt;IsUpperBiDiagonal();</div>
440 <p>Returns 1 or 0 based on whether <em>Matrix</em> is an upper bidiagonal matrix.</p>
441 <p>A matrix is an upper bidiagonal matrix:</p>
442 <div class="OptionsBox">
443 . It's a square matrix
444 <br/> . All its main diagonal and upper diagonal elements are non-zeros and all its
445 other elements are zeros</div>
446 </dd>
447 <dt><strong><a name="isuppertriangular" class="item"><strong>IsUpperTriangular</strong></a></strong></dt>
448 <dd>
449 <div class="OptionsBox">
450 $Status = $Matrix-&gt;IsUpperTriangular();</div>
451 <p>Returns 1 or 0 based on whether <em>Matrix</em> is a right or upper triangular matrix.</p>
452 <p>A matrix is an upper triangular matrix:</p>
453 <div class="OptionsBox">
454 . It's a square matrix
455 <br/> . All its entries below the main diagonal are zero</div>
456 </dd>
457 <dt><strong><a name="isupperunitriangular" class="item"><strong>IsUpperUniTriangular</strong></a></strong></dt>
458 <dd>
459 <div class="OptionsBox">
460 $Status = $Matrix-&gt;IsUpperUniTriangular();</div>
461 <p>Returns 1 or 0 based on whether <em>Matrix</em> is a right or upper triangular matrix.</p>
462 </dd>
463 <dt><strong><a name="newfromcolumns" class="item"><strong>NewFromColumns</strong></a></strong></dt>
464 <dd>
465 <div class="OptionsBox">
466 $NewMatrix = Matrix::NewFromColumns($Col1Vector, $Col2Vector, ...);
467 <br/> $NewMatrix = Matrix::NewFromColumns($Col1ValuesRef, $Col2ValuesRef, ...);
468 <br/> $NewMatrix = Matrix::NewFromColumns(&quot;Val1 Val2 ...&quot;, &quot;Val1 Val2&quot;, ...);</div>
469 <div class="OptionsBox">
470 $NewMatrix = $Matrix-&gt;NewFromColumns($Col1Vector, $Col2Vector, ...);
471 <br/> $NewMatrix = $Matrix-&gt;NewFromColumns($Col1ValuesRef, $Col2ValuesRef, ...);
472 <br/> $NewMatrix = $Matrix-&gt;NewFromColumns(&quot;Val1 Val2 ...&quot;, &quot;Val1 Val2&quot;, ...);</div>
473 <p>Creates a new <strong>Matrix</strong> using specified column values and returns <strong>NewMatrix</strong> object.</p>
474 <p>The column values can be specified in one of the following formats:</p>
475 <div class="OptionsBox">
476 . List of vector objects
477 <br/> . References to list of values
478 <br/> . List of strings containing columns values delimited by space</div>
479 <p>Each column must contain the same number of values.</p>
480 </dd>
481 <dt><strong><a name="newfromdiagonal" class="item"><strong>NewFromDiagonal</strong></a></strong></dt>
482 <dd>
483 <div class="OptionsBox">
484 $NewMatrix = Matrix::NewFromDiagonal($DiagonalVector);
485 <br/> $NewMatrix = Matrix::NewFromDiagonal($DiagonalValuesRef);
486 <br/> $NewMatrix = Matrix::NewFromDiagonal(&quot;Val1 Val2 ...&quot;);</div>
487 <div class="OptionsBox">
488 $NewMatrix = Matrix-&gt;NewFromDiagonal($DiagonalVector);
489 <br/> $NewMatrix = Matrix-&gt;NewFromDiagonal($DiagonalValuesRef);
490 <br/> $NewMatrix = Matrix-&gt;NewFromDiagonal(&quot;Val1 Val2 ...&quot;);</div>
491 <p>Creates a new <strong>Matrix</strong> using specified diagonal values and returns <strong>NewMatrix</strong> object.</p>
492 <p>The column values can be specified in one of the following formats:</p>
493 <div class="OptionsBox">
494 . A vector object
495 <br/> . Reference to list of values
496 <br/> . Strings containing diagonal values delimited by space</div>
497 </dd>
498 <dt><strong><a name="newfromrows" class="item"><strong>NewFromRows</strong></a></strong></dt>
499 <dd>
500 <div class="OptionsBox">
501 $NewMatrix = Matrix::NewFromRows($Row1Vector, $RowVector, ...);
502 <br/> $NewMatrix = Matrix::NewFromRows($Row1ValuesRef, $Row2ValuesRef, ...);
503 <br/> $NewMatrix = Matrix::NewFromRows(&quot;Val1 Val2 ...&quot;, &quot;Val1 Val2&quot;, ...);</div>
504 <div class="OptionsBox">
505 $NewMatrix = $Matrix-&gt;NewFromRows($Row1Vector, $Row2Vector, ...);
506 <br/> $NewMatrix = $Matrix-&gt;NewFromRows($Row1ValuesRef, $Row2ValuesRef, ...);
507 <br/> $NewMatrix = $Matrix-&gt;NewFromRows(&quot;Val1 Val2 ...&quot;, &quot;Val1 Val2&quot;, ...);</div>
508 <p>Creates a new <strong>Matrix</strong> using specified row values and returns <strong>NewMatrix</strong> object.</p>
509 <p>The row values can be specified in one of the following formats:</p>
510 <div class="OptionsBox">
511 . List of vector objects
512 <br/> . References to list of values
513 <br/> . List of strings containing columns values delimited by space</div>
514 <p>Each row must contain the same number of values.</p>
515 </dd>
516 <dt><strong><a name="one" class="item"><strong>One</strong></a></strong></dt>
517 <dd>
518 <div class="OptionsBox">
519 $Matrix-&gt;One();</div>
520 <p>Sets values of all <em>Matrix</em> elements to 1 and returns <em>Matrix</em>.</p>
521 </dd>
522 <dt><strong><a name="setallvalues" class="item"><strong>SetAllValues</strong></a></strong></dt>
523 <dd>
524 <div class="OptionsBox">
525 $Matrix-&gt;SetAllValues($Value);</div>
526 <p>Sets values of all <em>Matrix</em> elements to specified <em>Value</em> and returns <em>Matrix</em>.</p>
527 </dd>
528 <dt><strong><a name="setcolumnvalues" class="item"><strong>SetColumnValues</strong></a></strong></dt>
529 <dd>
530 <div class="OptionsBox">
531 $Matrix-&gt;SetColumnValues($ColIndex, @Values);
532 <br/> $Matrix-&gt;SetColumnValues($ColIndex, \@Values);
533 <br/> $Matrix-&gt;SetColumnValues($ColIndex, $VectorObject);
534 <br/> $Matrix-&gt;SetColumnValues($ColIndex, &quot;Value1 Value2 Value3 ...&quot;);</div>
535 <p>Sets column values of a specified <em>ColIndex</em> of <em>Matrix</em> using an array, reference to an array,
536 another vector, or space delimited value string and returns <em>Matrix</em>.</p>
537 </dd>
538 <dt><strong><a name="setdiagonalvalues" class="item"><strong>SetDiagonalValues</strong></a></strong></dt>
539 <dd>
540 <div class="OptionsBox">
541 $Matrix-&gt;SetDiagonalValues(@Values);
542 <br/> $Matrix-&gt;SetDiagonalValues(\@Values);
543 <br/> $Matrix-&gt;SetDiagonalValues($VectorObject);
544 <br/> $Matrix-&gt;SetDiagonalValues(&quot;Value1 Value2 Value3 ...&quot;);</div>
545 <p>Sets values of the diagonal in square <em>Matrix</em> and returns <em>Matrix</em>.</p>
546 </dd>
547 <dt><strong><a name="setmatrixprintstyle" class="item"><strong>SetMatrixPrintStyle</strong></a></strong></dt>
548 <dd>
549 <div class="OptionsBox">
550 $Matrix-&gt;SetMatrixPrintStyle($MatrixStyle);
551 <br/> $Matrix::SetMatrixPrintStyle($MatrixStyle);</div>
552 <p>Sets print style for matrix rows for an individual object or the whole class during StringifyMatrix
553 operation. Possible <em>MatrixStyle</em> values: <em>AllRowsInOneLine, OneRowPerLine</em>. Default:
554 <em>AllRowsInOneLine</em>.</p>
555 </dd>
556 <dt><strong><a name="setrowvalues" class="item"><strong>SetRowValues</strong></a></strong></dt>
557 <dd>
558 <div class="OptionsBox">
559 $Matrix-&gt;SetRowValues($ColIndex, @Values);
560 <br/> $Matrix-&gt;SetRowValues($ColIndex, \@Values);
561 <br/> $Matrix-&gt;SetRowValues($ColIndex, $VectorObjext);
562 <br/> $Matrix-&gt;SetRowValues($ColIndex, &quot;Value1 Value2 Value3 ...&quot;);</div>
563 <p>Sets row values of a specified <em>RowIndex</em> of <em>Matrix</em> using an array, reference to an array,
564 another vector, or space delimited value string and returns <em>Matrix</em>.</p>
565 </dd>
566 <dt><strong><a name="setvalue" class="item"><strong>SetValue</strong></a></strong></dt>
567 <dd>
568 <div class="OptionsBox">
569 $Matrix-&gt;SetValue($RowIndex, $ColIndex, $Value, [$SkipIndexCheck]);</div>
570 <p>Sets <strong>Value</strong> of <em>Matrix</em> element specified using <em>RowIndex</em> and <em>ColIndex</em> with indicies
571 starting at 0 with optional validation of specified index values and return <em>Matrix</em>.</p>
572 </dd>
573 <dt><strong><a name="setvalueprintformat" class="item"><strong>SetValuePrintFormat</strong></a></strong></dt>
574 <dd>
575 <div class="OptionsBox">
576 $Matrix-&gt;SetValuePrintFormat($ValueFormat);
577 <br/> $Matrix::SetValuePrintFormat($ValueFormat);</div>
578 <p>Sets value print format for an individual object or the whole class during StringifyMatrix operation
579 and returns <em>Matrix</em>.</p>
580 </dd>
581 <dt><strong><a name="stringifymatrix" class="item"><strong>StringifyMatrix</strong></a></strong></dt>
582 <dd>
583 <div class="OptionsBox">
584 $String = $Matrix-&gt;StringifyMatrix();</div>
585 <p>Returns a string containing information about <em>Matrix</em> object.</p>
586 </dd>
587 <dt><strong><a name="transpose" class="item"><strong>Transpose</strong></a></strong></dt>
588 <dd>
589 <div class="OptionsBox">
590 $Matrix-&gt;Transpose();</div>
591 <p>Transposes <em>Matrix</em> by swaping rows with columns and returns <em>Matrix</em>.</p>
592 </dd>
593 <dt><strong><a name="unitmatrix" class="item"><strong>UnitMatrix</strong></a></strong></dt>
594 <dd>
595 <div class="OptionsBox">
596 $NewUnitMatrix = $Matrix::UnitMatrix($NumOfRows, $NumOfCols);
597 <br/> $NewUnitMatrix = $Matrix::UnitMatrix();
598 <br/> $NewUnitMatrix = $Matrix-&gt;UnitMatrix($NumOfRows, $NumOfCols);</div>
599 <p>Creates a new <strong>UnitMatrix</strong> of specified size <em>NumOfRows x NumOfCol</em> or of size 3 x 3 and
600 returns <strong>NewUnitMatrix</strong> object.</p>
601 </dd>
602 <dt><strong><a name="zero" class="item"><strong>Zero</strong></a></strong></dt>
603 <dd>
604 <div class="OptionsBox">
605 $Matrix-&gt;Zero();</div>
606 <p>Sets values of all <em>Matrix</em> elements to 0 and returns <em>Matrix</em>.</p>
607 </dd>
608 <dt><strong><a name="zeromatrix" class="item"><strong>ZeroMatrix</strong></a></strong></dt>
609 <dd>
610 <div class="OptionsBox">
611 $NewZeroMatrix = $Matrix::ZeroMatrix($NumOfRows, $NumOfCols);
612 <br/> $NewZeroMatrix = $Matrix::ZeroMatrix();
613 <br/> $NewZeroMatrix = $Matrix-&gt;ZeroMatrix($NumOfRows, $NumOfCols);</div>
614 <p>Creates a new <strong>ZeroMatrix</strong> of specified size <em>NumOfRows x NumOfCol</em> or of size 3 x 3 and
615 returns <strong>NewZeroMatrix</strong> object.</p>
616 </dd>
617 </dl>
618 <p>
619 </p>
620 <h2>AUTHOR</h2>
621 <p><a href="mailto:msud@san.rr.com">Manish Sud</a></p>
622 <p>
623 </p>
624 <h2>SEE ALSO</h2>
625 <p><a href="./Vector.html">Vector.pm</a>
626 </p>
627 <p>
628 </p>
629 <h2>COPYRIGHT</h2>
630 <p>Copyright (C) 2015 Manish Sud. All rights reserved.</p>
631 <p>This file is part of MayaChemTools.</p>
632 <p>MayaChemTools is free software; you can redistribute it and/or modify it under
633 the terms of the GNU Lesser General Public License as published by the Free
634 Software Foundation; either version 3 of the License, or (at your option)
635 any later version.</p>
636 <p>&nbsp</p><p>&nbsp</p><div class="DocNav">
637 <table width="100%" border=0 cellpadding=0 cellspacing=2>
638 <tr align="left" valign="top"><td width="33%" align="left"><a href="./MathUtil.html" title="MathUtil.html">Previous</a>&nbsp;&nbsp;<a href="./index.html" title="Table of Contents">TOC</a>&nbsp;&nbsp;<a href="./AtomsCountDescriptors.html" title="AtomsCountDescriptors.html">Next</a></td><td width="34%" align="middle"><strong>March 29, 2015</strong></td><td width="33%" align="right"><strong>Matrix.pm</strong></td></tr>
639 </table>
640 </div>
641 <br />
642 <center>
643 <img src="../../images/h2o2.png">
644 </center>
645 </body>
646 </html>