Mercurial > repos > deepakjadmin > mayatool3_test3
diff mayachemtools/docs/modules/man3/Matrix.3 @ 0:73ae111cf86f draft
Uploaded
author | deepakjadmin |
---|---|
date | Wed, 20 Jan 2016 11:55:01 -0500 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mayachemtools/docs/modules/man3/Matrix.3 Wed Jan 20 11:55:01 2016 -0500 @@ -0,0 +1,869 @@ +.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.22) +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. \*(C+ will +.\" give a nicer C++. Capital omega is used to do unbreakable dashes and +.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, +.\" nothing in troff, for use with C<>. +.tr \(*W- +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +'br\} +.\" +.\" Escape single quotes in literal strings from groff's Unicode transform. +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" +.\" If the F register is turned on, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.ie \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. nr % 0 +. rr F +.\} +.el \{\ +. de IX +.. +.\} +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "MATRIX 1" +.TH MATRIX 1 "2015-03-29" "perl v5.14.2" "MayaChemTools" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.if n .ad l +.nh +.SH "NAME" +Matrix +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" +use Matrix; +.PP +use Matrix qw(:all); +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +\&\fBMatrix\fR class provides the following methods: +.PP +new, AddColumnValues, AddRowValues, Copy, GetColumnValues, +GetColumnValuesAsColumnMatrix, GetColumnValuesAsRowMatrix, +GetColumnValuesAsString, GetColumnValuesAsVector, GetDiagonalValues, +GetDiagonalValuesAsColumnMatrix, GetDiagonalValuesAsRowMatrix, +GetDiagonalValuesAsString, GetDiagonalValuesAsVector, GetDimension, +GetMatrixValuesReference, GetNumOfColumns, GetNumOfRows, GetRowValues, +GetRowValuesAsColumnMatrix, GetRowValuesAsRowMatrix, GetRowValuesAsString, +GetRowValuesAsVector, GetSize, GetValue, IdentityMatrix, IsAntiSymmetric, +IsBiDiagonal, IsDiagonal, IsIdentity, IsLeftTriangular, IsLowerBiDiagonal, +IsLowerTriangular, IsLowerUniTriangular, IsMatrix, IsNegative, IsPositive, +IsRightTriangular, IsSkewSymmetric, IsSquare, IsStrictlyLowerTriangular, +IsStrictlyUpperTriangular, IsSymmetric, IsTriDiagonal, IsUnit, +IsUnitLowerTriangular, IsUnitUpperTriangular, IsUpperBiDiagonal, +IsUpperTriangular, IsUpperUniTriangular, NewFromColumns, NewFromDiagonal, +NewFromRows, One, SetAllValues, SetColumnValues, SetDiagonalValues, +SetMatrixPrintStyle, SetRowValues, SetValue, SetValuePrintFormat, StringifyMatrix, +Transpose, UnitMatrix, Zero, ZeroMatrix +.PP +The following functions are available: +.PP +IsMatrix, IdentityMatrix, NewFromRows, NewFromColumns, NewFromDiagonal, +UnitMatrix, ZeroMatrix +.PP +The following operators are overloaded: +.PP +.Vb 6 +\& "" bool ! +\& @{} +\& + \- * / ** % +\& == != < <= > >= +\& neg +\& abs exp log sqrt cos sin +.Ve +.PP +The matrix row and column indicies start from zero. +.SS "\s-1FUNCTIONS\s0" +.IX Subsection "FUNCTIONS" +.IP "\fBnew\fR" 4 +.IX Item "new" +.Vb 1 +\& $NewMatrix = $Matrix\->new($NumOfRows, $NumOfCols); +.Ve +.Sp +Creates a new \fBMatrix\fR of size \fINumOfRows x NumOfCol\fR and returns \fBNewMatrix\fR +object. +.IP "\fBAddColumnValues\fR" 4 +.IX Item "AddColumnValues" +.Vb 4 +\& $Matrix\->AddColumnValues(@Values); +\& $Matrix\->AddColumnValues(\e@Values); +\& $Matrix\->AddColumnValues($VectorObject); +\& $Matrix\->AddColumnValues("Value1 Value2 Value3 ..."); +.Ve +.Sp +Adds column values to \fIMatrix\fR using an array, reference to an array, another vector, or space +delimited value string and returns \fIMatrix\fR. +.IP "\fBAddRowValues\fR" 4 +.IX Item "AddRowValues" +.Vb 4 +\& $Matrix\->AddRowValues(@Values); +\& $Matrix\->AddRowValues(\e@Values); +\& $Matrix\->AddRowValues($VectorObject); +\& $Matrix\->AddRowValues("Value1 Value2 Value3 ..."); +.Ve +.Sp +Adds row values to \fIMatrix\fR using an array, reference to an array, another vector, or space +delimited value string and returns \fBMatrix\fR. +.IP "\fBCopy\fR" 4 +.IX Item "Copy" +.Vb 1 +\& $NewMatrix = $Matrix\->Copy(); +.Ve +.Sp +Creates a copy of \fIMatrix\fR and returns \fBNewMatrix\fR. +.IP "\fBGetColumnValues\fR" 4 +.IX Item "GetColumnValues" +.Vb 2 +\& @Values = $Matrix\->GetColumnValues($ColIndex); +\& $ValueCount = $Matrix\->GetColumnValues($ColIndex); +.Ve +.Sp +Returns an array containing column value specified using \fIColIndex\fR with column index +starting at 0. In scalar context, number of column values is returned. +.IP "\fBGetColumnValuesAsColumnMatrix\fR" 4 +.IX Item "GetColumnValuesAsColumnMatrix" +.Vb 1 +\& $ColumnMatrix = $Matrix\->GetColumnValuesAsColumnMatrix($ColIndex); +.Ve +.Sp +Returns a new \fBColumnMatrix\fR containing column values specified using \fIColIndex\fR with +column index starting at 0. +.IP "\fBGetColumnValuesAsRowMatrix\fR" 4 +.IX Item "GetColumnValuesAsRowMatrix" +.Vb 1 +\& $RowMatrix = $Matrix\->GetColumnValuesAsRowMatrix($ColIndex); +.Ve +.Sp +Returns a new \fBRowMatrix\fR containing column values specified using \fIColIndex\fR with +column index starting at 0. +.IP "\fBGetColumnValuesAsString\fR" 4 +.IX Item "GetColumnValuesAsString" +.Vb 1 +\& $ColumnValuesString = $Matrix\->GetColumnValuesAsString($ColIndex); +.Ve +.Sp +Returns a space delimited \fBColumnValuesString\fR column values specified using \fIColIndex\fR with +column index starting at 0. +.IP "\fBGetColumnValuesAsVector\fR" 4 +.IX Item "GetColumnValuesAsVector" +.Vb 1 +\& $ColumnVector = $Matrix\->GetColumnValuesAsVector($ColIndex); +.Ve +.Sp +Returns a new \fBColumnVector\fR column values specified using \fIRowIndex\fR with +column index starting at 0. +.IP "\fBGetDiagonalValues\fR" 4 +.IX Item "GetDiagonalValues" +.Vb 2 +\& @Values = $Matrix\->GetDiagonalValues(); +\& $ValueCount = $Matrix\->GetDiagonalValues(); +.Ve +.Sp +Returns an array containing diagonal values. In scalar context, number of diagonal +values is returned. +.IP "\fBGetDiagonalValuesAsColumnMatrix\fR" 4 +.IX Item "GetDiagonalValuesAsColumnMatrix" +.Vb 1 +\& $ColumnMatrix = $Matrix\->GetDiagonalValuesAsColumnMatrix(); +.Ve +.Sp +Returns a new \fBColumnMatrix\fR containing diagonal values corresponding to \fIMatrix\fR. +.IP "\fBGetDiagonalValuesAsRowMatrix\fR" 4 +.IX Item "GetDiagonalValuesAsRowMatrix" +.Vb 1 +\& $RowMatrix = $Matrix\->GetDiagonalValuesAsRowMatrix(); +.Ve +.Sp +Returns a new \fBRowMatrix\fR containing diagonal values corresponding to \fIMatrix\fR. +.IP "\fBGetDiagonalValuesAsString\fR" 4 +.IX Item "GetDiagonalValuesAsString" +.Vb 1 +\& $DiagonalValuesString = $Matrix\->GetDiagonalValuesAsString(); +.Ve +.Sp +Returns a space delimited \fBDiagonalValuesString\fR containing diagonal values corresponding to +\&\fIMatrix\fR. +.IP "\fBGetDiagonalValuesAsVector\fR" 4 +.IX Item "GetDiagonalValuesAsVector" +.Vb 1 +\& $DiagonalVector = $Matrix\->GetDiagonalValuesAsVector(); +.Ve +.Sp +Returns a new \fBDiagonalVector\fR containing diagonal values corresponding to \fIMatrix\fR. +.IP "\fBGetDimension\fR" 4 +.IX Item "GetDimension" +.Vb 1 +\& ($NumOfRows, $NumOfCols) = $Matrix\->GetDimension(); +.Ve +.Sp +Returns size of \fIMatrix\fR. +.IP "\fBGetMatrixValuesReference\fR" 4 +.IX Item "GetMatrixValuesReference" +.Vb 1 +\& $ValuesRef = $Matrix\->GetMatrixValuesReference(); +.Ve +.Sp +Returns a reference to array containing rows and column values corresponding to \fIMatrix\fR. +.IP "\fBGetNumOfColumns\fR" 4 +.IX Item "GetNumOfColumns" +.Vb 1 +\& $NumOfCols = $Matrix\->GetNumOfColumns(); +.Ve +.Sp +Returns \fBNumOfCols\fR in \fIMatrix\fR. +.IP "\fBGetNumOfRows\fR" 4 +.IX Item "GetNumOfRows" +.Vb 1 +\& $NumOfRows = $Matrix\->GetNumOfRows(); +.Ve +.Sp +Returns \fBNumOfRows\fR in \fIMatrix\fR. +.IP "\fBGetRowValues\fR" 4 +.IX Item "GetRowValues" +.Vb 2 +\& @Values = $Matrix\->GetRowValues($RowIndex); +\& $ValueCount = $Matrix\->GetRowValues($RowIndex); +.Ve +.Sp +Returns an array containing row value specified using \fIRowIndex\fR with row index +starting at 0. In scalar context, number of row values is returned. +.IP "\fBGetRowValuesAsColumnMatrix\fR" 4 +.IX Item "GetRowValuesAsColumnMatrix" +.Vb 1 +\& $ColumnMatrix = $Matrix\->GetRowValuesAsColumnMatrix($RowIndex); +.Ve +.Sp +Returns a new \fBColumnMatrix\fR containing row values specified using \fIRowIndex\fR with +column index starting at 0. +.IP "\fBGetRowValuesAsRowMatrix\fR" 4 +.IX Item "GetRowValuesAsRowMatrix" +.Vb 1 +\& $RowMatrix = $Matrix\->GetRowValuesAsRowMatrix($RowIndex); +.Ve +.Sp +Returns a new \fBRowMatrix\fR containing row values specified using \fIRowIndex\fR with +row index starting at 0. +.IP "\fBGetRowValuesAsString\fR" 4 +.IX Item "GetRowValuesAsString" +.Vb 1 +\& $RowValuesString = $Matrix\->GetRowValuesAsString($RowIndex); +.Ve +.Sp +Returns a space delimited \fBRowValuesString\fR row values specified using \fIRowIndex\fR with +row index starting at 0. +.IP "\fBGetRowValuesAsVector\fR" 4 +.IX Item "GetRowValuesAsVector" +.Vb 1 +\& $RowVector = $Matrix\->GetColumnValuesAsVector($RowIndex); +.Ve +.Sp +Returns a new \fBRowVector\fR row values specified using \fIRowIndex\fR with +row index starting at 0. +.IP "\fBGetSize\fR" 4 +.IX Item "GetSize" +.Vb 1 +\& ($NumOfRows, $NumOfCols) = $Matrix\->GetSize(); +.Ve +.Sp +Returns size of \fIMatrix\fR. +.IP "\fBGetValue\fR" 4 +.IX Item "GetValue" +.Vb 1 +\& $Value = $Matrix\->GetValue($RowIndex, $ColIndex, [$SkipIndexCheck]); +.Ve +.Sp +Returns \fBValue\fR of \fIMatrix\fR element specified using \fIRowIndex\fR and \fIColIndex\fR with indicies +starting at 0 with optional validation of specified index values. +.IP "\fBIdentityMatrix\fR" 4 +.IX Item "IdentityMatrix" +.Vb 3 +\& $NewIdentityMatrix = $Matrix\->IdentityMatrix($NumOfRows, $NumOfCols); +\& $NewIdentityMatrix = Matrix::IdentityMatrix($NumOfRows, $NumOfCols); +\& $NewIdentityMatrix = Matrix::IdentityMatrix(); +.Ve +.Sp +Creates a new \fBIdentityMatrix\fR of specified size \fINumOfRows x NumOfCol\fR or of size 3 x 3 and +returns \fBNewIdentityMatrix\fR object. +.IP "\fBIsAntiSymmetric\fR" 4 +.IX Item "IsAntiSymmetric" +.Vb 1 +\& $Status = $Matrix\->IsAntiSymmetric(); +.Ve +.Sp +Returns 1 or 0 based on whether \fIMatrix\fR is an anti symmetric matrix. +.Sp +A matrix is an anti symmetric matrix: +.Sp +.Vb 4 +\& . It\*(Aqs a square matrix +\& . Its elements are asymmetric with respect to main diagonal. In other words, +\& elements below the main diagonal are equal to the negative of elements above +\& the main diagonal. +.Ve +.Sp +Transpose of an anti symmetric matrix equals the negative of the matrix. +.IP "\fBIsBiDiagonal\fR" 4 +.IX Item "IsBiDiagonal" +.Vb 1 +\& $Status = $Matrix\->IsBiDiagonal(); +.Ve +.Sp +Returns 1 or 0 based on whether \fIMatrix\fR is upper or lower bidiagonal matrix. +.IP "\fBIsDiagonal\fR" 4 +.IX Item "IsDiagonal" +.Vb 1 +\& $Status = $Matrix\->IsDiagonal(); +.Ve +.Sp +Returns 1 or 0 based on whether \fIMatrix\fR is a diagonal matrix. +.Sp +A matrix is a diagonal matrix: +.Sp +.Vb 3 +\& . It\*(Aqs a square matrix +\& . All its off\-diagonal elements are zeros and its diagonal elements may or may not +\& be zeros +.Ve +.IP "\fBIsIdentity\fR" 4 +.IX Item "IsIdentity" +.Vb 1 +\& $Status = $Matrix\->IsIdentity(); +.Ve +.Sp +Returns 1 or 0 based on whether \fIMatrix\fR is an identity matrix. +.IP "\fBIsLeftTriangular\fR" 4 +.IX Item "IsLeftTriangular" +.Vb 1 +\& $Status = $Matrix\->IsLeftTriangular(); +.Ve +.Sp +Returns 1 or 0 based on whether \fIMatrix\fR is a left or lower matrix. +.Sp +A matrix is a left triangular matrix: +.Sp +.Vb 2 +\& . It\*(Aqs a square matrix +\& . All its entries above the main diagonal are zero +.Ve +.IP "\fBIsLowerBiDiagonal\fR" 4 +.IX Item "IsLowerBiDiagonal" +.Vb 1 +\& $Status = $Matrix\->IsLowerBiDiagonal(); +.Ve +.Sp +Returns 1 or 0 based on whether \fIMatrix\fR is a lower bidiagonal matrix. +.Sp +A matrix is a lower bidiagonal matrix: +.Sp +.Vb 3 +\& . It\*(Aqs a square matrix +\& . All its main diagonal and lower diagonal elements are non\-zeros and all its +\& other elements are zeros +.Ve +.IP "\fBIsLowerTriangular\fR" 4 +.IX Item "IsLowerTriangular" +.Vb 1 +\& $Status = $Matrix\->IsLowerTriangular(); +.Ve +.Sp +Returns 1 or 0 based on whether \fIMatrix\fR is a left or lower triangular matrix. +.Sp +A matrix is a lower triangular matrix: +.Sp +.Vb 2 +\& . It\*(Aqs a square matrix +\& . All its entries above the main diagonal are zero +.Ve +.IP "\fBIsLowerUniTriangular\fR" 4 +.IX Item "IsLowerUniTriangular" +.Vb 1 +\& $Status = $Matrix\->IsLowerUniTriangular(); +.Ve +.Sp +Returns 1 or 0 based on whether \fIMatrix\fR is a lower triangular matrix. +.IP "\fBIsMatrix\fR" 4 +.IX Item "IsMatrix" +.Vb 1 +\& $Status = Matrix::IsMatrix($Object); +.Ve +.Sp +Returns 1 or 0 based on whether \fIObject\fR is a \fBMatrix\fR object. +.IP "\fBIsNegative\fR" 4 +.IX Item "IsNegative" +.Vb 1 +\& $Status = $Matrix\->IsNegative(); +.Ve +.Sp +Returns 1 or 0 based on whether \fIMatrix\fR is a negative matrix containing only values +less than or equal to zero. +.IP "\fBIsPositive\fR" 4 +.IX Item "IsPositive" +.Vb 1 +\& $Status = $Matrix\->IsPositive(); +.Ve +.Sp +Returns 1 or 0 based on whether \fIMatrix\fR is a negative matrix containing only values +greater than or equal to zero. +.IP "\fBIsRightTriangular\fR" 4 +.IX Item "IsRightTriangular" +.Vb 1 +\& $Status = $Matrix\->IsRightTriangular(); +.Ve +.Sp +Returns 1 or 0 based on whether \fIMatrix\fR is a right or upper triangular matrix. +.IP "\fBIsSkewSymmetric\fR" 4 +.IX Item "IsSkewSymmetric" +.Vb 1 +\& $Status = $Matrix\->IsSkewSymmetric(); +.Ve +.Sp +Returns 1 or 0 based on whether \fIMatrix\fR is a skew or anti symmetric matrix. +.IP "\fBIsSquare\fR" 4 +.IX Item "IsSquare" +.Vb 1 +\& $Status = $Matrix\->IsSquare(); +.Ve +.Sp +Returns 1 or 0 based on whether \fIMatrix\fR is a square matrix containing equal +number of rows and columns. +.IP "\fBIsStrictlyLowerTriangular\fR" 4 +.IX Item "IsStrictlyLowerTriangular" +.Vb 1 +\& $Status = $Matrix\->IsStrictlyLowerTriangular(); +.Ve +.Sp +Returns 1 or 0 based on whether \fIMatrix\fR is a strictly lower triangular matrix. +.Sp +A matrix is a strictly lower triangular matrix: +.Sp +.Vb 2 +\& . It\*(Aqs a square matrix +\& . All its entries on and above the main diagonal are zero +.Ve +.IP "\fBIsStrictlyUpperTriangular\fR" 4 +.IX Item "IsStrictlyUpperTriangular" +.Vb 1 +\& $Status = $Matrix\->IsStrictlyUpperTriangular(); +.Ve +.Sp +Returns 1 or 0 based on whether \fIMatrix\fR is a strictly upper triangular matrix. +.Sp +A matrix is a strictly upper triangular matrix: +.Sp +.Vb 2 +\& . It\*(Aqs a square matrix +\& . All its entries on and below the main diagonal are zero +.Ve +.IP "\fBIsSymmetric\fR" 4 +.IX Item "IsSymmetric" +.Vb 1 +\& $Status = $Matrix\->IsSymmetric(); +.Ve +.Sp +Returns 1 or 0 based on whether \fIMatrix\fR is a symmetric matrix. +.Sp +A matrix is a symmetric matrix: +.Sp +.Vb 4 +\& . It\*(Aqs a square matrix +\& . Its elements are symmetric with respect to main diagonal. In other words, +\& elements below the main diagonal are equal to the elements above the main +\& diagonal. +.Ve +.Sp +Transpose of a symmetric matrix equals the matrix itself. +.IP "\fBIsTriDiagonal\fR" 4 +.IX Item "IsTriDiagonal" +.Vb 1 +\& $Status = $Matrix\->IsTriDiagonal(); +.Ve +.Sp +Returns 1 or 0 based on whether \fIMatrix\fR is a tridiagonal matrix. +.Sp +A matrix is a tribidiagonal matrix: +.Sp +.Vb 3 +\& . It\*(Aqs a square matrix +\& . All its main diagonal, upper diagonal, and lower diagonal elements are non\-zeros and all its +\& other elements are zeros +.Ve +.IP "\fBIsUnit\fR" 4 +.IX Item "IsUnit" +.Vb 1 +\& $Status = $Matrix\->IsUnit(); +.Ve +.Sp +Returns 1 or 0 based on whether \fIMatrix\fR is a unit matrix. +.Sp +A matrix is a unit matrix: +.Sp +.Vb 2 +\& . It\*(Aqs a square matrix +\& . All its diagonal elements are ones and its off\-diagonal elements are zeros +.Ve +.IP "\fBIsUnitLowerTriangular\fR" 4 +.IX Item "IsUnitLowerTriangular" +.Vb 1 +\& $Status = $Matrix\->IsUnitLowerTriangular(); +.Ve +.Sp +Returns 1 or 0 based on whether \fIMatrix\fR is an unit lower triangular matrix. +.Sp +A matrix is an unit lower triangular matrix: +.Sp +.Vb 3 +\& . It\*(Aqs a square matrix +\& . All its entries main diagonal are one +\& . All its entries above the main diagonal are zero +.Ve +.IP "\fBIsUnitUpperTriangular\fR" 4 +.IX Item "IsUnitUpperTriangular" +.Vb 1 +\& $Status = $Matrix\->IsUnitUpperTriangular(); +.Ve +.Sp +Returns 1 or 0 based on whether \fIMatrix\fR is an unit upper triangular matrix. +.Sp +A matrix is an unit upper triangular matrix: +.Sp +.Vb 3 +\& . It\*(Aqs a square matrix +\& . All its entries main diagonal are one +\& . All its entries below the main diagonal are zero +.Ve +.IP "\fBIsUpperBiDiagonal\fR" 4 +.IX Item "IsUpperBiDiagonal" +.Vb 1 +\& $Status = $Matrix\->IsUpperBiDiagonal(); +.Ve +.Sp +Returns 1 or 0 based on whether \fIMatrix\fR is an upper bidiagonal matrix. +.Sp +A matrix is an upper bidiagonal matrix: +.Sp +.Vb 3 +\& . It\*(Aqs a square matrix +\& . All its main diagonal and upper diagonal elements are non\-zeros and all its +\& other elements are zeros +.Ve +.IP "\fBIsUpperTriangular\fR" 4 +.IX Item "IsUpperTriangular" +.Vb 1 +\& $Status = $Matrix\->IsUpperTriangular(); +.Ve +.Sp +Returns 1 or 0 based on whether \fIMatrix\fR is a right or upper triangular matrix. +.Sp +A matrix is an upper triangular matrix: +.Sp +.Vb 2 +\& . It\*(Aqs a square matrix +\& . All its entries below the main diagonal are zero +.Ve +.IP "\fBIsUpperUniTriangular\fR" 4 +.IX Item "IsUpperUniTriangular" +.Vb 1 +\& $Status = $Matrix\->IsUpperUniTriangular(); +.Ve +.Sp +Returns 1 or 0 based on whether \fIMatrix\fR is a right or upper triangular matrix. +.IP "\fBNewFromColumns\fR" 4 +.IX Item "NewFromColumns" +.Vb 3 +\& $NewMatrix = Matrix::NewFromColumns($Col1Vector, $Col2Vector, ...); +\& $NewMatrix = Matrix::NewFromColumns($Col1ValuesRef, $Col2ValuesRef, ...); +\& $NewMatrix = Matrix::NewFromColumns("Val1 Val2 ...", "Val1 Val2", ...); +\& +\& $NewMatrix = $Matrix\->NewFromColumns($Col1Vector, $Col2Vector, ...); +\& $NewMatrix = $Matrix\->NewFromColumns($Col1ValuesRef, $Col2ValuesRef, ...); +\& $NewMatrix = $Matrix\->NewFromColumns("Val1 Val2 ...", "Val1 Val2", ...); +.Ve +.Sp +Creates a new \fBMatrix\fR using specified column values and returns \fBNewMatrix\fR object. +.Sp +The column values can be specified in one of the following formats: +.Sp +.Vb 3 +\& . List of vector objects +\& . References to list of values +\& . List of strings containing columns values delimited by space +.Ve +.Sp +Each column must contain the same number of values. +.IP "\fBNewFromDiagonal\fR" 4 +.IX Item "NewFromDiagonal" +.Vb 3 +\& $NewMatrix = Matrix::NewFromDiagonal($DiagonalVector); +\& $NewMatrix = Matrix::NewFromDiagonal($DiagonalValuesRef); +\& $NewMatrix = Matrix::NewFromDiagonal("Val1 Val2 ..."); +\& +\& $NewMatrix = Matrix\->NewFromDiagonal($DiagonalVector); +\& $NewMatrix = Matrix\->NewFromDiagonal($DiagonalValuesRef); +\& $NewMatrix = Matrix\->NewFromDiagonal("Val1 Val2 ..."); +.Ve +.Sp +Creates a new \fBMatrix\fR using specified diagonal values and returns \fBNewMatrix\fR object. +.Sp +The column values can be specified in one of the following formats: +.Sp +.Vb 3 +\& . A vector object +\& . Reference to list of values +\& . Strings containing diagonal values delimited by space +.Ve +.IP "\fBNewFromRows\fR" 4 +.IX Item "NewFromRows" +.Vb 3 +\& $NewMatrix = Matrix::NewFromRows($Row1Vector, $RowVector, ...); +\& $NewMatrix = Matrix::NewFromRows($Row1ValuesRef, $Row2ValuesRef, ...); +\& $NewMatrix = Matrix::NewFromRows("Val1 Val2 ...", "Val1 Val2", ...); +\& +\& $NewMatrix = $Matrix\->NewFromRows($Row1Vector, $Row2Vector, ...); +\& $NewMatrix = $Matrix\->NewFromRows($Row1ValuesRef, $Row2ValuesRef, ...); +\& $NewMatrix = $Matrix\->NewFromRows("Val1 Val2 ...", "Val1 Val2", ...); +.Ve +.Sp +Creates a new \fBMatrix\fR using specified row values and returns \fBNewMatrix\fR object. +.Sp +The row values can be specified in one of the following formats: +.Sp +.Vb 3 +\& . List of vector objects +\& . References to list of values +\& . List of strings containing columns values delimited by space +.Ve +.Sp +Each row must contain the same number of values. +.IP "\fBOne\fR" 4 +.IX Item "One" +.Vb 1 +\& $Matrix\->One(); +.Ve +.Sp +Sets values of all \fIMatrix\fR elements to 1 and returns \fIMatrix\fR. +.IP "\fBSetAllValues\fR" 4 +.IX Item "SetAllValues" +.Vb 1 +\& $Matrix\->SetAllValues($Value); +.Ve +.Sp +Sets values of all \fIMatrix\fR elements to specified \fIValue\fR and returns \fIMatrix\fR. +.IP "\fBSetColumnValues\fR" 4 +.IX Item "SetColumnValues" +.Vb 4 +\& $Matrix\->SetColumnValues($ColIndex, @Values); +\& $Matrix\->SetColumnValues($ColIndex, \e@Values); +\& $Matrix\->SetColumnValues($ColIndex, $VectorObject); +\& $Matrix\->SetColumnValues($ColIndex, "Value1 Value2 Value3 ..."); +.Ve +.Sp +Sets column values of a specified \fIColIndex\fR of \fIMatrix\fR using an array, reference to an array, +another vector, or space delimited value string and returns \fIMatrix\fR. +.IP "\fBSetDiagonalValues\fR" 4 +.IX Item "SetDiagonalValues" +.Vb 4 +\& $Matrix\->SetDiagonalValues(@Values); +\& $Matrix\->SetDiagonalValues(\e@Values); +\& $Matrix\->SetDiagonalValues($VectorObject); +\& $Matrix\->SetDiagonalValues("Value1 Value2 Value3 ..."); +.Ve +.Sp +Sets values of the diagonal in square \fIMatrix\fR and returns \fIMatrix\fR. +.IP "\fBSetMatrixPrintStyle\fR" 4 +.IX Item "SetMatrixPrintStyle" +.Vb 2 +\& $Matrix\->SetMatrixPrintStyle($MatrixStyle); +\& $Matrix::SetMatrixPrintStyle($MatrixStyle); +.Ve +.Sp +Sets print style for matrix rows for an individual object or the whole class during StringifyMatrix +operation. Possible \fIMatrixStyle\fR values: \fIAllRowsInOneLine, OneRowPerLine\fR. Default: +\&\fIAllRowsInOneLine\fR. +.IP "\fBSetRowValues\fR" 4 +.IX Item "SetRowValues" +.Vb 4 +\& $Matrix\->SetRowValues($ColIndex, @Values); +\& $Matrix\->SetRowValues($ColIndex, \e@Values); +\& $Matrix\->SetRowValues($ColIndex, $VectorObjext); +\& $Matrix\->SetRowValues($ColIndex, "Value1 Value2 Value3 ..."); +.Ve +.Sp +Sets row values of a specified \fIRowIndex\fR of \fIMatrix\fR using an array, reference to an array, +another vector, or space delimited value string and returns \fIMatrix\fR. +.IP "\fBSetValue\fR" 4 +.IX Item "SetValue" +.Vb 1 +\& $Matrix\->SetValue($RowIndex, $ColIndex, $Value, [$SkipIndexCheck]); +.Ve +.Sp +Sets \fBValue\fR of \fIMatrix\fR element specified using \fIRowIndex\fR and \fIColIndex\fR with indicies +starting at 0 with optional validation of specified index values and return \fIMatrix\fR. +.IP "\fBSetValuePrintFormat\fR" 4 +.IX Item "SetValuePrintFormat" +.Vb 2 +\& $Matrix\->SetValuePrintFormat($ValueFormat); +\& $Matrix::SetValuePrintFormat($ValueFormat); +.Ve +.Sp +Sets value print format for an individual object or the whole class during StringifyMatrix operation +and returns \fIMatrix\fR. +.IP "\fBStringifyMatrix\fR" 4 +.IX Item "StringifyMatrix" +.Vb 1 +\& $String = $Matrix\->StringifyMatrix(); +.Ve +.Sp +Returns a string containing information about \fIMatrix\fR object. +.IP "\fBTranspose\fR" 4 +.IX Item "Transpose" +.Vb 1 +\& $Matrix\->Transpose(); +.Ve +.Sp +Transposes \fIMatrix\fR by swaping rows with columns and returns \fIMatrix\fR. +.IP "\fBUnitMatrix\fR" 4 +.IX Item "UnitMatrix" +.Vb 3 +\& $NewUnitMatrix = $Matrix::UnitMatrix($NumOfRows, $NumOfCols); +\& $NewUnitMatrix = $Matrix::UnitMatrix(); +\& $NewUnitMatrix = $Matrix\->UnitMatrix($NumOfRows, $NumOfCols); +.Ve +.Sp +Creates a new \fBUnitMatrix\fR of specified size \fINumOfRows x NumOfCol\fR or of size 3 x 3 and +returns \fBNewUnitMatrix\fR object. +.IP "\fBZero\fR" 4 +.IX Item "Zero" +.Vb 1 +\& $Matrix\->Zero(); +.Ve +.Sp +Sets values of all \fIMatrix\fR elements to 0 and returns \fIMatrix\fR. +.IP "\fBZeroMatrix\fR" 4 +.IX Item "ZeroMatrix" +.Vb 3 +\& $NewZeroMatrix = $Matrix::ZeroMatrix($NumOfRows, $NumOfCols); +\& $NewZeroMatrix = $Matrix::ZeroMatrix(); +\& $NewZeroMatrix = $Matrix\->ZeroMatrix($NumOfRows, $NumOfCols); +.Ve +.Sp +Creates a new \fBZeroMatrix\fR of specified size \fINumOfRows x NumOfCol\fR or of size 3 x 3 and +returns \fBNewZeroMatrix\fR object. +.SH "AUTHOR" +.IX Header "AUTHOR" +Manish Sud <msud@san.rr.com> +.SH "SEE ALSO" +.IX Header "SEE ALSO" +Vector.pm +.SH "COPYRIGHT" +.IX Header "COPYRIGHT" +Copyright (C) 2015 Manish Sud. All rights reserved. +.PP +This file is part of MayaChemTools. +.PP +MayaChemTools is free software; you can redistribute it and/or modify it under +the terms of the \s-1GNU\s0 Lesser General Public License as published by the Free +Software Foundation; either version 3 of the License, or (at your option) +any later version.