ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_matrixClass Module Reference

This module contains abstract and concrete derived types that are required for compile-time resolution of procedures within the generic interfaces of the ParaMonte library for Linear Algebra operations.
Such procedures frequently need to work on different classes of matrices (e.g., Symmetric, Hermitian, Unitary, Orthogonal, ...) as their input matrix arguments.
More...

Data Types

type  atomicTriang_type
 This is a concrete derived type whose instances are exclusively used to signify the atomic-triangular class of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type  cholesky_type
 This is a concrete derived type whose instances are exclusively used to signify the Cholesky Factorization class of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type  choLow_type
 This is a concrete derived type whose instances are exclusively used to signify the lower-triangle Cholesky Factorization class of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type  choUpp_type
 This is a concrete derived type whose instances are exclusively used to signify the upper-triangle Cholesky Factorization class of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type  factoring_type
 This is a concrete derived type whose instances are exclusively used to signify the Factorization class of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type  frobenius_type
 This is a concrete derived type whose instances are exclusively used to signify the frobenius class of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type  gauss_type
 This is a concrete derived type whose instances are exclusively used to signify the Gauss-Transformation class of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type  genrecmat_type
 This is a concrete derived type whose instances are exclusively used to signify the general rectangular class of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type  hermitian_type
 This is a concrete derived type whose instances are exclusively used to signify the Hermitian class of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type  invertible_type
 This is a concrete derived type whose instances are exclusively used to signify the Invertible class of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
interface  isMatClass
 Generate and return .true. if and only if the input matrix is of the specified input class.
More...
 
type  lowerDiag_type
 This is a concrete derived type whose instances are exclusively used to signify the lower-diagonal triangular class of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type  lowerUnit_type
 This is a concrete derived type whose instances are exclusively used to signify the lower-unit-diagonal triangular class of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type  lowerZero_type
 This is a concrete derived type whose instances are exclusively used to signify the lower-zero-diagonal triangular class of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type  lup_type
 This is a concrete derived type whose instances are exclusively used to signify the LUP Factorization class of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type  matrix_type
 This is an abstract derived type for constructing concrete derived types to distinguish various procedure signatures that require different matrix classes (e.g., Symmetric, Hermitian, ...).
More...
 
type  posdefmat_type
 This is a concrete derived type whose instances are exclusively used to signify the Hermitian Positive-Definite class of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type  square_type
 This is a concrete derived type whose instances are exclusively used to signify the Square class of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type  symmetric_type
 This is a concrete derived type whose instances are exclusively used to signify the Symmetric class of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type  triang_type
 This is a concrete derived type whose instances are exclusively used to signify the triangular class of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type  unitTriang_type
 This is a concrete derived type whose instances are exclusively used to signify the unit-triangular class of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type  upperDiag_type
 This is a concrete derived type whose instances are exclusively used to signify the upper-diagonal triangular class of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type  upperUnit_type
 This is a concrete derived type whose instances are exclusively used to signify the upper-unit-diagonal triangular class of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type  upperZero_type
 This is a concrete derived type whose instances are exclusively used to signify the upper-zero-diagonal triangular class of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 

Variables

character(*, SK), parameter MODULE_NAME = "@pm_matrixClass"
 
type(genrecmat_type), parameter genrecmat = genrecmat_type()
 This is a scalar parameter object of type genrecmat_type that is exclusively used to signify the general rectangular class of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type(square_type), parameter square = square_type()
 This is a scalar parameter object of type square_type that is exclusively used to signify the Square class of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type(invertible_type), parameter invertible = invertible_type()
 This is a scalar parameter object of type invertible_type that is exclusively used to signify the Invertible class of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type(factoring_type), parameter factoring = factoring_type()
 This is a scalar parameter object of type factoring_type that is exclusively used to signify the Factorization class of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type(cholesky_type), parameter cholesky = cholesky_type()
 This is a scalar parameter object of type cholesky_type that is exclusively used to signify the Cholesky Factorization class of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type(choLow_type), parameter choLow = choLow_type()
 This is a scalar parameter object of type cholesky_type that is exclusively used to signify lower-triangle Cholesky Factorization class of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type(choUpp_type), parameter choUpp = choUpp_type()
 This is a scalar parameter object of type cholesky_type that is exclusively used to signify upper-triangle Cholesky Factorization class of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type(lup_type), parameter lup = lup_type()
 This is a scalar parameter object of type lup_type that is exclusively used to signify the LUP Factorization class of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type(symmetric_type), parameter symmetric = symmetric_type()
 This is a scalar parameter object of type symmetric_type that is exclusively used to signify the Symmetric class of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type(hermitian_type), parameter hermitian = hermitian_type()
 This is a scalar parameter object of type hermitian_type that is exclusively used to signify the Hermitian class of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type(posdefmat_type), parameter posdefmat = posdefmat_type()
 This is a scalar parameter object of type hermitian_type that is exclusively used to signify the Hermitian class of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type(triang_type), parameter triang = triang_type()
 This is a scalar parameter object of type triang_type that is exclusively used to signify the triangular class of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type(upperDiag_type), parameter upperDiag = upperDiag_type()
 This is a scalar parameter object of type upperDiag_type that is exclusively used to signify the upper-diagonal triangular class of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type(upperUnit_type), parameter upperUnit = upperUnit_type()
 This is a scalar parameter object of type upperUnit_type that is exclusively used to signify the upper-unit-diagonal triangular class of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type(upperZero_type), parameter upperZero = upperZero_type()
 This is a scalar parameter object of type upperUnit_type that is exclusively used to signify the upper-zero-diagonal triangular class of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type(lowerDiag_type), parameter lowerDiag = lowerDiag_type()
 This is a scalar parameter object of type lowerDiag_type that is exclusively used to signify the lower-diagonal triangular class of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type(lowerUnit_type), parameter lowerUnit = lowerUnit_type()
 This is a scalar parameter object of type upperUnit_type that is exclusively used to signify the lower-unit-diagonal triangular class of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type(lowerZero_type), parameter lowerZero = lowerZero_type()
 This is a scalar parameter object of type lowerUnit_type that is exclusively used to signify the lower-zero-diagonal triangular class of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type(unitTriang_type), parameter unitTriang = unitTriang_type()
 This is a scalar parameter object of type unitTriang_type that is exclusively used to signify the unit-triangular class of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type(atomicTriang_type), parameter atomicTriang = atomicTriang_type()
 This is a scalar parameter object of type atomicTriang_type that is exclusively used to signify the atomic-triangular class of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type(frobenius_type), parameter frobenius = frobenius_type()
 This is a scalar parameter object of type frobenius_type that is exclusively used to signify the atomic-triangular class of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type(gauss_type), parameter gauss = gauss_type()
 This is a scalar parameter object of type gauss_type that is exclusively used to signify the atomic-triangular class of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 

