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.