2%> This is the base
class for the ParaMonte sampler MCMC specifications.<br>
3%> This is an abstract
class that is not meant to be used by the user.<br>
4%> See the
class constructor.<br>
7%> All
class attributes can be set after constructing an instance of this class.<br>
10%> See below
for information on the methods.<br>
15%> \JoshuaOsborne, May 21 2024, 12:54 AM, University of Texas at Arlington<br>
16%> \FatemehBagheri, May 20 2024, 1:25 PM, NASA Goddard Space Flight Center (GSFC), Washington, D.C.<br>
17%> \AmirShahmoradi, May 16 2016, 9:03 AM, Oden Institute
for Computational Engineering and Sciences (ICES), UT Austin<br>
20 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
23 %> \specdram{outputchainsize}
25 %> \specdram{outputsamplerefinementcount}
26 outputSampleRefinementCount = [];
27 %> \specdram{outputsamplerefinementmethod}
28 outputSampleRefinementMethod = [];
29 %> \specdram{proposal}
31 %> \specdram{proposalcor}
33 %> \specdram{proposalcov}
35 %> \specdram{proposalscale}
37 %> \specdram{proposalstart}
39 %> \specdram{proposalstartdomaincubelimitlower}
40 proposalStartDomainCubeLimitLower = [];
41 %> \specdram{proposalstartdomaincubelimitupper}
42 proposalStartDomainCubeLimitUpper = [];
43 %> \specdram{proposalstartrandomized}
44 proposalStartRandomized = [];
45 %> \specdram{proposalstd}
49 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
51 methods(Access =
public)
53 %> Construct and
return an
object of
class [pm.sampling.SpecMCMC](@ref
SpecMCMC).<br>
55 %> \param[in] method : The input scalar MATLAB
string containing
56 %> the
name of the specific ParaMonte sampler
57 %> whose simulation specifications are to be
58 %> stored in the output of
this constructor.<br>
59 %> \param[in] silent : The input scalar MATLAB logical.<br>
60 %> If ``
true``, all descriptive messages on
61 %> the MATLAB command line will be suppressed.<br>
62 %> (**optional**,
default = ``
false``)
65 %> The output scalar
object of
class [pm.sampling.SpecMCMC](@ref
SpecMCMC).<br>
71 %> spec = pm.sampling.SpecMCMC([])
72 %> spec = pm.sampling.SpecMCMC([], [])
73 %> spec = pm.sampling.SpecMCMC(method)
74 %> spec = pm.sampling.SpecMCMC(method, [])
75 %> spec = pm.sampling.SpecMCMC([], silent)
76 %> spec = pm.sampling.SpecMCMC(method, silent)
83 %> \JoshuaOsborne, May 21 2024, 12:58 AM, University of Texas at Arlington<br>
84 %> \FatemehBagheri, May 20 2024, 1:25 PM, NASA Goddard Space Flight Center (GSFC), Washington, D.C.<br>
85 %> \AmirShahmoradi, May 16 2016, 9:03 AM, Oden Institute
for Computational Engineering and Sciences (ICES), UT Austin<br>
86 function self =
SpecMCMC(method, silent)
93 self = self@pm.sampling.SpecBase(method, silent);
100 %> Ensure all specification properties of the parent
object are sensible.<br>
103 %> This is a dynamic method of the
class [pm.sampling.SpecMCMC](@ref
SpecMCMC).<br>
105 %> \param[in] self : The input parent
object of
class [pm.sampling.SpecMCMC](@ref
SpecMCMC)
106 %>
which is **implicitly** passed to
this dynamic method (not by the user).<br>
107 %> \param[in] ndim : The input scalar MATLAB integer containing
108 %> the number of dimensions of the domain of the
109 %>
object function that is to be explored.<br>
112 %> ``entries`` : The output scalar MATLAB
string containing
113 %> the simulation specifications converted to
114 %> a Fortran-namelist-compatible entry.<br>
116 %> \interface{getEntriesNML}
119 %> entries = self.getEntriesNML(ndim)
123 %> \final{getEntriesNML}
126 %> \JoshuaOsborne, May 21 2024, 1:01 AM, University of Texas at Arlington<br>
127 %> \FatemehBagheri, May 20 2024, 1:25 PM, NASA Goddard Space Flight Center (GSFC), Washington, D.C.<br>
128 %> \AmirShahmoradi, May 16 2016, 9:03 AM, Oden Institute
for Computational Engineering and Sciences (ICES), UT Austin<br>
129 function entries = getEntriesNML(self, ndim)
131 entries = getEntriesNML@pm.sampling.SpecBase(self, ndim);
134 %%%% The NML entry ``proposalScale`` must be a string, but could also be implicitly converted to
string if it is a real number.
137 if isreal(self.proposalScale)
138 self.proposalScale =
string(self.proposalScale);
142 %%%% Verify the rest of the NML entries.
145 if ~isempty(self.outputChainSize ); entries = entries + self.nmlsep + pm.introspection.
getEntryNML("outputChainSize ", self.outputChainSize , "integer" , 1) ; end
146 if ~isempty(self.outputSampleRefinementCount ); entries = entries + self.nmlsep + pm.introspection.
getEntryNML("outputSampleRefinementCount ", self.outputSampleRefinementCount , "integer" , 1) ; end
147 if ~isempty(self.outputSampleRefinementMethod ); entries = entries + self.nmlsep + pm.introspection.
getEntryNML("outputSampleRefinementMethod ", self.outputSampleRefinementMethod , "
string" , 1) ; end
148 if ~isempty(self.proposal ); entries = entries + self.nmlsep + pm.introspection.
getEntryNML("proposal ", self.proposal , "
string" , 1) ; end
149 if ~isempty(self.proposalCor ); entries = entries + self.nmlsep + pm.introspection.
getEntryNML("proposalCor ", self.proposalCor , "real" , ndim^2) ; end
150 if ~isempty(self.proposalCov ); entries = entries + self.nmlsep + pm.introspection.
getEntryNML("proposalCov ", self.proposalCov , "real" , ndim^2) ; end
151 if ~isempty(self.proposalScale ); entries = entries + self.nmlsep + pm.introspection.
getEntryNML("proposalScale ", self.proposalScale , "
string" , 1) ; end
152 if ~isempty(self.proposalStart ); entries = entries + self.nmlsep + pm.introspection.
getEntryNML("proposalStart ", self.proposalStart , "real" , ndim) ; end
153 if ~isempty(self.proposalStartDomainCubeLimitLower ); entries = entries + self.nmlsep + pm.introspection.
getEntryNML("proposalStartDomainCubeLimitLower", self.proposalStartDomainCubeLimitLower , "real" , ndim) ; end
154 if ~isempty(self.proposalStartDomainCubeLimitUpper ); entries = entries + self.nmlsep + pm.introspection.
getEntryNML("proposalStartDomainCubeLimitUpper", self.proposalStartDomainCubeLimitUpper , "real" , ndim) ; end
155 if ~isempty(self.proposalStartRandomized ); entries = entries + self.nmlsep + pm.introspection.
getEntryNML("proposalStartRandomized ", self.proposalStartRandomized , "logical" , 1) ; end
156 if ~isempty(self.proposalStd ); entries = entries + self.nmlsep + pm.introspection.
getEntryNML("proposalStd ", self.proposalStd , "real" , ndim) ; end
function name(in vendor)
Return the MPI library name as used in naming the ParaMonte MATLAB shared library directories.
This is the base class for the ParaMonte sampler basic specifications.
This is the base class for the ParaMonte sampler MCMC specifications. This is an abstract class that...
Property proposalStartDomainCubeLimitUpper
See the generic documentation at: https://www.cdslab.org/paramonte/generic/2/usage/sampling/paradram/...
function SpecMCMC(in method, in silent)
Construct and return an object of class pm.sampling.SpecMCMC.
Property outputSampleRefinementCount
See the generic documentation at: https://www.cdslab.org/paramonte/generic/2/usage/sampling/paradram/...
Property proposalCov
See the generic documentation at: https://www.cdslab.org/paramonte/generic/2/usage/sampling/paradram/...
Property proposalStartDomainCubeLimitLower
See the generic documentation at: https://www.cdslab.org/paramonte/generic/2/usage/sampling/paradram/...
Property proposalStd
See the generic documentation at: https://www.cdslab.org/paramonte/generic/2/usage/sampling/paradram/...
Property outputSampleRefinementMethod
See the generic documentation at: https://www.cdslab.org/paramonte/generic/2/usage/sampling/paradram/...
Property outputChainSize
See the generic documentation at: https://www.cdslab.org/paramonte/generic/2/usage/sampling/paradram/...
Property proposalCor
See the generic documentation at: https://www.cdslab.org/paramonte/generic/2/usage/sampling/paradram/...
function getEntriesNML(in self, in ndim)
Ensure all specification properties of the parent object are sensible.
Property proposalStartRandomized
See the generic documentation at: https://www.cdslab.org/paramonte/generic/2/usage/sampling/paradram/...
Property proposalStart
See the generic documentation at: https://www.cdslab.org/paramonte/generic/2/usage/sampling/paradram/...
Property proposalScale
See the generic documentation at: https://www.cdslab.org/paramonte/generic/2/usage/sampling/paradram/...
Property proposal
See the generic documentation at: https://www.cdslab.org/paramonte/generic/2/usage/sampling/paradram/...
function getEntryNML(in varname, in varval, in vartype, in varsize)
Return a Fortran-namelist-compatible conversion of the input varval.
function which(in vendor)
Return the a MATLAB string containing the path to the first mpiexec executable binary found in system...