Detailed Description

This module contains abstract and concrete derived types that are required for compile-time resolution of procedures within the generic interfaces of the ParaMonte library for Linear Algebra operations.
Such procedures frequently need to work on different classes of matrices (e.g., Symmetric, Hermitian, Unitary, Orthogonal, ...) as their input matrix arguments.

A large important group of matrices are defined based on their transposition properties. In linear algebra, the transpose of a matrix is an operator which flips a matrix over its diagonal.
It switches the row and column indices of a given matrix \(A\) by producing another (transposed) matrix.
The transpose of a matrix was introduced in 1858 by the British mathematician Arthur Cayley.

Notation
The transpose of a given matrix \(A\) is frequently denoted by \(A^T\).
In the case of square matrices, \(A^T\) may also denote the \(T\)th power of the matrix \(A\).
To avoid a possible confusion, some use left upperscripts to denote transpose, that is, \({}^TA\).
An advantage of this notation is that no parentheses are needed when exponents are involved as \(({}^TA)^n = {}^T(A^n)\), notation \({}^TA^n\) is not ambiguous.

Definition
The transpose of a matrix \(A\) may be constructed by any one of the following methods,

  1. Reflect \(A\) over its main diagonal (which runs from top-left to bottom-right) to obtain \(A^T\).
  2. Write the rows of \(A\) as the columns of \(A^T\).
  3. Write the columns of \(A\) as the rows of \(A^T\).

Formally, the \(i\)-th row, \(j\)-th column element of \(A^T\) is the \(j\)-th row, \(i\)-th column element of \(A\),

\begin{equation} \left[\mathbf{A}^{\up{T}}\right]_{ij} = \left[\mathbf{A} \right]_{ji} ~. \end{equation}

If \(A\) is an \(m \times n\) matrix, then \(A^T\) is an \(n \times m\) matrix.

Matrix definitions involving transposition

  1. Symmetric Matrix
    A square matrix whose transpose is equal to itself is called a symmetric matrix.
    In other words, \(A\) is symmetric if \(\mathbf{A}^{\up{T}} = \mathbf{A}\).
  2. Skew-Symmetric Matrix
    A square matrix whose transpose is equal to its negative is called a skew-symmetric matrix In other words, \(A\) is skew-symmetric if \(\mathbf{A}^{\up{T}} = -\mathbf{A}\).
  3. Hermitian Matrix
    A square complex matrix whose transpose equals the matrix with every entry replaced by its complex conjugate ( \(\overline{\cdot}\)) is called a Hermitian matrix.
    In other words, \(A\) is Hermitian if \(\mathbf{A}^{\up{T}} = \overline{\mathbf{A}}\).
    This special kind of transpose is also called a Hermitian transpose or Conjugate transpose.
  4. Skew-Hermitian Matrix
    A square complex matrix whose transpose is equal to the negation of its complex conjugate is called a skew-Hermitian matrix.
    In other words, \(A\) is skew-Hermitian if \(\mathbf{A}^{\up{T}} = -{\overline{\mathbf{A}}}\).
  5. Unitary Matrix
    A square complex matrix whose transpose is equal to its conjugate inverse is called a unitary matrix.
    In other words, \(A\) is unitary if \(\mathbf{A}^{\up{T}} = {\overline{\mathbf{A}^{-1}}}\).
  6. Orthogonal Matrix
    A square matrix whose transpose is equal to its inverse is called an orthogonal matrix.
    In other words, \(A\) is orthogonal if \(\mathbf{A}^{\up{T}} = \mathbf{A}^{-1}\).
Todo:
High Priority: This module is a work in progress.
Various missing classifications of matrices should be added in the future and the existing classifications be refined.


Final Remarks


If you believe this algorithm or its documentation can be improved, we appreciate your contribution and help to edit this page's documentation and source file on GitHub.
For details on the naming abbreviations, see this page.
For details on the naming conventions, see this page.
This software is distributed under the MIT license with additional terms outlined below.

  1. If you use any parts or concepts from this library to any extent, please acknowledge the usage by citing the relevant publications of the ParaMonte library.
  2. If you regenerate any parts/ideas from this library in a programming environment other than those currently supported by this ParaMonte library (i.e., other than C, C++, Fortran, MATLAB, Python, R), please also ask the end users to cite this original ParaMonte library.

This software is available to the public under a highly permissive license.
Help us justify its continued development and maintenance by acknowledging its benefit to society, distributing it, and contributing to it.

Author:
Amir Shahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin

Variable Documentation

◆ atomicTriang

type(atomicTriang_type), parameter pm_matrixClass::atomicTriang = atomicTriang_type()

