0
|
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> <a href="./index.html" title="Table of Contents">TOC</a> <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> | <a href="./../pdf/Matrix.pdf" title="PDF US Letter Size">PDF</a> | <a href="./../pdfgreen/Matrix.pdf" title="PDF US Letter Size with narrow margins: www.changethemargins.com">PDFGreen</a> | <a href="./../pdfa4/Matrix.pdf" title="PDF A4 Size">PDFA4</a> | <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 "" bool !
|
|
54 <br/> @{}
|
|
55 <br/> + - * / ** %
|
|
56 <br/> == != < <= > >=
|
|
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->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->AddColumnValues(@Values);
|
|
75 <br/> $Matrix->AddColumnValues(\@Values);
|
|
76 <br/> $Matrix->AddColumnValues($VectorObject);
|
|
77 <br/> $Matrix->AddColumnValues("Value1 Value2 Value3 ...");</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->AddRowValues(@Values);
|
|
85 <br/> $Matrix->AddRowValues(\@Values);
|
|
86 <br/> $Matrix->AddRowValues($VectorObject);
|
|
87 <br/> $Matrix->AddRowValues("Value1 Value2 Value3 ...");</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->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->GetColumnValues($ColIndex);
|
|
101 <br/> $ValueCount = $Matrix->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->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->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->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->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->GetDiagonalValues();
|
|
137 <br/> $ValueCount = $Matrix->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->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->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->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->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->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->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->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->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->GetRowValues($RowIndex);
|
|
194 <br/> $ValueCount = $Matrix->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->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->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->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->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->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->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->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->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->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->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->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->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->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->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->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->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->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->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->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->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->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->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->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->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->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->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->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->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->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->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("Val1 Val2 ...", "Val1 Val2", ...);</div>
|
|
469 <div class="OptionsBox">
|
|
470 $NewMatrix = $Matrix->NewFromColumns($Col1Vector, $Col2Vector, ...);
|
|
471 <br/> $NewMatrix = $Matrix->NewFromColumns($Col1ValuesRef, $Col2ValuesRef, ...);
|
|
472 <br/> $NewMatrix = $Matrix->NewFromColumns("Val1 Val2 ...", "Val1 Val2", ...);</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("Val1 Val2 ...");</div>
|
|
487 <div class="OptionsBox">
|
|
488 $NewMatrix = Matrix->NewFromDiagonal($DiagonalVector);
|
|
489 <br/> $NewMatrix = Matrix->NewFromDiagonal($DiagonalValuesRef);
|
|
490 <br/> $NewMatrix = Matrix->NewFromDiagonal("Val1 Val2 ...");</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("Val1 Val2 ...", "Val1 Val2", ...);</div>
|
|
504 <div class="OptionsBox">
|
|
505 $NewMatrix = $Matrix->NewFromRows($Row1Vector, $Row2Vector, ...);
|
|
506 <br/> $NewMatrix = $Matrix->NewFromRows($Row1ValuesRef, $Row2ValuesRef, ...);
|
|
507 <br/> $NewMatrix = $Matrix->NewFromRows("Val1 Val2 ...", "Val1 Val2", ...);</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->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->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->SetColumnValues($ColIndex, @Values);
|
|
532 <br/> $Matrix->SetColumnValues($ColIndex, \@Values);
|
|
533 <br/> $Matrix->SetColumnValues($ColIndex, $VectorObject);
|
|
534 <br/> $Matrix->SetColumnValues($ColIndex, "Value1 Value2 Value3 ...");</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->SetDiagonalValues(@Values);
|
|
542 <br/> $Matrix->SetDiagonalValues(\@Values);
|
|
543 <br/> $Matrix->SetDiagonalValues($VectorObject);
|
|
544 <br/> $Matrix->SetDiagonalValues("Value1 Value2 Value3 ...");</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->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->SetRowValues($ColIndex, @Values);
|
|
560 <br/> $Matrix->SetRowValues($ColIndex, \@Values);
|
|
561 <br/> $Matrix->SetRowValues($ColIndex, $VectorObjext);
|
|
562 <br/> $Matrix->SetRowValues($ColIndex, "Value1 Value2 Value3 ...");</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->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->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->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->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->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->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->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> </p><p> </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> <a href="./index.html" title="Table of Contents">TOC</a> <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>
|