ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_matrixSubset 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 the upper/lower-diagonal triangular blocks of some of their input matrix arguments.
More...

Data Types

type  dia_type
 This is a concrete derived type whose instances are exclusively used to request unit (or Identity or diagonal) storage format of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
interface  getSubComp
 Generate and return the objects representing the complementary subset of the input matrix subset sub with respect to the main diagonal of the matrix. More...
 
interface  getSubSymm
 Generate and return the objects representing the symmetric mirror subset of the input matrix subset sub with respect to the main diagonal of the matrix. More...
 
interface  getSubUnion
 Generate and return the object representing the union of two input matrix subsets. More...
 
type  low_type
 This is a concrete derived type whose instances are exclusively used to request lower-triangular storage format of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type  lowDia_type
 This is a concrete derived type whose instances are exclusively used to request lower-diagonal triangular storage format of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type  subset_type
 This is an abstract derived type for constructing concrete derived types to distinguish various procedure signatures that require different forms of storage (upper-diagonal triangular, lower-diagonal triangular, ...).
More...
 
type  upp_type
 This is a concrete derived type whose instances are exclusively used to request upper-triangular storage format of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type  uppDia_type
 This is a concrete derived type whose instances are exclusively used to request upper-diagonal triangular storage format of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type  uppLow_type
 This is a concrete derived type whose instances are exclusively used to request upper-lower triangular (excluding diagonal) storage format of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type  uppLowDia_type
 This is a concrete derived type whose instances are exclusively used to request full diagonal and upper-lower triangular (excluding diagonal) storage format of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 

Variables

character(*, SK), parameter MODULE_NAME = "@pm_matrixSubset"
 
type(upp_type), parameter upp = upp_type()
 This is a scalar parameter object of type upp_type that is exclusively used to request upper-triangular storage format of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type(low_type), parameter low = low_type()
 This is a scalar parameter object of type low_type that is exclusively used to request lower-triangular storage format of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type(dia_type), parameter dia = dia_type()
 This is a scalar parameter object of type dia_type that is exclusively used to request unit (or Identity or diagonal) storage format of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type(uppLow_type), parameter uppLow = uppLow_type()
 This is a scalar parameter object of type uppLow_type that is exclusively used to request upper-lower triangular (excluding diagonal) storage format of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type(uppLowDia_type), parameter uppLowDia = uppLowDia_type()
 This is a scalar parameter object of type uppLowDia_type that is exclusively used to request full diagonal and upper-lower triangular (excluding diagonal) storage format of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type(uppDia_type), parameter uppDia = uppDia_type()
 This is a scalar parameter object of type uppDia_type that is exclusively used to request upper-diagonal triangular storage format of a given matrix within an interface of a procedure of the ParaMonte library.
More...
 
type(lowDia_type), parameter lowDia = lowDia_type()
 This is a scalar parameter object of type lowDia_type that is exclusively used to request lower-diagonal triangular storage format 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 the upper/lower-diagonal triangular blocks of some of their input matrix arguments.

Within this module, a lower-triangular storage for a subset of an arbitrary matrix has the form,

\begin{equation} L = {\begin{bmatrix}\ell _{1,1}&&&&\\\ell _{2,1}&\ell _{2,2}&&&\\\ell _{3,1}&\ell _{3,2}&\ddots &&\\\vdots &\vdots &\ddots &\ddots &\\\ell _{n,1}&\ell _{n,2}&\ldots &\ell _{n,n-1}&\ell _{n,n}\end{bmatrix}} ~, \end{equation}

while an upper-triangular storage for a subset of an arbitrary matrix has the form,

\begin{equation} \ms{U} = {\begin{bmatrix}u_{1,1}&u_{1,2}&u_{1,3}&\ldots &u_{1,n}\\&u_{2,2}&u_{2,3}&\ldots &u_{2,n}\\&&\ddots &\ddots &\vdots \\&&&\ddots &u_{n-1,n}\\0&&&&u_{n,n}\end{bmatrix}} ~. \end{equation}


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 Austin

Variable Documentation

◆ dia

type(dia_type), parameter pm_matrixSubset::dia = dia_type()

This is a scalar parameter object of type dia_type that is exclusively used to request unit (or Identity or diagonal) storage format 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
upp
low
dia
uppLow
uppDia
lowDia
uppLowDia
dia_type
uppLow_type
uppDia_type
lowDia_type
uppLowDia_type
subset_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 Austin

Definition at line 288 of file pm_matrixSubset.F90.

◆ low

type(low_type), parameter pm_matrixSubset::low = low_type()

This is a scalar parameter object of type low_type that is exclusively used to request lower-triangular storage format 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
upp
low
dia
uppLow
uppDia
lowDia
uppLowDia
dia_type
uppLow_type
uppDia_type
lowDia_type
uppLowDia_type
subset_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 Austin

Definition at line 217 of file pm_matrixSubset.F90.

◆ lowDia

type(lowDia_type), parameter pm_matrixSubset::lowDia = lowDia_type()

This is a scalar parameter object of type lowDia_type that is exclusively used to request lower-diagonal triangular storage format 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
upp
low
dia
uppLow
uppDia
lowDia
uppLowDia
dia_type
uppLow_type
uppDia_type
lowDia_type
uppLowDia_type
subset_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 Austin

Definition at line 567 of file pm_matrixSubset.F90.

◆ MODULE_NAME

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

Definition at line 46 of file pm_matrixSubset.F90.

◆ upp

type(upp_type), parameter pm_matrixSubset::upp = upp_type()

This is a scalar parameter object of type upp_type that is exclusively used to request upper-triangular storage format 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
upp
low
dia
uppLow
uppDia
lowDia
uppLowDia
dia_type
uppLow_type
uppDia_type
lowDia_type
uppLowDia_type
subset_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 Austin

Definition at line 146 of file pm_matrixSubset.F90.

◆ uppDia

type(uppDia_type), parameter pm_matrixSubset::uppDia = uppDia_type()

This is a scalar parameter object of type uppDia_type that is exclusively used to request upper-diagonal triangular storage format 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
upp
low
dia
uppLow
uppDia
lowDia
uppLowDia
dia_type
uppLow_type
uppDia_type
lowDia_type
uppLowDia_type
subset_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 Austin

Definition at line 501 of file pm_matrixSubset.F90.

◆ uppLow

type(uppLow_type), parameter pm_matrixSubset::uppLow = uppLow_type()

This is a scalar parameter object of type uppLow_type that is exclusively used to request upper-lower triangular (excluding diagonal) storage format 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
upp
low
dia
uppLow
uppDia
lowDia
uppLowDia
dia_type
uppLow_type
uppDia_type
lowDia_type
uppLowDia_type
subset_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 Austin

Definition at line 359 of file pm_matrixSubset.F90.

◆ uppLowDia

type(uppLowDia_type), parameter pm_matrixSubset::uppLowDia = uppLowDia_type()

This is a scalar parameter object of type uppLowDia_type that is exclusively used to request full diagonal and upper-lower triangular (excluding diagonal) storage format 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
upp
low
dia
uppLow
uppDia
lowDia
uppLowDia
dia_type
uppLow_type
uppDia_type
lowDia_type
uppLowDia_type
subset_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 Austin

Definition at line 430 of file pm_matrixSubset.F90.