This is a scalar parameter object of type atomicTriang_type that is exclusively used to signify the atomic-triangular class of a given matrix within an interface of a procedure of the ParaMonte library.

For example usage, see the documentation of the target procedure requiring this object.

See also
genrecmat
posdefmat
symmetric
hermitian
triang_type
posdefmat_type
symmetric_type
hermitian_type
upperDiag_type
lowerDiag_type
upperZero_type
lowerZero_type
upperUnit_type
lowerUnit_type
unitTriang_type
atomicTriang_type
frobenius_type
genrecmat_type
matrix_type
gauss_type


Final Remarks


If you believe this algorithm or its documentation can be improved, we appreciate your contribution and help to edit this page's documentation and source file on GitHub.
For details on the naming abbreviations, see this page.
For details on the naming conventions, see this page.
This software is distributed under the MIT license with additional terms outlined below.

  1. If you use any parts or concepts from this library to any extent, please acknowledge the usage by citing the relevant publications of the ParaMonte library.
  2. If you regenerate any parts/ideas from this library in a programming environment other than those currently supported by this ParaMonte library (i.e., other than C, C++, Fortran, MATLAB, Python, R), please also ask the end users to cite this original ParaMonte library.

This software is available to the public under a highly permissive license.
Help us justify its continued development and maintenance by acknowledging its benefit to society, distributing it, and contributing to it.

Author:
Amir Shahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin

Definition at line 1808 of file pm_matrixClass.F90.

◆ cholesky

type(cholesky_type), parameter pm_matrixClass::cholesky = cholesky_type()

This is a scalar parameter object of type cholesky_type that is exclusively used to signify the Cholesky Factorization class of a given matrix within an interface of a procedure of the ParaMonte library.

For example usage, see the documentation of the target procedure requiring this object.

See also
genrecmat
posdefmat
symmetric
hermitian
triang_type
posdefmat_type
symmetric_type
hermitian_type
upperDiag_type
lowerDiag_type
upperZero_type
lowerZero_type
upperUnit_type
lowerUnit_type
unitTriang_type
atomicTriang_type
frobenius_type
genrecmat_type
matrix_type
gauss_type


Final Remarks


If you believe this algorithm or its documentation can be improved, we appreciate your contribution and help to edit this page's documentation and source file on GitHub.
For details on the naming abbreviations, see this page.
For details on the naming conventions, see this page.
This software is distributed under the MIT license with additional terms outlined below.

  1. If you use any parts or concepts from this library to any extent, please acknowledge the usage by citing the relevant publications of the ParaMonte library.
  2. If you regenerate any parts/ideas from this library in a programming environment other than those currently supported by this ParaMonte library (i.e., other than C, C++, Fortran, MATLAB, Python, R), please also ask the end users to cite this original ParaMonte library.

This software is available to the public under a highly permissive license.
Help us justify its continued development and maintenance by acknowledging its benefit to society, distributing it, and contributing to it.

Author:
Amir Shahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin

Definition at line 532 of file pm_matrixClass.F90.

◆ choLow

type(choLow_type), parameter pm_matrixClass::choLow = choLow_type()

This is a scalar parameter object of type cholesky_type that is exclusively used to signify lower-triangle Cholesky Factorization class of a given matrix within an interface of a procedure of the ParaMonte library.

For example usage, see the documentation of the target procedure requiring this object.

See also
genrecmat
posdefmat
symmetric
hermitian
triang_type
posdefmat_type
symmetric_type
hermitian_type
upperDiag_type
lowerDiag_type
upperZero_type
lowerZero_type
upperUnit_type
lowerUnit_type
unitTriang_type
atomicTriang_type
frobenius_type
genrecmat_type
matrix_type
gauss_type


Final Remarks


If you believe this algorithm or its documentation can be improved, we appreciate your contribution and help to edit this page's documentation and source file on GitHub.
For details on the naming abbreviations, see this page.
For details on the naming conventions, see this page.
This software is distributed under the MIT license with additional terms outlined below.

  1. If you use any parts or concepts from this library to any extent, please acknowledge the usage by citing the relevant publications of the ParaMonte library.
  2. If you regenerate any parts/ideas from this library in a programming environment other than those currently supported by this ParaMonte library (i.e., other than C, C++, Fortran, MATLAB, Python, R), please also ask the end users to cite this original ParaMonte library.

This software is available to the public under a highly permissive license.
Help us justify its continued development and maintenance by acknowledging its benefit to society, distributing it, and contributing to it.

Author:
Amir Shahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin

Definition at line 615 of file pm_matrixClass.F90.

◆ choUpp

type(choUpp_type), parameter pm_matrixClass::choUpp = choUpp_type()

This is a scalar parameter object of type cholesky_type that is exclusively used to signify upper-triangle Cholesky Factorization class of a given matrix within an interface of a procedure of the ParaMonte library.

For example usage, see the documentation of the target procedure requiring this object.

See also
genrecmat
posdefmat
symmetric
hermitian
triang_type
posdefmat_type
symmetric_type
hermitian_type
upperDiag_type
lowerDiag_type
upperZero_type
lowerZero_type
upperUnit_type
lowerUnit_type
unitTriang_type
atomicTriang_type
frobenius_type
genrecmat_type
matrix_type
gauss_type


Final Remarks


If you believe this algorithm or its documentation can be improved, we appreciate your contribution and help to edit this page's documentation and source file on GitHub.
For details on the naming abbreviations, see this page.
For details on the naming conventions, see this page.
This software is distributed under the MIT license with additional terms outlined below.

  1. If you use any parts or concepts from this library to any extent, please acknowledge the usage by citing the relevant publications of the ParaMonte library.
  2. If you regenerate any parts/ideas from this library in a programming environment other than those currently supported by this ParaMonte library (i.e., other than C, C++, Fortran, MATLAB, Python, R), please also ask the end users to cite this original ParaMonte library.

