ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation. |
This module contains classes and procedures for generating random matrices distributed on the space of positive definite matrices, such that their determinants is uniformly or power-law distributed. More...
Data Types | |
type | dvine_type |
This the derived type whose instances imply the use of the Dvine algorithm for generating random covariance matrices as described in algorithm of Lewandowski et al. (2009). More... | |
interface | getCovRand |
Generate and return a random positive-definite (correlation or covariance) matrix using the Gram method. More... | |
type | gram_type |
This the derived type whose instances imply the use of the Gram algorithm for generating random covariance matrices. More... | |
type | onion_type |
This the derived type whose instances imply the use of the Onion algorithm for generating random covariance matrices as described in algorithm of Lewandowski et al. (2009). More... | |
interface | setCovRand |
Return a random positive-definite power-law-distributed (correlation) matrix. More... | |
Variables | |
character(*, SK), parameter | MODULE_NAME = "@pm_distCov" |
type(gram_type), parameter | gram = gram_type() |
The scalar constant of type gram_type implying the use of the Gram algorithm for generating random covariance matrices. More... | |
type(dvine_type), parameter | dvine = dvine_type() |
The scalar constant of type dvine_type implying the use of the Dvine algorithm for generating random covariance matrices as described in algorithm of Lewandowski et al. (2009). More... | |
type(onion_type) | onion = onion_type() |
The scalar module variable object of type onion_type implying the use of the Onion algorithm for generating random covariance matrices as described in algorithm of Lewandowski et al. (2009). More... | |
This module contains classes and procedures for generating random matrices distributed on the space of positive definite matrices, such that their determinants is uniformly or power-law distributed.
The procedures of this module generate random covariance matrices based on the following approaches:
\begin{equation} M = LL* \end{equation}
where \(L\) is a uniquely defined lower triangular matrix with positive diagonal entries.\begin{equation} \pi(\left|\ms{rand}\right| ~\big|~ \eta) \propto \left|\ms{rand}\right|^{\eta} ~, \end{equation}
where,\begin{equation} \ms{rand}_{ij} \sim \mathcal{B}(\eta + \ms{ndim} / 2, \eta + \ms{ndim} / 2) ~,~ i \neq j ~,~ 1 \leq i, j \leq \ms{ndim} ~, \end{equation}
over the range \((-1, +1)\), where \(\ms{ndim}\) represents the rank of the correlation matrix.
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.
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.
type(dvine_type), parameter pm_distCov::dvine = dvine_type() |
The scalar constant of type dvine_type implying the use of the Dvine algorithm for generating random covariance matrices as described in algorithm of Lewandowski et al. (2009).
See the documentation of pm_distCov for details.
Possible calling interfaces ⛓
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.
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.
Definition at line 238 of file pm_distCov.F90.
The scalar constant of type gram_type implying the use of the Gram algorithm for generating random covariance matrices.
See the documentation of pm_distCov for details.
Possible calling interfaces ⛓
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.
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.
Definition at line 157 of file pm_distCov.F90.
character(*, SK), parameter pm_distCov::MODULE_NAME = "@pm_distCov" |
Definition at line 79 of file pm_distCov.F90.
type(onion_type) pm_distCov::onion = onion_type() |
The scalar module variable object of type onion_type implying the use of the Onion algorithm for generating random covariance matrices as described in algorithm of Lewandowski et al. (2009).
Unlike dvine which is a scalar parameter
, onion is a module variable, whose presence is merely for convenience.
As such, this variable's usage must be restricted to only experimental or serial applications, because this object is not thread-safe.
See the documentation of pm_distCov for details.
Possible calling interfaces ⛓
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.
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.
Definition at line 331 of file pm_distCov.F90.