This software is available to the public under a highly permissive license.
Help us justify its continued development and maintenance by acknowledging its benefit to society, distributing it, and contributing to it.

Author:
Amir Shahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin

Definition at line 698 of file pm_matrixClass.F90.

◆ factoring

type(factoring_type), parameter pm_matrixClass::factoring = factoring_type()

This is a scalar parameter object of type factoring_type that is exclusively used to signify the Factorization class of a given matrix within an interface of a procedure of the ParaMonte library.

For example usage, see the documentation of the target procedure requiring this object.

See also
genrecmat
posdefmat
symmetric
hermitian
triang_type
posdefmat_type
symmetric_type
hermitian_type
upperDiag_type
lowerDiag_type
upperZero_type
lowerZero_type
upperUnit_type
lowerUnit_type
unitTriang_type
atomicTriang_type
frobenius_type
genrecmat_type
matrix_type
gauss_type


Final Remarks


If you believe this algorithm or its documentation can be improved, we appreciate your contribution and help to edit this page's documentation and source file on GitHub.
For details on the naming abbreviations, see this page.
For details on the naming conventions, see this page.
This software is distributed under the MIT license with additional terms outlined below.

  1. If you use any parts or concepts from this library to any extent, please acknowledge the usage by citing the relevant publications of the ParaMonte library.
  2. If you regenerate any parts/ideas from this library in a programming environment other than those currently supported by this ParaMonte library (i.e., other than C, C++, Fortran, MATLAB, Python, R), please also ask the end users to cite this original ParaMonte library.

This software is available to the public under a highly permissive license.
Help us justify its continued development and maintenance by acknowledging its benefit to society, distributing it, and contributing to it.

Author:
Amir Shahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin

Definition at line 449 of file pm_matrixClass.F90.

◆ frobenius

type(frobenius_type), parameter pm_matrixClass::frobenius = frobenius_type()

This is a scalar parameter object of type frobenius_type that is exclusively used to signify the atomic-triangular class of a given matrix within an interface of a procedure of the ParaMonte library.

For example usage, see the documentation of the target procedure requiring this object.

See also
genrecmat
posdefmat
symmetric
hermitian
triang_type
posdefmat_type
symmetric_type
hermitian_type
upperDiag_type
lowerDiag_type
upperZero_type
lowerZero_type
upperUnit_type
lowerUnit_type
unitTriang_type
atomicTriang_type
frobenius_type
genrecmat_type
matrix_type
gauss_type


Final Remarks


If you believe this algorithm or its documentation can be improved, we appreciate your contribution and help to edit this page's documentation and source file on GitHub.
For details on the naming abbreviations, see this page.
For details on the naming conventions, see this page.
This software is distributed under the MIT license with additional terms outlined below.

  1. If you use any parts or concepts from this library to any extent, please acknowledge the usage by citing the relevant publications of the ParaMonte library.
  2. If you regenerate any parts/ideas from this library in a programming environment other than those currently supported by this ParaMonte library (i.e., other than C, C++, Fortran, MATLAB, Python, R), please also ask the end users to cite this original ParaMonte library.

This software is available to the public under a highly permissive license.
Help us justify its continued development and maintenance by acknowledging its benefit to society, distributing it, and contributing to it.

Author:
Amir Shahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin

Definition at line 1925 of file pm_matrixClass.F90.

◆ gauss

type(gauss_type), parameter pm_matrixClass::gauss = gauss_type()

This is a scalar parameter object of type gauss_type that is exclusively used to signify the atomic-triangular class of a given matrix within an interface of a procedure of the ParaMonte library.

For example usage, see the documentation of the target procedure requiring this object.

See also
genrecmat
posdefmat
symmetric
hermitian
triang_type
posdefmat_type
symmetric_type
hermitian_type
upperDiag_type
lowerDiag_type
upperZero_type
lowerZero_type
upperUnit_type
lowerUnit_type
unitTriang_type
atomicTriang_type
frobenius_type
genrecmat_type
matrix_type
gauss_type


Final Remarks


If you believe this algorithm or its documentation can be improved, we appreciate your contribution and help to edit this page's documentation and source file on GitHub.
For details on the naming abbreviations, see this page.
For details on the naming conventions, see this page.
This software is distributed under the MIT license with additional terms outlined below.

  1. If you use any parts or concepts from this library to any extent, please acknowledge the usage by citing the relevant publications of the ParaMonte library.
  2. If you regenerate any parts/ideas from this library in a programming environment other than those currently supported by this ParaMonte library (i.e., other than C, C++, Fortran, MATLAB, Python, R), please also ask the end users to cite this original ParaMonte library.

This software is available to the public under a highly permissive license.
Help us justify its continued development and maintenance by acknowledging its benefit to society, distributing it, and contributing to it.

Author:
Amir Shahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin

Definition at line 2027 of file pm_matrixClass.F90.

◆ genrecmat

type(genrecmat_type), parameter pm_matrixClass::genrecmat = genrecmat_type()

This is a scalar parameter object of type genrecmat_type that is exclusively used to signify the general rectangular class of a given matrix within an interface of a procedure of the ParaMonte library.

For example usage, see the documentation of the target procedure requiring this object.

See also
genrecmat
posdefmat
symmetric
hermitian
triang_type
posdefmat_type
symmetric_type
hermitian_type
upperDiag_type
lowerDiag_type
upperZero_type
lowerZero_type
upperUnit_type
lowerUnit_type
unitTriang_type
atomicTriang_type
frobenius_type
genrecmat_type
matrix_type
gauss_type


Final Remarks


If you believe this algorithm or its documentation can be improved, we appreciate your contribution and help to edit this page's documentation and source file on GitHub.
For details on the naming abbreviations, see this page.
For details on the naming conventions, see this page.
This software is distributed under the MIT license with additional terms outlined below.

  1. If you use any parts or concepts from this library to any extent, please acknowledge the usage by citing the relevant publications of the ParaMonte library.
  2. If you regenerate any parts/ideas from this library in a programming environment other than those currently supported by this ParaMonte library (i.e., other than C, C++, Fortran, MATLAB, Python, R), please also ask the end users to cite this original ParaMonte library.

This software is available to the public under a highly permissive license.
Help us justify its continued development and maintenance by acknowledging its benefit to society, distributing it, and contributing to it.

Author:
Amir Shahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin

Definition at line 200 of file pm_matrixClass.F90.

◆ hermitian

type(hermitian_type), parameter pm_matrixClass::hermitian = hermitian_type()

This is a scalar parameter object of type hermitian_type that is exclusively used to signify the Hermitian class of a given matrix within an interface of a procedure of the ParaMonte library.

For example usage, see the documentation of the target procedure requiring this object.

See also
genrecmat
posdefmat
symmetric
hermitian
triang_type
posdefmat_type
symmetric_type
hermitian_type
upperDiag_type
lowerDiag_type
upperZero_type
lowerZero_type
upperUnit_type
lowerUnit_type
unitTriang_type
atomicTriang_type
frobenius_type
genrecmat_type
matrix_type
gauss_type


Final Remarks


If you believe this algorithm or its documentation can be improved, we appreciate your contribution and help to edit this page's documentation and source file on GitHub.
For details on the naming abbreviations, see this page.
For details on the naming conventions, see this page.
This software is distributed under the MIT license with additional terms outlined below.

  1. If you use any parts or concepts from this library to any extent, please acknowledge the usage by citing the relevant publications of the ParaMonte library.
  2. If you regenerate any parts/ideas from this library in a programming environment other than those currently supported by this ParaMonte library (i.e., other than C, C++, Fortran, MATLAB, Python, R), please also ask the end users to cite this original ParaMonte library.

This software is available to the public under a highly permissive license.
Help us justify its continued development and maintenance by acknowledging its benefit to society, distributing it, and contributing to it.

Author:
Amir Shahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin

Definition at line 947 of file pm_matrixClass.F90.

◆ invertible

type(invertible_type), parameter pm_matrixClass::invertible = invertible_type()

This is a scalar parameter object of type invertible_type that is exclusively used to signify the Invertible class of a given matrix within an interface of a procedure of the ParaMonte library.

For example usage, see the documentation of the target procedure requiring this object.

See also
genrecmat
posdefmat
symmetric
hermitian
triang_type
posdefmat_type
symmetric_type
hermitian_type
upperDiag_type
lowerDiag_type
upperZero_type
lowerZero_type
upperUnit_type
lowerUnit_type
unitTriang_type
atomicTriang_type
frobenius_type
genrecmat_type
matrix_type
gauss_type


Final Remarks


If you believe this algorithm or its documentation can be improved, we appreciate your contribution and help to edit this page's documentation and source file on GitHub.
For details on the naming abbreviations, see this page.
For details on the naming conventions, see this page.
This software is distributed under the MIT license with additional terms outlined below.

  1. If you use any parts or concepts from this library to any extent, please acknowledge the usage by citing the relevant publications of the ParaMonte library.
  2. If you regenerate any parts/ideas from this library in a programming environment other than those currently supported by this ParaMonte library (i.e., other than C, C++, Fortran, MATLAB, Python, R), please also ask the end users to cite this original ParaMonte library.

This software is available to the public under a highly permissive license.
Help us justify its continued development and maintenance by acknowledging its benefit to society, distributing it, and contributing to it.

Author:
Amir Shahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin

Definition at line 366 of file pm_matrixClass.F90.

◆ lowerDiag

type(lowerDiag_type), parameter pm_matrixClass::lowerDiag = lowerDiag_type()

This is a scalar parameter object of type lowerDiag_type that is exclusively used to signify the lower-diagonal triangular class of a given matrix within an interface of a procedure of the ParaMonte library.

For example usage, see the documentation of the target procedure requiring this object.

See also
genrecmat
posdefmat
symmetric
hermitian
triang_type
posdefmat_type
symmetric_type
hermitian_type
upperDiag_type
lowerDiag_type
upperZero_type
lowerZero_type
upperUnit_type
lowerUnit_type
unitTriang_type
atomicTriang_type
frobenius_type
genrecmat_type
matrix_type
gauss_type


Final Remarks


If you believe this algorithm or its documentation can be improved, we appreciate your contribution and help to edit this page's documentation and source file on GitHub.
For details on the naming abbreviations, see this page.
For details on the naming conventions, see this page.
This software is distributed under the MIT license with additional terms outlined below.

  1. If you use any parts or concepts from this library to any extent, please acknowledge the usage by citing the relevant publications of the ParaMonte library.
  2. If you regenerate any parts/ideas from this library in a programming environment other than those currently supported by this ParaMonte library (i.e., other than C, C++, Fortran, MATLAB, Python, R), please also ask the end users to cite this original ParaMonte library.

This software is available to the public under a highly permissive license.
Help us justify its continued development and maintenance by acknowledging its benefit to society, distributing it, and contributing to it.

Author:
Amir Shahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin

Definition at line 1468 of file pm_matrixClass.F90.

◆ lowerUnit

type(lowerUnit_type), parameter pm_matrixClass::lowerUnit = lowerUnit_type()

This is a scalar parameter object of type upperUnit_type that is exclusively used to signify the lower-unit-diagonal triangular class of a given matrix within an interface of a procedure of the ParaMonte library.

For example usage, see the documentation of the target procedure requiring this object.

See also
genrecmat
posdefmat
symmetric
hermitian
triang_type
posdefmat_type
symmetric_type
hermitian_type
upperDiag_type
lowerDiag_type
upperZero_type
lowerZero_type
upperUnit_type
lowerUnit_type
unitTriang_type
atomicTriang_type
frobenius_type
genrecmat_type
matrix_type
gauss_type


Final Remarks


If you believe this algorithm or its documentation can be improved, we appreciate your contribution and help to edit this page's documentation and source file on GitHub.
For details on the naming abbreviations, see this page.
For details on the naming conventions, see this page.
This software is distributed under the MIT license with additional terms outlined below.

  1. If you use any parts or concepts from this library to any extent, please acknowledge the usage by citing the relevant publications of the ParaMonte library.
  2. If you regenerate any parts/ideas from this library in a programming environment other than those currently supported by this ParaMonte library (i.e., other than C, C++, Fortran, MATLAB, Python, R), please also ask the end users to cite this original ParaMonte library.

This software is available to the public under a highly permissive license.
Help us justify its continued development and maintenance by acknowledging its benefit to society, distributing it, and contributing to it.

Author:
Amir Shahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin

Definition at line 1549 of file pm_matrixClass.F90.

◆ lowerZero

type(lowerZero_type), parameter pm_matrixClass::lowerZero = lowerZero_type()

This is a scalar parameter object of type lowerUnit_type that is exclusively used to signify the lower-zero-diagonal triangular class of a given matrix within an interface of a procedure of the ParaMonte library.

For example usage, see the documentation of the target procedure requiring this object.

See also
genrecmat
posdefmat
symmetric
hermitian
triang_type
posdefmat_type
symmetric_type
hermitian_type
upperDiag_type
lowerDiag_type
upperZero_type
lowerZero_type
upperUnit_type
lowerUnit_type
unitTriang_type
atomicTriang_type
frobenius_type
genrecmat_type
matrix_type
gauss_type


Final Remarks


If you believe this algorithm or its documentation can be improved, we appreciate your contribution and help to edit this page's documentation and source file on GitHub.
For details on the naming abbreviations, see this page.
For details on the naming conventions, see this page.
This software is distributed under the MIT license with additional terms outlined below.

  1. If you use any parts or concepts from this library to any extent, please acknowledge the usage by citing the relevant publications of the ParaMonte library.
  2. If you regenerate any parts/ideas from this library in a programming environment other than those currently supported by this ParaMonte library (i.e., other than C, C++, Fortran, MATLAB, Python, R), please also ask the end users to cite this original ParaMonte library.

This software is available to the public under a highly permissive license.
Help us justify its continued development and maintenance by acknowledging its benefit to society, distributing it, and contributing to it.

Author:
Amir Shahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin

Definition at line 1630 of file pm_matrixClass.F90.

◆ lup

type(lup_type), parameter pm_matrixClass::lup = lup_type()

This is a scalar parameter object of type lup_type that is exclusively used to signify the LUP Factorization class of a given matrix within an interface of a procedure of the ParaMonte library.

For example usage, see the documentation of the target procedure requiring this object.

See also
genrecmat
posdefmat
symmetric
hermitian
triang_type
posdefmat_type
symmetric_type
hermitian_type
upperDiag_type
lowerDiag_type
upperZero_type
lowerZero_type
upperUnit_type
lowerUnit_type
unitTriang_type
atomicTriang_type
frobenius_type
genrecmat_type
matrix_type
gauss_type


Final Remarks


If you believe this algorithm or its documentation can be improved, we appreciate your contribution and help to edit this page's documentation and source file on GitHub.
For details on the naming abbreviations, see this page.
For details on the naming conventions, see this page.
This software is distributed under the MIT license with additional terms outlined below.

  1. If you use any parts or concepts from this library to any extent, please acknowledge the usage by citing the relevant publications of the ParaMonte library.
  2. If you regenerate any parts/ideas from this library in a programming environment other than those currently supported by this ParaMonte library (i.e., other than C, C++, Fortran, MATLAB, Python, R), please also ask the end users to cite this original ParaMonte library.

This software is available to the public under a highly permissive license.
Help us justify its continued development and maintenance by acknowledging its benefit to society, distributing it, and contributing to it.

Author:
Amir Shahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin

Definition at line 781 of file pm_matrixClass.F90.

◆ MODULE_NAME

character(*,SK), parameter pm_matrixClass::MODULE_NAME = "@pm_matrixClass"

Definition at line 92 of file pm_matrixClass.F90.

◆ posdefmat

type(posdefmat_type), parameter pm_matrixClass::posdefmat = posdefmat_type()

This is a scalar parameter object of type hermitian_type that is exclusively used to signify the Hermitian class of a given matrix within an interface of a procedure of the ParaMonte library.

For example usage, see the documentation of the target procedure requiring this object.

See also
genrecmat
posdefmat
symmetric
hermitian
triang_type
posdefmat_type
symmetric_type
hermitian_type
upperDiag_type
lowerDiag_type
upperZero_type
lowerZero_type
upperUnit_type
lowerUnit_type
unitTriang_type
atomicTriang_type
frobenius_type
genrecmat_type
matrix_type
gauss_type


Final Remarks


If you believe this algorithm or its documentation can be improved, we appreciate your contribution and help to edit this page's documentation and source file on GitHub.
For details on the naming abbreviations, see this page.
For details on the naming conventions, see this page.
This software is distributed under the MIT license with additional terms outlined below.

  1. If you use any parts or concepts from this library to any extent, please acknowledge the usage by citing the relevant publications of the ParaMonte library.
  2. If you regenerate any parts/ideas from this library in a programming environment other than those currently supported by this ParaMonte library (i.e., other than C, C++, Fortran, MATLAB, Python, R), please also ask the end users to cite this original ParaMonte library.

This software is available to the public under a highly permissive license.
Help us justify its continued development and maintenance by acknowledging its benefit to society, distributing it, and contributing to it.

Author:
Amir Shahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin

Definition at line 1030 of file pm_matrixClass.F90.

◆ square

type(square_type), parameter pm_matrixClass::square = square_type()

This is a scalar parameter object of type square_type that is exclusively used to signify the Square class of a given matrix within an interface of a procedure of the ParaMonte library.

For example usage, see the documentation of the target procedure requiring this object.

See also
genrecmat
posdefmat
symmetric
hermitian
triang_type
posdefmat_type
symmetric_type
hermitian_type
upperDiag_type
lowerDiag_type
upperZero_type
lowerZero_type
upperUnit_type
lowerUnit_type
unitTriang_type
atomicTriang_type
frobenius_type
genrecmat_type
matrix_type
gauss_type


Final Remarks


If you believe this algorithm or its documentation can be improved, we appreciate your contribution and help to edit this page's documentation and source file on GitHub.
For details on the naming abbreviations, see this page.
For details on the naming conventions, see this page.
This software is distributed under the MIT license with additional terms outlined below.

  1. If you use any parts or concepts from this library to any extent, please acknowledge the usage by citing the relevant publications of the ParaMonte library.
  2. If you regenerate any parts/ideas from this library in a programming environment other than those currently supported by this ParaMonte library (i.e., other than C, C++, Fortran, MATLAB, Python, R), please also ask the end users to cite this original ParaMonte library.

This software is available to the public under a highly permissive license.
Help us justify its continued development and maintenance by acknowledging its benefit to society, distributing it, and contributing to it.

Author:
Amir Shahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin

Definition at line 283 of file pm_matrixClass.F90.

◆ symmetric

type(symmetric_type), parameter pm_matrixClass::symmetric = symmetric_type()

This is a scalar parameter object of type symmetric_type that is exclusively used to signify the Symmetric class of a given matrix within an interface of a procedure of the ParaMonte library.

For example usage, see the documentation of the target procedure requiring this object.

See also
genrecmat
posdefmat
symmetric
hermitian
triang_type
posdefmat_type
symmetric_type
hermitian_type
upperDiag_type
lowerDiag_type
upperZero_type
lowerZero_type
upperUnit_type
lowerUnit_type
unitTriang_type
atomicTriang_type
frobenius_type
genrecmat_type
matrix_type
gauss_type


Final Remarks


If you believe this algorithm or its documentation can be improved, we appreciate your contribution and help to edit this page's documentation and source file on GitHub.
For details on the naming abbreviations, see this page.
For details on the naming conventions, see this page.
This software is distributed under the MIT license with additional terms outlined below.

  1. If you use any parts or concepts from this library to any extent, please acknowledge the usage by citing the relevant publications of the ParaMonte library.
  2. If you regenerate any parts/ideas from this library in a programming environment other than those currently supported by this ParaMonte library (i.e., other than C, C++, Fortran, MATLAB, Python, R), please also ask the end users to cite this original ParaMonte library.

This software is available to the public under a highly permissive license.
Help us justify its continued development and maintenance by acknowledging its benefit to society, distributing it, and contributing to it.

Author:
Amir Shahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin

Definition at line 864 of file pm_matrixClass.F90.

◆ triang

type(triang_type), parameter pm_matrixClass::triang = triang_type()

This is a scalar parameter object of type triang_type that is exclusively used to signify the triangular class of a given matrix within an interface of a procedure of the ParaMonte library.

For example usage, see the documentation of the target procedure requiring this object.

See also
genrecmat
posdefmat
symmetric
hermitian
triang_type
posdefmat_type
symmetric_type
hermitian_type
upperDiag_type
lowerDiag_type
upperZero_type
lowerZero_type
upperUnit_type
lowerUnit_type
unitTriang_type
atomicTriang_type
frobenius_type
genrecmat_type
matrix_type
gauss_type


Final Remarks


If you believe this algorithm or its documentation can be improved, we appreciate your contribution and help to edit this page's documentation and source file on GitHub.
For details on the naming abbreviations, see this page.
For details on the naming conventions, see this page.
This software is distributed under the MIT license with additional terms outlined below.

  1. If you use any parts or concepts from this library to any extent, please acknowledge the usage by citing the relevant publications of the ParaMonte library.
  2. If you regenerate any parts/ideas from this library in a programming environment other than those currently supported by this ParaMonte library (i.e., other than C, C++, Fortran, MATLAB, Python, R), please also ask the end users to cite this original ParaMonte library.

This software is available to the public under a highly permissive license.
Help us justify its continued development and maintenance by acknowledging its benefit to society, distributing it, and contributing to it.

Author:
Amir Shahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin

Definition at line 1140 of file pm_matrixClass.F90.

◆ unitTriang

type(unitTriang_type), parameter pm_matrixClass::unitTriang = unitTriang_type()

This is a scalar parameter object of type unitTriang_type that is exclusively used to signify the unit-triangular class of a given matrix within an interface of a procedure of the ParaMonte library.

For example usage, see the documentation of the target procedure requiring this object.

See also
genrecmat
posdefmat
symmetric
hermitian
triang_type
posdefmat_type
symmetric_type
hermitian_type
upperDiag_type
lowerDiag_type
upperZero_type
lowerZero_type
upperUnit_type
lowerUnit_type
unitTriang_type
atomicTriang_type
frobenius_type
genrecmat_type
matrix_type
gauss_type


Final Remarks


If you believe this algorithm or its documentation can be improved, we appreciate your contribution and help to edit this page's documentation and source file on GitHub.
For details on the naming abbreviations, see this page.
For details on the naming conventions, see this page.
This software is distributed under the MIT license with additional terms outlined below.

  1. If you use any parts or concepts from this library to any extent, please acknowledge the usage by citing the relevant publications of the ParaMonte library.
  2. If you regenerate any parts/ideas from this library in a programming environment other than those currently supported by this ParaMonte library (i.e., other than C, C++, Fortran, MATLAB, Python, R), please also ask the end users to cite this original ParaMonte library.

This software is available to the public under a highly permissive license.
Help us justify its continued development and maintenance by acknowledging its benefit to society, distributing it, and contributing to it.

Author:
Amir Shahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin

Definition at line 1719 of file pm_matrixClass.F90.

◆ upperDiag

type(upperDiag_type), parameter pm_matrixClass::upperDiag = upperDiag_type()

This is a scalar parameter object of type upperDiag_type that is exclusively used to signify the upper-diagonal triangular class of a given matrix within an interface of a procedure of the ParaMonte library.

For example usage, see the documentation of the target procedure requiring this object.

See also
genrecmat
posdefmat
symmetric
hermitian
triang_type
posdefmat_type
symmetric_type
hermitian_type
upperDiag_type
lowerDiag_type
upperZero_type
lowerZero_type
upperUnit_type
lowerUnit_type
unitTriang_type
atomicTriang_type
frobenius_type
genrecmat_type
matrix_type
gauss_type


Final Remarks


If you believe this algorithm or its documentation can be improved, we appreciate your contribution and help to edit this page's documentation and source file on GitHub.
For details on the naming abbreviations, see this page.
For details on the naming conventions, see this page.
This software is distributed under the MIT license with additional terms outlined below.

  1. If you use any parts or concepts from this library to any extent, please acknowledge the usage by citing the relevant publications of the ParaMonte library.
  2. If you regenerate any parts/ideas from this library in a programming environment other than those currently supported by this ParaMonte library (i.e., other than C, C++, Fortran, MATLAB, Python, R), please also ask the end users to cite this original ParaMonte library.

This software is available to the public under a highly permissive license.
Help us justify its continued development and maintenance by acknowledging its benefit to society, distributing it, and contributing to it.

Author:
Amir Shahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin

Definition at line 1223 of file pm_matrixClass.F90.

◆ upperUnit

type(upperUnit_type), parameter pm_matrixClass::upperUnit = upperUnit_type()

This is a scalar parameter object of type upperUnit_type that is exclusively used to signify the upper-unit-diagonal triangular class of a given matrix within an interface of a procedure of the ParaMonte library.

For example usage, see the documentation of the target procedure requiring this object.

See also
genrecmat
posdefmat
symmetric
hermitian
triang_type
posdefmat_type
symmetric_type
hermitian_type
upperDiag_type
lowerDiag_type
upperZero_type
lowerZero_type
upperUnit_type
lowerUnit_type
unitTriang_type
atomicTriang_type
frobenius_type
genrecmat_type
matrix_type
gauss_type


Final Remarks


If you believe this algorithm or its documentation can be improved, we appreciate your contribution and help to edit this page's documentation and source file on GitHub.
For details on the naming abbreviations, see this page.
For details on the naming conventions, see this page.
This software is distributed under the MIT license with additional terms outlined below.

  1. If you use any parts or concepts from this library to any extent, please acknowledge the usage by citing the relevant publications of the ParaMonte library.
  2. If you regenerate any parts/ideas from this library in a programming environment other than those currently supported by this ParaMonte library (i.e., other than C, C++, Fortran, MATLAB, Python, R), please also ask the end users to cite this original ParaMonte library.

This software is available to the public under a highly permissive license.
Help us justify its continued development and maintenance by acknowledging its benefit to society, distributing it, and contributing to it.

Author:
Amir Shahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin

Definition at line 1304 of file pm_matrixClass.F90.

◆ upperZero

type(upperZero_type), parameter pm_matrixClass::upperZero = upperZero_type()

This is a scalar parameter object of type upperUnit_type that is exclusively used to signify the upper-zero-diagonal triangular class of a given matrix within an interface of a procedure of the ParaMonte library.

For example usage, see the documentation of the target procedure requiring this object.

See also
genrecmat
posdefmat
symmetric
hermitian
triang_type
posdefmat_type
symmetric_type
hermitian_type
upperDiag_type
lowerDiag_type
upperZero_type
lowerZero_type
upperUnit_type
lowerUnit_type
unitTriang_type
atomicTriang_type
frobenius_type
genrecmat_type
matrix_type
gauss_type


Final Remarks


If you believe this algorithm or its documentation can be improved, we appreciate your contribution and help to edit this page's documentation and source file on GitHub.
For details on the naming abbreviations, see this page.
For details on the naming conventions, see this page.
This software is distributed under the MIT license with additional terms outlined below.

  1. If you use any parts or concepts from this library to any extent, please acknowledge the usage by citing the relevant publications of the ParaMonte library.
  2. If you regenerate any parts/ideas from this library in a programming environment other than those currently supported by this ParaMonte library (i.e., other than C, C++, Fortran, MATLAB, Python, R), please also ask the end users to cite this original ParaMonte library.

This software is available to the public under a highly permissive license.
Help us justify its continued development and maintenance by acknowledging its benefit to society, distributing it, and contributing to it.

Author:
Amir Shahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin

Definition at line 1385 of file pm_matrixClass.F90.