queso-0.50.1
MLSamplingLevelOptions.C
Go to the documentation of this file.
1 //-----------------------------------------------------------------------bl-
2 //--------------------------------------------------------------------------
3 //
4 // QUESO - a library to support the Quantification of Uncertainty
5 // for Estimation, Simulation and Optimization
6 //
7 // Copyright (C) 2008,2009,2010,2011,2012,2013 The PECOS Development Team
8 //
9 // This library is free software; you can redistribute it and/or
10 // modify it under the terms of the Version 2.1 GNU Lesser General
11 // Public License as published by the Free Software Foundation.
12 //
13 // This library is distributed in the hope that it will be useful,
14 // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 // Lesser General Public License for more details.
17 //
18 // You should have received a copy of the GNU Lesser General Public
19 // License along with this library; if not, write to the Free Software
20 // Foundation, Inc. 51 Franklin Street, Fifth Floor,
21 // Boston, MA 02110-1301 USA
22 //
23 //-----------------------------------------------------------------------el-
24 
25 #include <queso/MLSamplingLevelOptions.h>
26 #include <queso/Miscellaneous.h>
27 
28 namespace QUESO {
29 
31  const BaseEnvironment& env,
32  const char* prefix)
33  :
34  m_prefix ((std::string)(prefix) + ""),
36 #else
37  m_checkpointOutputFileName (UQ_ML_SAMPLING_L_CHECKPOINT_OUTPUT_FILE_NAME_ODV),
38 #endif
40  m_dataOutputFileName (UQ_ML_SAMPLING_L_DATA_OUTPUT_FILE_NAME_ODV),
41  m_dataOutputAllowAll (UQ_ML_SAMPLING_L_DATA_OUTPUT_ALLOW_ALL_ODV),
42 //m_dataOutputAllowedSet (),
43  m_str1 (""),
44  m_loadBalanceAlgorithmId (UQ_ML_SAMPLING_L_LOAD_BALANCE_ALGORITHM_ID_ODV),
45  m_loadBalanceTreshold (UQ_ML_SAMPLING_L_LOAD_BALANCE_TRESHOLD_ODV),
46  m_minEffectiveSizeRatio (UQ_ML_SAMPLING_L_MIN_EFFECTIVE_SIZE_RATIO_ODV),
47  m_maxEffectiveSizeRatio (UQ_ML_SAMPLING_L_MAX_EFFECTIVE_SIZE_RATIO_ODV),
48  m_scaleCovMatrix (UQ_ML_SAMPLING_L_SCALE_COV_MATRIX_ODV),
49  m_minRejectionRate (UQ_ML_SAMPLING_L_MIN_REJECTION_RATE_ODV),
50  m_maxRejectionRate (UQ_ML_SAMPLING_L_MAX_REJECTION_RATE_ODV),
51  m_covRejectionRate (UQ_ML_SAMPLING_L_COV_REJECTION_RATE_ODV),
52  m_minAcceptableEta (UQ_ML_SAMPLING_L_MIN_ACCEPTABLE_ETA_ODV), // gpmsa1
53  m_totallyMute (UQ_ML_SAMPLING_L_TOTALLY_MUTE_ODV),
54  m_initialPositionDataInputFileName (UQ_ML_SAMPLING_L_INITIAL_POSITION_DATA_INPUT_FILE_NAME_ODV),
55  m_initialPositionDataInputFileType (UQ_ML_SAMPLING_L_INITIAL_POSITION_DATA_INPUT_FILE_TYPE_ODV),
56  m_initialProposalCovMatrixDataInputFileName(UQ_ML_SAMPLING_L_INITIAL_PROPOSAL_COV_MATRIX_DATA_INPUT_FILE_NAME_ODV),
57  m_initialProposalCovMatrixDataInputFileType(UQ_ML_SAMPLING_L_INITIAL_PROPOSAL_COV_MATRIX_DATA_INPUT_FILE_TYPE_ODV),
58 //m_parameterDisabledSet (), // gpmsa2
59  m_str2 (""),
60  m_initialValuesOfDisabledParameters (0),
61  m_str3 (""),
62  m_rawChainDataInputFileName (UQ_ML_SAMPLING_L_RAW_CHAIN_DATA_INPUT_FILE_NAME_ODV),
63  m_rawChainDataInputFileType (UQ_ML_SAMPLING_L_RAW_CHAIN_DATA_INPUT_FILE_TYPE_ODV),
64  m_rawChainSize (UQ_ML_SAMPLING_L_RAW_CHAIN_SIZE_ODV),
65  m_rawChainGenerateExtra (UQ_ML_SAMPLING_L_RAW_CHAIN_GENERATE_EXTRA_ODV),
66  m_rawChainDisplayPeriod (UQ_ML_SAMPLING_L_RAW_CHAIN_DISPLAY_PERIOD_ODV),
67  m_rawChainMeasureRunTimes (UQ_ML_SAMPLING_L_RAW_CHAIN_MEASURE_RUN_TIMES_ODV),
68  m_rawChainDataOutputPeriod (UQ_ML_SAMPLING_L_RAW_CHAIN_DATA_OUTPUT_PERIOD_ODV),
69  m_rawChainDataOutputFileName (UQ_ML_SAMPLING_L_RAW_CHAIN_DATA_OUTPUT_FILE_NAME_ODV),
70  m_rawChainDataOutputFileType (UQ_ML_SAMPLING_L_RAW_CHAIN_DATA_OUTPUT_FILE_TYPE_ODV),
71  m_rawChainDataOutputAllowAll (UQ_ML_SAMPLING_L_RAW_CHAIN_DATA_OUTPUT_ALLOW_ALL_ODV),
72 //m_rawChainDataOutputAllowedSet (),
73  m_str4 (""),
74 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
75  m_rawChainComputeStats (UQ_ML_SAMPLING_L_RAW_CHAIN_COMPUTE_STATS_ODV),
76  m_rawChainStatisticalOptionsObj (NULL),
77  m_rawChainStatOptsInstantiated (false),
78 #endif
79  m_filteredChainGenerate (UQ_ML_SAMPLING_L_FILTERED_CHAIN_GENERATE_ODV),
80  m_filteredChainDiscardedPortion (UQ_ML_SAMPLING_L_FILTERED_CHAIN_DISCARDED_PORTION_ODV),
81  m_filteredChainLag (UQ_ML_SAMPLING_L_FILTERED_CHAIN_LAG_ODV),
82  m_filteredChainDataOutputFileName (UQ_ML_SAMPLING_L_FILTERED_CHAIN_DATA_OUTPUT_FILE_NAME_ODV),
83  m_filteredChainDataOutputFileType (UQ_ML_SAMPLING_L_FILTERED_CHAIN_DATA_OUTPUT_FILE_TYPE_ODV),
84  m_filteredChainDataOutputAllowAll (UQ_ML_SAMPLING_L_FILTERED_CHAIN_DATA_OUTPUT_ALLOW_ALL_ODV),
85 //m_filteredChainDataOutputAllowedSet (),
86  m_str5 (""),
87 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
88  m_filteredChainComputeStats (UQ_ML_SAMPLING_L_FILTERED_CHAIN_COMPUTE_STATS_ODV),
89  m_filteredChainStatisticalOptionsObj (NULL),
90  m_filteredChainStatOptsInstantiated (false),
91 #endif
92  m_displayCandidates (UQ_ML_SAMPLING_L_DISPLAY_CANDIDATES_ODV),
93  m_putOutOfBoundsInChain (UQ_ML_SAMPLING_L_PUT_OUT_OF_BOUNDS_IN_CHAIN_ODV),
94  m_tkUseLocalHessian (UQ_ML_SAMPLING_L_TK_USE_LOCAL_HESSIAN_ODV),
95  m_tkUseNewtonComponent (UQ_ML_SAMPLING_L_TK_USE_NEWTON_COMPONENT_ODV),
96  m_drMaxNumExtraStages (UQ_ML_SAMPLING_L_DR_MAX_NUM_EXTRA_STAGES_ODV),
97  m_drScalesForExtraStages (0),
98  m_str6 ("1. "),
99  m_drDuringAmNonAdaptiveInt (UQ_ML_SAMPLING_L_DR_DURING_AM_NON_ADAPTIVE_INT_ODV),
100  m_amKeepInitialMatrix (UQ_ML_SAMPLING_L_AM_KEEP_INITIAL_MATRIX_ODV),
101  m_amInitialNonAdaptInterval (UQ_ML_SAMPLING_L_AM_INIT_NON_ADAPT_INT_ODV),
102  m_amAdaptInterval (UQ_ML_SAMPLING_L_AM_ADAPT_INTERVAL_ODV),
103  m_amAdaptedMatricesDataOutputPeriod (UQ_ML_SAMPLING_L_AM_ADAPTED_MATRICES_DATA_OUTPUT_PERIOD_ODV),
104  m_amAdaptedMatricesDataOutputFileName (UQ_ML_SAMPLING_L_AM_ADAPTED_MATRICES_DATA_OUTPUT_FILE_NAME_ODV),
105  m_amAdaptedMatricesDataOutputFileType (UQ_ML_SAMPLING_L_AM_ADAPTED_MATRICES_DATA_OUTPUT_FILE_TYPE_ODV),
106  m_amAdaptedMatricesDataOutputAllowAll (UQ_ML_SAMPLING_L_AM_ADAPTED_MATRICES_DATA_OUTPUT_ALLOW_ALL_ODV),
107 //m_amAdaptedMatricesDataOutputAllowedSet (),
108  m_str7 (""),
109  m_amEta (UQ_ML_SAMPLING_L_AM_ETA_ODV),
110  m_amEpsilon (UQ_ML_SAMPLING_L_AM_EPSILON_ODV),
111  m_env (env),
112  m_optionsDesc (new po::options_description("Multilevel sampling level options")),
113  m_option_help (m_prefix + "help" ),
115 #else
116  m_option_checkpointOutputFileName (m_prefix + "checkpointOutputFileName" ),
117 #endif
118  m_option_stopAtEnd (m_prefix + "stopAtEnd" ),
119  m_option_dataOutputFileName (m_prefix + "dataOutputFileName" ),
120  m_option_dataOutputAllowAll (m_prefix + "dataOutputAllowAll" ),
121  m_option_dataOutputAllowedSet (m_prefix + "dataOutputAllowedSet" ),
122  m_option_loadBalanceAlgorithmId (m_prefix + "loadBalanceAlgorithmId" ),
123  m_option_loadBalanceTreshold (m_prefix + "loadBalanceTreshold" ),
124  m_option_minEffectiveSizeRatio (m_prefix + "minEffectiveSizeRatio" ),
125  m_option_maxEffectiveSizeRatio (m_prefix + "maxEffectiveSizeRatio" ),
126  m_option_scaleCovMatrix (m_prefix + "scaleCovMatrix" ),
127  m_option_minRejectionRate (m_prefix + "minRejectionRate" ),
128  m_option_maxRejectionRate (m_prefix + "maxRejectionRate" ),
129  m_option_covRejectionRate (m_prefix + "covRejectionRate" ),
130  m_option_minAcceptableEta (m_prefix + "minAcceptableEta" ), // gpmsa1
131  m_option_totallyMute (m_prefix + "totallyMute" ),
132  m_option_initialPosition_dataInputFileName (m_prefix + "initialPosition_dataInputFileName" ),
133  m_option_initialPosition_dataInputFileType (m_prefix + "initialPosition_dataInputFileType" ),
134  m_option_initialProposalCovMatrix_dataInputFileName(m_prefix + "initialProposalCovMatrix_dataInputFileName"),
135  m_option_initialProposalCovMatrix_dataInputFileType(m_prefix + "initialProposalCovMatrix_dataInputFileType"),
136  m_option_listOfDisabledParameters (m_prefix + "listOfDisabledParameters" ), // gpmsa2
137  m_option_initialValuesOfDisabledParameters (m_prefix + "initialValuesOfDisabledParameters" ), // gpmsa2
138  m_option_rawChain_dataInputFileName (m_prefix + "rawChain_dataInputFileName" ),
139  m_option_rawChain_dataInputFileType (m_prefix + "rawChain_dataInputFileType" ),
140  m_option_rawChain_size (m_prefix + "rawChain_size" ),
141  m_option_rawChain_generateExtra (m_prefix + "rawChain_generateExtra" ),
142  m_option_rawChain_displayPeriod (m_prefix + "rawChain_displayPeriod" ),
143  m_option_rawChain_measureRunTimes (m_prefix + "rawChain_measureRunTimes" ),
144  m_option_rawChain_dataOutputPeriod (m_prefix + "rawChain_dataOutputPeriod" ),
145  m_option_rawChain_dataOutputFileName (m_prefix + "rawChain_dataOutputFileName" ),
146  m_option_rawChain_dataOutputFileType (m_prefix + "rawChain_dataOutputFileType" ),
147  m_option_rawChain_dataOutputAllowAll (m_prefix + "rawChain_dataOutputAllowAll" ),
148  m_option_rawChain_dataOutputAllowedSet (m_prefix + "rawChain_dataOutputAllowedSet" ),
149 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
150  m_option_rawChain_computeStats (m_prefix + "rawChain_computeStats" ),
151 #endif
152  m_option_filteredChain_generate (m_prefix + "filteredChain_generate" ),
153  m_option_filteredChain_discardedPortion (m_prefix + "filteredChain_discardedPortion" ),
154  m_option_filteredChain_lag (m_prefix + "filteredChain_lag" ),
155  m_option_filteredChain_dataOutputFileName (m_prefix + "filteredChain_dataOutputFileName" ),
156  m_option_filteredChain_dataOutputFileType (m_prefix + "filteredChain_dataOutputFileType" ),
157  m_option_filteredChain_dataOutputAllowAll (m_prefix + "filteredChain_dataOutputAllowAll" ),
158  m_option_filteredChain_dataOutputAllowedSet (m_prefix + "filteredChain_dataOutputAllowedSet" ),
159 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
160  m_option_filteredChain_computeStats (m_prefix + "filteredChain_computeStats" ),
161 #endif
162  m_option_displayCandidates (m_prefix + "displayCandidates" ),
163  m_option_putOutOfBoundsInChain (m_prefix + "putOutOfBoundsInChain" ),
164  m_option_tk_useLocalHessian (m_prefix + "tk_useLocalHessian" ),
165  m_option_tk_useNewtonComponent (m_prefix + "tk_useNewtonComponent" ),
166  m_option_dr_maxNumExtraStages (m_prefix + "dr_maxNumExtraStages" ),
167  m_option_dr_listOfScalesForExtraStages (m_prefix + "dr_listOfScalesForExtraStages" ),
168  m_option_dr_duringAmNonAdaptiveInt (m_prefix + "dr_duringAmNonAdaptiveInt" ),
169  m_option_am_keepInitialMatrix (m_prefix + "am_keepInitialMatrix" ),
170  m_option_am_initialNonAdaptInterval (m_prefix + "am_initialNonAdaptInterval" ),
171  m_option_am_adaptInterval (m_prefix + "am_adaptInterval" ),
172  m_option_am_adaptedMatrices_dataOutputPeriod (m_prefix + "amAdaptedMatrices_dataOutputPeriod" ),
173  m_option_am_adaptedMatrices_dataOutputFileName (m_prefix + "amAdaptedMatrices_dataOutputFileName" ),
174  m_option_am_adaptedMatrices_dataOutputFileType (m_prefix + "amAdaptedMatrices_dataOutputFileType" ),
175  m_option_am_adaptedMatrices_dataOutputAllowAll (m_prefix + "amAdaptedMatrices_dataOutputAllowAll" ),
176  m_option_am_adaptedMatrices_dataOutputAllowedSet (m_prefix + "amAdaptedMatrices_dataOutputAllowedSet" ),
177  m_option_am_eta (m_prefix + "am_eta" ),
178  m_option_am_epsilon (m_prefix + "am_epsilon" )
179 {
180 }
181 
182 void
184 {
185 #ifdef ML_CODE_HAS_NEW_RESTART_CAPABILITY
186 #else
188 #endif
189  m_stopAtEnd = srcOptions.m_stopAtEnd;
193  m_str1 = srcOptions.m_str1;
198  m_scaleCovMatrix = srcOptions.m_scaleCovMatrix;
202  m_minAcceptableEta = srcOptions.m_minAcceptableEta; // gpmsa1
203  m_totallyMute = srcOptions.m_totallyMute;
208  m_parameterDisabledSet = srcOptions.m_parameterDisabledSet; // gpmsa2
209  m_str2 = srcOptions.m_str2; // gpmsa2
211  m_str3 = srcOptions.m_str3;
214  m_rawChainSize = srcOptions.m_rawChainSize;
215 //std::cout << "In copy(), rawChainSize = " << m_rawChainSize << std::endl;
224  m_str4 = srcOptions.m_str4;
225 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
226  m_rawChainComputeStats = srcOptions.m_rawChainComputeStats;
227  m_rawChainStatisticalOptionsObj = NULL; // Yes, 'NULL'
228  m_rawChainStatOptsInstantiated = false;
229 #endif
237  m_str5 = srcOptions.m_str5;
238 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
239  m_filteredChainComputeStats = srcOptions.m_filteredChainComputeStats;
240  m_filteredChainStatisticalOptionsObj = NULL; // Yes, 'NULL'
241  m_filteredChainStatOptsInstantiated = false;
242 #endif
249  m_str6 = srcOptions.m_str6;
259  m_str7 = srcOptions.m_str7;
260  m_amEta = srcOptions.m_amEta;
261  m_amEpsilon = srcOptions.m_amEpsilon;
262 
263  return;
264 }
265 
267 {
268  //std::cout << "In MLSamplingLevelOptions::destructor()"
269  // << ": m_filteredChainStatOptsInstantiated = " << m_filteredChainStatOptsInstantiated
270  // << ", m_rawChainStatOptsInstantiated = " << m_rawChainStatOptsInstantiated
271  // << std::endl;
272  //sleep(1);
273 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
274  if (m_filteredChainStatOptsInstantiated) delete m_filteredChainStatisticalOptionsObj;
275  if (m_rawChainStatOptsInstantiated ) delete m_rawChainStatisticalOptionsObj;
276 #endif
277  if (m_optionsDesc ) delete m_optionsDesc;
278 }
279 
280 void
282 {
283  if (m_optionsDesc == NULL) m_optionsDesc = new po::options_description("Multilevel sampling level options");
284  if (defaultOptions) this->copyOptionsValues(*defaultOptions);
285 
289 
290  if ((m_env.subDisplayFile() != NULL ) &&
291  (1)) { //m_totallyMute == false)) {
292  *m_env.subDisplayFile() << "In MLSamplingLevelOptions::scanOptionsValues()"
293  << ": after getting values of options with prefix '" << m_prefix
294  << "', state of object is:"
295  << "\n" << *this
296  << std::endl;
297  }
298 
299 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
300  if (m_rawChainComputeStats) {
301  m_rawChainStatisticalOptionsObj = new SequenceStatisticalOptions(m_env,m_prefix + "rawChain_");
302  m_rawChainStatOptsInstantiated = true;
303  }
304  if (m_filteredChainComputeStats) {
305  m_filteredChainStatisticalOptionsObj = new SequenceStatisticalOptions(m_env,m_prefix + "filteredChain_");
306  m_filteredChainStatOptsInstantiated = true;
307  }
308 #endif
309  return;
310 }
311 
312 void
313 MLSamplingLevelOptions::defineMyOptions(po::options_description& optionsDesc) const
314 {
315  optionsDesc.add_options()
316  (m_option_help.c_str(), "produce help message for Bayesian Markov chain distr. calculator")
318 #else
319  (m_option_checkpointOutputFileName.c_str(), po::value<std::string >()->default_value(m_checkpointOutputFileName ), "name of checpoint output file" )
320 #endif
321  (m_option_stopAtEnd.c_str(), po::value<bool >()->default_value(m_stopAtEnd ), "stop at end of such level" )
322  (m_option_dataOutputFileName.c_str(), po::value<std::string >()->default_value(m_dataOutputFileName ), "name of generic output file" )
323  (m_option_dataOutputAllowAll.c_str(), po::value<bool >()->default_value(m_dataOutputAllowAll ), "subEnvs that will write to generic output file" )
324  (m_option_dataOutputAllowedSet.c_str(), po::value<std::string >()->default_value(m_str1 ), "subEnvs that will write to generic output file" )
325  (m_option_loadBalanceAlgorithmId.c_str(), po::value<unsigned int>()->default_value(m_loadBalanceAlgorithmId ), "Perform load balancing with chosen algorithm (0 = no balancing)" )
326  (m_option_loadBalanceTreshold.c_str(), po::value<double >()->default_value(m_loadBalanceTreshold ), "Perform load balancing if load unbalancing ratio > treshold" )
327  (m_option_minEffectiveSizeRatio.c_str(), po::value<double >()->default_value(m_minEffectiveSizeRatio ), "minimum allowed effective size ratio wrt previous level" )
328  (m_option_maxEffectiveSizeRatio.c_str(), po::value<double >()->default_value(m_maxEffectiveSizeRatio ), "maximum allowed effective size ratio wrt previous level" )
329  (m_option_scaleCovMatrix.c_str(), po::value<bool >()->default_value(m_scaleCovMatrix ), "scale proposal covariance matrix" )
330  (m_option_minRejectionRate.c_str(), po::value<double >()->default_value(m_minRejectionRate ), "minimum allowed attempted rejection rate at current level" )
331  (m_option_maxRejectionRate.c_str(), po::value<double >()->default_value(m_maxRejectionRate ), "maximum allowed attempted rejection rate at current level" )
332  (m_option_covRejectionRate.c_str(), po::value<double >()->default_value(m_covRejectionRate ), "c.o.v. for judging attempted rejection rate at current level" )
333  (m_option_minAcceptableEta.c_str(), po::value<double >()->default_value(m_minAcceptableEta ), "min acceptable eta" )
334  (m_option_totallyMute.c_str(), po::value<bool >()->default_value(m_totallyMute ), "totally mute (no printout message)" )
335  (m_option_initialPosition_dataInputFileName.c_str(), po::value<std::string >()->default_value(m_initialPositionDataInputFileName ), "name of input file for initial position" )
336  (m_option_initialPosition_dataInputFileType.c_str(), po::value<std::string >()->default_value(m_initialPositionDataInputFileType ), "type of input file for initial position" )
337  (m_option_initialProposalCovMatrix_dataInputFileName.c_str(), po::value<std::string >()->default_value(m_initialProposalCovMatrixDataInputFileName), "name of input file for initial proposal covariance matrix" )
338  (m_option_initialProposalCovMatrix_dataInputFileType.c_str(), po::value<std::string >()->default_value(m_initialProposalCovMatrixDataInputFileType), "type of input file for initial proposal covariance matrix" )
339  (m_option_listOfDisabledParameters.c_str(), po::value<std::string >()->default_value(m_str2 ), "list of disabled parameters" ) // gpmsa2
340  (m_option_initialValuesOfDisabledParameters.c_str(), po::value<std::string >()->default_value(m_str3 ), "initial values of disabled parameters" ) // gpmsa2
341  (m_option_rawChain_dataInputFileName.c_str(), po::value<std::string >()->default_value(m_rawChainDataInputFileName ), "name of input file for raw chain " )
342  (m_option_rawChain_dataInputFileType.c_str(), po::value<std::string >()->default_value(m_rawChainDataInputFileType ), "type of input file for raw chain " )
343  (m_option_rawChain_size.c_str(), po::value<unsigned int>()->default_value(m_rawChainSize ), "size of raw chain" )
344  (m_option_rawChain_generateExtra.c_str(), po::value<bool >()->default_value(m_rawChainGenerateExtra ), "generate extra information about raw chain" )
345  (m_option_rawChain_displayPeriod.c_str(), po::value<unsigned int>()->default_value(m_rawChainDisplayPeriod ), "period of message display during raw chain generation" )
346  (m_option_rawChain_measureRunTimes.c_str(), po::value<bool >()->default_value(m_rawChainMeasureRunTimes ), "measure run times" )
347  (m_option_rawChain_dataOutputPeriod.c_str(), po::value<unsigned int>()->default_value(m_rawChainDataOutputPeriod ), "period of message display during raw chain generation" )
348  (m_option_rawChain_dataOutputFileName.c_str(), po::value<std::string >()->default_value(m_rawChainDataOutputFileName ), "name of output file for raw chain " )
349  (m_option_rawChain_dataOutputFileType.c_str(), po::value<std::string >()->default_value(m_rawChainDataOutputFileType ), "type of output file for raw chain " )
350  (m_option_rawChain_dataOutputAllowAll.c_str(), po::value<bool >()->default_value(m_rawChainDataOutputAllowAll ), "subEnvs that will write to output file for raw chain" )
351  (m_option_rawChain_dataOutputAllowedSet.c_str(), po::value<std::string >()->default_value(m_str4 ), "subEnvs that will write to output file for raw chain" )
352 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
353  (m_option_rawChain_computeStats.c_str(), po::value<bool >()->default_value(m_rawChainComputeStats ), "compute statistics on raw chain" )
354 #endif
355  (m_option_filteredChain_generate.c_str(), po::value<bool >()->default_value(m_filteredChainGenerate ), "generate filtered chain" )
356  (m_option_filteredChain_discardedPortion.c_str(), po::value<double >()->default_value(m_filteredChainDiscardedPortion ), "initial discarded portion for chain filtering" )
357  (m_option_filteredChain_lag.c_str(), po::value<unsigned int>()->default_value(m_filteredChainLag ), "spacing for chain filtering" )
358  (m_option_filteredChain_dataOutputFileName.c_str(), po::value<std::string >()->default_value(m_filteredChainDataOutputFileName ), "name of output file for filtered chain" )
359  (m_option_filteredChain_dataOutputFileType.c_str(), po::value<std::string >()->default_value(m_filteredChainDataOutputFileType ), "type of output file for filtered chain" )
360  (m_option_filteredChain_dataOutputAllowAll.c_str(), po::value<bool >()->default_value(m_filteredChainDataOutputAllowAll ), "subEnvs that will write to output file for filtered chain" )
361  (m_option_filteredChain_dataOutputAllowedSet.c_str(), po::value<std::string >()->default_value(m_str5 ), "subEnvs that will write to output file for filtered chain" )
362 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
363  (m_option_filteredChain_computeStats.c_str(), po::value<bool >()->default_value(m_filteredChainComputeStats ), "compute statistics on filtered chain" )
364 #endif
365  (m_option_displayCandidates.c_str(), po::value<bool >()->default_value(m_displayCandidates ), "display candidates generated in the core MH algorithm" )
366  (m_option_putOutOfBoundsInChain.c_str(), po::value<bool >()->default_value(m_putOutOfBoundsInChain ), "put 'out of bound' candidates in chain as well" )
367  (m_option_tk_useLocalHessian.c_str(), po::value<bool >()->default_value(m_tkUseLocalHessian ), "'proposal' use local Hessian" )
368  (m_option_tk_useNewtonComponent.c_str(), po::value<bool >()->default_value(m_tkUseNewtonComponent ), "'proposal' use Newton component" )
369  (m_option_dr_maxNumExtraStages.c_str(), po::value<unsigned int>()->default_value(m_drMaxNumExtraStages ), "'dr' maximum number of extra stages" )
370  (m_option_dr_listOfScalesForExtraStages.c_str(), po::value<std::string >()->default_value(m_str6 ), "'dr' list of scales for proposal cov matrices from 2nd stage on" )
371  (m_option_dr_duringAmNonAdaptiveInt.c_str(), po::value<bool >()->default_value(m_drDuringAmNonAdaptiveInt ), "'dr' used during 'am' non adaptive interval" )
372  (m_option_am_keepInitialMatrix.c_str(), po::value<bool >()->default_value(m_amKeepInitialMatrix ), "'am' keep initial (given) matrix" )
373  (m_option_am_initialNonAdaptInterval.c_str(), po::value<unsigned int>()->default_value(m_amInitialNonAdaptInterval ), "'am' initial non adaptation interval" )
374  (m_option_am_adaptInterval.c_str(), po::value<unsigned int>()->default_value(m_amAdaptInterval ), "'am' adaptation interval" )
375  (m_option_am_adaptedMatrices_dataOutputPeriod.c_str(), po::value<unsigned int>()->default_value(m_amAdaptedMatricesDataOutputPeriod ), "period for outputing 'am' adapted matrices" )
376  (m_option_am_adaptedMatrices_dataOutputFileName.c_str(), po::value<std::string >()->default_value(m_amAdaptedMatricesDataOutputFileName ), "name of output file for 'am' adapted matrices" )
377  (m_option_am_adaptedMatrices_dataOutputFileType.c_str(), po::value<std::string >()->default_value(m_amAdaptedMatricesDataOutputFileType ), "type of output file for 'am' adapted matrices" )
378  (m_option_am_adaptedMatrices_dataOutputAllowAll.c_str(), po::value<bool >()->default_value(m_amAdaptedMatricesDataOutputAllowAll ), "type of output file for 'am' adapted matrices" )
379  (m_option_am_adaptedMatrices_dataOutputAllowedSet.c_str(), po::value<std::string >()->default_value(m_str7 ), "type of output file for 'am' adapted matrices" )
380  (m_option_am_eta.c_str(), po::value<double >()->default_value(m_amEta ), "'am' eta" )
381  (m_option_am_epsilon.c_str(), po::value<double >()->default_value(m_amEpsilon ), "'am' epsilon" )
382  ;
383 
384  return;
385 }
386 
387 void
388 MLSamplingLevelOptions::getMyOptionValues(po::options_description& optionsDesc)
389 {
390  char tmpStr[64];
391 
392  if (m_env.allOptionsMap().count(m_option_help.c_str())) {
393  if (m_env.subDisplayFile()) {
394  *m_env.subDisplayFile() << optionsDesc
395  << std::endl;
396  }
397  }
398 
399 #ifdef ML_CODE_HAS_NEW_RESTART_CAPABILITY
400 #else
402  m_checkpointOutputFileName = ((const po::variable_value&) m_env.allOptionsMap()[m_option_checkpointOutputFileName.c_str()]).as<std::string>();
403  }
404 #endif
405 
406  if (m_env.allOptionsMap().count(m_option_stopAtEnd.c_str())) {
407  m_stopAtEnd = ((const po::variable_value&) m_env.allOptionsMap()[m_option_stopAtEnd.c_str()]).as<bool>();
408  }
409 
410  if (m_env.allOptionsMap().count(m_option_dataOutputFileName.c_str())) {
411  m_dataOutputFileName = ((const po::variable_value&) m_env.allOptionsMap()[m_option_dataOutputFileName.c_str()]).as<std::string>();
412  }
413 
414  if (m_env.allOptionsMap().count(m_option_dataOutputAllowAll.c_str())) {
416  }
417 
418  if (m_dataOutputAllowAll) {
420  }
421  else if (m_env.allOptionsMap().count(m_option_dataOutputAllowedSet.c_str())) {
422  m_dataOutputAllowedSet.clear();
423  std::vector<double> tmpAllow(0,0.);
424  std::string inputString = m_env.allOptionsMap()[m_option_dataOutputAllowedSet.c_str()].as<std::string>();
425  MiscReadDoublesFromString(inputString,tmpAllow);
426 
427  if (tmpAllow.size() > 0) {
428  for (unsigned int i = 0; i < tmpAllow.size(); ++i) {
429  m_dataOutputAllowedSet.insert((unsigned int) tmpAllow[i]);
430  }
431  }
432  }
433  m_str1.clear();
434  for (std::set<unsigned int>::iterator setIt = m_dataOutputAllowedSet.begin(); setIt != m_dataOutputAllowedSet.end(); ++setIt) {
435  sprintf(tmpStr,"%d",(int)(*setIt));
436  m_str1 += tmpStr;
437  m_str1 += " ";
438  }
439 
440  if (m_env.allOptionsMap().count(m_option_loadBalanceAlgorithmId.c_str())) {
441  m_loadBalanceAlgorithmId = ((const po::variable_value&) m_env.allOptionsMap()[m_option_loadBalanceAlgorithmId.c_str()]).as<unsigned int>();
442  }
443 
444  if (m_env.allOptionsMap().count(m_option_loadBalanceTreshold.c_str())) {
445  m_loadBalanceTreshold = ((const po::variable_value&) m_env.allOptionsMap()[m_option_loadBalanceTreshold.c_str()]).as<double>();
446  }
447 
448  if (m_env.allOptionsMap().count(m_option_minEffectiveSizeRatio.c_str())) {
449  m_minEffectiveSizeRatio = ((const po::variable_value&) m_env.allOptionsMap()[m_option_minEffectiveSizeRatio.c_str()]).as<double>();
450  }
451  if (m_minEffectiveSizeRatio >= 1.) {
452  std::cerr << "WARNING In MLSamplingLevelOptions::getMyOptionsValues()"
453  << ", worldRank " << m_env.worldRank()
454  << ", fullRank " << m_env.fullRank()
455  << ", subEnvironment " << m_env.subId()
456  << ", subRank " << m_env.subRank()
457  << ", inter0Rank " << m_env.inter0Rank()
458  << ": forcing the value of '" << m_option_minEffectiveSizeRatio.c_str()
459  << "' from " << m_minEffectiveSizeRatio
460  << " to " << .5
461  << std::endl;
463  }
464 
465  if (m_env.allOptionsMap().count(m_option_maxEffectiveSizeRatio.c_str())) {
466  m_maxEffectiveSizeRatio = ((const po::variable_value&) m_env.allOptionsMap()[m_option_maxEffectiveSizeRatio.c_str()]).as<double>();
467  }
468  if (m_maxEffectiveSizeRatio >= 1.) {
469  std::cerr << "WARNING In MLSamplingLevelOptions::getMyOptionsValues()"
470  << ", worldRank " << m_env.worldRank()
471  << ", fullRank " << m_env.fullRank()
472  << ", subEnvironment " << m_env.subId()
473  << ", subRank " << m_env.subRank()
474  << ", inter0Rank " << m_env.inter0Rank()
475  << ": forcing the value of '" << m_option_maxEffectiveSizeRatio.c_str()
476  << "' from " << m_maxEffectiveSizeRatio
477  << " to " << .5
478  << std::endl;
480  }
481 
482  if (m_env.allOptionsMap().count(m_option_scaleCovMatrix.c_str())) {
483  m_scaleCovMatrix = ((const po::variable_value&) m_env.allOptionsMap()[m_option_scaleCovMatrix.c_str()]).as<bool>();
484  }
485 
486  if (m_env.allOptionsMap().count(m_option_minRejectionRate.c_str())) {
487  m_minRejectionRate = ((const po::variable_value&) m_env.allOptionsMap()[m_option_minRejectionRate.c_str()]).as<double>();
488  }
489  if (m_minRejectionRate >= 1.) {
490  std::cerr << "WARNING In MLSamplingLevelOptions::getMyOptionsValues()"
491  << ", worldRank " << m_env.worldRank()
492  << ", fullRank " << m_env.fullRank()
493  << ", subEnvironment " << m_env.subId()
494  << ", subRank " << m_env.subRank()
495  << ", inter0Rank " << m_env.inter0Rank()
496  << ": forcing the value of '" << m_option_minRejectionRate.c_str()
497  << "' from " << m_minRejectionRate
498  << " to " << .5
499  << std::endl;
500  m_minRejectionRate = .5;
501  }
502 
503  if (m_env.allOptionsMap().count(m_option_maxRejectionRate.c_str())) {
504  m_maxRejectionRate = ((const po::variable_value&) m_env.allOptionsMap()[m_option_maxRejectionRate.c_str()]).as<double>();
505  }
506  if (m_maxRejectionRate >= 1.) {
507  std::cerr << "WARNING In MLSamplingLevelOptions::getMyOptionsValues()"
508  << ", worldRank " << m_env.worldRank()
509  << ", fullRank " << m_env.fullRank()
510  << ", subEnvironment " << m_env.subId()
511  << ", subRank " << m_env.subRank()
512  << ", inter0Rank " << m_env.inter0Rank()
513  << ": forcing the value of '" << m_option_maxRejectionRate.c_str()
514  << "' from " << m_maxRejectionRate
515  << " to " << .5
516  << std::endl;
517  m_maxRejectionRate = .5;
518  }
519 
520  if (m_env.allOptionsMap().count(m_option_covRejectionRate.c_str())) {
521  m_covRejectionRate = ((const po::variable_value&) m_env.allOptionsMap()[m_option_covRejectionRate.c_str()]).as<double>();
522  }
523  if (m_covRejectionRate >= 1.) {
524  std::cerr << "WARNING In MLSamplingLevelOptions::getMyOptionsValues()"
525  << ", worldRank " << m_env.worldRank()
526  << ", fullRank " << m_env.fullRank()
527  << ", subEnvironment " << m_env.subId()
528  << ", subRank " << m_env.subRank()
529  << ", inter0Rank " << m_env.inter0Rank()
530  << ": forcing the value of '" << m_option_covRejectionRate.c_str()
531  << "' from " << m_covRejectionRate
532  << " to " << .5
533  << std::endl;
534  m_covRejectionRate = .5;
535  }
536 
537  if (m_env.allOptionsMap().count(m_option_minAcceptableEta.c_str())) { // gpmsa1
538  m_minAcceptableEta = ((const po::variable_value&) m_env.allOptionsMap()[m_option_minAcceptableEta.c_str()]).as<double>();
539  }
540 
541  if (m_env.allOptionsMap().count(m_option_totallyMute.c_str())) {
542  m_totallyMute = ((const po::variable_value&) m_env.allOptionsMap()[m_option_totallyMute.c_str()]).as<bool>();
543  }
544 
546  m_initialPositionDataInputFileName = ((const po::variable_value&) m_env.allOptionsMap()[m_option_initialPosition_dataInputFileName.c_str()]).as<std::string>();
547  }
548 
550  m_initialPositionDataInputFileType = ((const po::variable_value&) m_env.allOptionsMap()[m_option_initialPosition_dataInputFileType.c_str()]).as<std::string>();
551  }
552 
555  }
556 
559  }
560 
561  if (m_env.allOptionsMap().count(m_option_listOfDisabledParameters)) { // gpmsa2
562  m_parameterDisabledSet.clear();
563  std::vector<double> tmpAllow(0,0.);
564  std::string inputString = m_env.allOptionsMap()[m_option_listOfDisabledParameters].as<std::string>();
565  MiscReadDoublesFromString(inputString,tmpAllow);
566  if (tmpAllow.size() > 0) {
567  for (unsigned int i = 0; i < tmpAllow.size(); ++i) {
568  m_parameterDisabledSet.insert((unsigned int) tmpAllow[i]);
569  }
570  }
571  }
572  m_str2.clear();
573  for (std::set<unsigned int>::iterator setIt = m_parameterDisabledSet.begin(); setIt != m_parameterDisabledSet.end(); ++setIt) { // gpmsa2
574  sprintf(tmpStr,"%d",(int)(*setIt));
575  m_str2 += tmpStr;
576  m_str2 += " ";
577  }
578 
580  std::string inputString = ((const po::variable_value&) m_env.allOptionsMap()[m_option_initialValuesOfDisabledParameters.c_str()]).as<std::string>();
582  //if (m_env.subDisplayFile()) {
583  // *m_env.subDisplayFile() << "In MLSamplingLevelOptions::getMyOptionValues(): scales =";
584  // for (unsigned int i = 0; i < tmpValues.size(); ++i) {
585  // *m_env.subDisplayFile() << " " << tmpValues[i];
586  // }
587  // *m_env.subDisplayFile() << std::endl;
588  //}
589 
590  }
591  m_str3.clear();
592  for (unsigned int i = 0; i < m_initialValuesOfDisabledParameters.size(); ++i) {
593  sprintf(tmpStr,"%e",m_initialValuesOfDisabledParameters[i]);
594  m_str3 += tmpStr;
595  m_str3 += " ";
596  }
597 
599  m_rawChainDataInputFileName = ((const po::variable_value&) m_env.allOptionsMap()[m_option_rawChain_dataInputFileName.c_str()]).as<std::string>();
600  }
601 
603  m_rawChainDataInputFileType = ((const po::variable_value&) m_env.allOptionsMap()[m_option_rawChain_dataInputFileType.c_str()]).as<std::string>();
604  }
605 
606  if (m_env.allOptionsMap().count(m_option_rawChain_size.c_str())) {
607  //std::cout << "In count()=true, rawChainSize = " << m_rawChainSize << std::endl;
608  m_rawChainSize = ((const po::variable_value&) m_env.allOptionsMap()[m_option_rawChain_size.c_str()]).as<unsigned int>();
609  }
610 //std::cout << "After count(), rawChainSize = " << m_rawChainSize << std::endl;
611 
612  if (m_env.allOptionsMap().count(m_option_rawChain_displayPeriod.c_str())) {
613  m_rawChainDisplayPeriod = ((const po::variable_value&) m_env.allOptionsMap()[m_option_rawChain_displayPeriod.c_str()]).as<unsigned int>();
614  }
615 
617  m_rawChainMeasureRunTimes = ((const po::variable_value&) m_env.allOptionsMap()[m_option_rawChain_measureRunTimes.c_str()]).as<bool>();
618  }
619 
621  m_rawChainDataOutputPeriod = ((const po::variable_value&) m_env.allOptionsMap()[m_option_rawChain_dataOutputPeriod.c_str()]).as<unsigned int>();
622  }
623 
625  m_rawChainDataOutputFileName = ((const po::variable_value&) m_env.allOptionsMap()[m_option_rawChain_dataOutputFileName.c_str()]).as<std::string>();
626  }
627 
629  m_rawChainDataOutputFileType = ((const po::variable_value&) m_env.allOptionsMap()[m_option_rawChain_dataOutputFileType.c_str()]).as<std::string>();
630  }
631 
634  }
635 
638  }
639  else if (m_env.allOptionsMap().count(m_option_rawChain_dataOutputAllowedSet.c_str())) {
641  std::vector<double> tmpAllow(0,0.);
642  std::string inputString = m_env.allOptionsMap()[m_option_rawChain_dataOutputAllowedSet.c_str()].as<std::string>();
643  MiscReadDoublesFromString(inputString,tmpAllow);
644 
645  if (tmpAllow.size() > 0) {
646  for (unsigned int i = 0; i < tmpAllow.size(); ++i) {
647  m_rawChainDataOutputAllowedSet.insert((unsigned int) tmpAllow[i]);
648  }
649  }
650  }
651  m_str4.clear();
652  for (std::set<unsigned int>::iterator setIt = m_rawChainDataOutputAllowedSet.begin(); setIt != m_rawChainDataOutputAllowedSet.end(); ++setIt) {
653  sprintf(tmpStr,"%d",(int)(*setIt));
654  m_str4 += tmpStr;
655  m_str4 += " ";
656  }
657 
658 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
659  if (m_env.allOptionsMap().count(m_option_rawChain_computeStats.c_str())) {
660  m_rawChainComputeStats = ((const po::variable_value&) m_env.allOptionsMap()[m_option_rawChain_computeStats.c_str()]).as<bool>();
661  }
662 #endif
663  if (m_env.allOptionsMap().count(m_option_rawChain_generateExtra.c_str())) {
664  m_rawChainGenerateExtra = ((const po::variable_value&) m_env.allOptionsMap()[m_option_rawChain_generateExtra.c_str()]).as<bool>();
665  }
666 
667  if (m_env.allOptionsMap().count(m_option_filteredChain_generate.c_str())) {
668  m_filteredChainGenerate = ((const po::variable_value&) m_env.allOptionsMap()[m_option_filteredChain_generate.c_str()]).as<bool>();
669  }
670 
672  m_filteredChainDiscardedPortion = ((const po::variable_value&) m_env.allOptionsMap()[m_option_filteredChain_discardedPortion.c_str()]).as<double>();
673  }
674 
675  if (m_env.allOptionsMap().count(m_option_filteredChain_lag.c_str())) {
676  m_filteredChainLag = ((const po::variable_value&) m_env.allOptionsMap()[m_option_filteredChain_lag.c_str()]).as<unsigned int>();
677  }
678  if ((m_filteredChainGenerate == true) &&
679  (m_filteredChainLag < 2 )) {
680  std::cerr << "WARNING In MLSamplingLevelOptions::getMyOptionsValues()"
681  << ", worldRank " << m_env.worldRank()
682  << ", fullRank " << m_env.fullRank()
683  << ", subEnvironment " << m_env.subId()
684  << ", subRank " << m_env.subRank()
685  << ", inter0Rank " << m_env.inter0Rank()
686  << ": forcing the value of '" << m_option_filteredChain_lag.c_str()
687  << "' from " << m_filteredChainLag
688  << " to " << 2
689  << std::endl;
690  m_filteredChainLag = 2;
691  }
692 
694  m_filteredChainDataOutputFileName = ((const po::variable_value&) m_env.allOptionsMap()[m_option_filteredChain_dataOutputFileName.c_str()]).as<std::string>();
695  }
696 
698  m_filteredChainDataOutputFileType = ((const po::variable_value&) m_env.allOptionsMap()[m_option_filteredChain_dataOutputFileType.c_str()]).as<std::string>();
699  }
700 
703  }
704 
707  }
710  std::vector<double> tmpAllow(0,0.);
711  std::string inputString = m_env.allOptionsMap()[m_option_filteredChain_dataOutputAllowedSet.c_str()].as<std::string>();
712  MiscReadDoublesFromString(inputString,tmpAllow);
713 
714  if (tmpAllow.size() > 0) {
715  for (unsigned int i = 0; i < tmpAllow.size(); ++i) {
716  m_filteredChainDataOutputAllowedSet.insert((unsigned int) tmpAllow[i]);
717  }
718  }
719  }
720  m_str5.clear();
721  for (std::set<unsigned int>::iterator setIt = m_filteredChainDataOutputAllowedSet.begin(); setIt != m_filteredChainDataOutputAllowedSet.end(); ++setIt) {
722  sprintf(tmpStr,"%d",(int)(*setIt));
723  m_str5 += tmpStr;
724  m_str5 += " ";
725  }
726 
727 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
728  if (m_env.allOptionsMap().count(m_option_filteredChain_computeStats.c_str())) {
729  m_filteredChainComputeStats = ((const po::variable_value&) m_env.allOptionsMap()[m_option_filteredChain_computeStats.c_str()]).as<bool>();
730  }
731 #endif
732  if (m_env.allOptionsMap().count(m_option_displayCandidates.c_str())) {
733  m_displayCandidates = ((const po::variable_value&) m_env.allOptionsMap()[m_option_displayCandidates.c_str()]).as<bool>();
734  }
735 
736  if (m_env.allOptionsMap().count(m_option_putOutOfBoundsInChain.c_str())) {
737  m_putOutOfBoundsInChain = ((const po::variable_value&) m_env.allOptionsMap()[m_option_putOutOfBoundsInChain.c_str()]).as<bool>();
738  }
739 
740  if (m_env.allOptionsMap().count(m_option_tk_useLocalHessian.c_str())) {
741  m_tkUseLocalHessian = ((const po::variable_value&) m_env.allOptionsMap()[m_option_tk_useLocalHessian.c_str()]).as<bool>();
742  }
743 
744  if (m_env.allOptionsMap().count(m_option_tk_useNewtonComponent.c_str())) {
745  m_tkUseNewtonComponent = ((const po::variable_value&) m_env.allOptionsMap()[m_option_tk_useNewtonComponent.c_str()]).as<bool>();
746  }
747 
748  if (m_env.allOptionsMap().count(m_option_dr_maxNumExtraStages.c_str())) {
749  m_drMaxNumExtraStages = ((const po::variable_value&) m_env.allOptionsMap()[m_option_dr_maxNumExtraStages.c_str()]).as<unsigned int>();
750  }
751 
752  std::vector<double> tmpScales(0,0.);
754  std::string inputString = ((const po::variable_value&) m_env.allOptionsMap()[m_option_dr_listOfScalesForExtraStages.c_str()]).as<std::string>();
755  MiscReadDoublesFromString(inputString,tmpScales);
756  //if (m_env.subDisplayFile()) {
757  // *m_env.subDisplayFile() << "In MLSamplingLevelOptions::getMyOptionValues(): scales =";
758  // for (unsigned int i = 0; i < tmpScales.size(); ++i) {
759  // *m_env.subDisplayFile() << " " << tmpScales[i];
760  // }
761  // *m_env.subDisplayFile() << std::endl;
762  //}
763  }
764 
765  if (m_drMaxNumExtraStages > 0) {
766  m_drScalesForExtraStages.clear();
767 
768  double scale = 1.0;
769  unsigned int tmpSize = tmpScales.size();
770 
772 
773  for (unsigned int i = 0; i < m_drMaxNumExtraStages; ++i) {
774  if (i < tmpSize) scale = tmpScales[i];
775  m_drScalesForExtraStages[i] = scale;
776  }
777  //updateTK();
778  }
779 
780  m_str6.clear();
781  for (unsigned int i = 0; i < m_drScalesForExtraStages.size(); ++i) {
782  sprintf(tmpStr,"%e",m_drScalesForExtraStages[i]);
783  m_str6 += tmpStr;
784  m_str6 += " ";
785  }
786 //std::cout << "m_str6 = " << m_str4 << std::endl;
787 
789  m_drDuringAmNonAdaptiveInt = ((const po::variable_value&) m_env.allOptionsMap()[m_option_dr_duringAmNonAdaptiveInt]).as<bool>();
790  }
791 
792  if (m_env.allOptionsMap().count(m_option_am_keepInitialMatrix.c_str())) {
793  m_amKeepInitialMatrix = ((const po::variable_value&) m_env.allOptionsMap()[m_option_am_keepInitialMatrix.c_str()]).as<bool>();
794  }
795 
797  m_amInitialNonAdaptInterval = ((const po::variable_value&) m_env.allOptionsMap()[m_option_am_initialNonAdaptInterval.c_str()]).as<unsigned int>();
798  }
799 
800  if (m_env.allOptionsMap().count(m_option_am_adaptInterval.c_str())) {
801  m_amAdaptInterval = ((const po::variable_value&) m_env.allOptionsMap()[m_option_am_adaptInterval.c_str()]).as<unsigned int>();
802  }
803 
805  m_amAdaptedMatricesDataOutputPeriod = ((const po::variable_value&) m_env.allOptionsMap()[m_option_am_adaptedMatrices_dataOutputPeriod.c_str()]).as<unsigned int>();
806  }
807 
809  m_amAdaptedMatricesDataOutputFileName = ((const po::variable_value&) m_env.allOptionsMap()[m_option_am_adaptedMatrices_dataOutputFileName.c_str()]).as<std::string>();
810  }
811 
813  m_amAdaptedMatricesDataOutputFileType = ((const po::variable_value&) m_env.allOptionsMap()[m_option_am_adaptedMatrices_dataOutputFileType.c_str()]).as<std::string>();
814  }
815 
818  }
819 
822  }
825  std::vector<double> tmpAllow(0,0.);
826  std::string inputString = m_env.allOptionsMap()[m_option_am_adaptedMatrices_dataOutputAllowedSet.c_str()].as<std::string>();
827  MiscReadDoublesFromString(inputString,tmpAllow);
828 
829  if (tmpAllow.size() > 0) {
830  for (unsigned int i = 0; i < tmpAllow.size(); ++i) {
831  m_amAdaptedMatricesDataOutputAllowedSet.insert((unsigned int) tmpAllow[i]);
832  }
833  }
834  }
835  m_str7.clear();
836  for (std::set<unsigned int>::iterator setIt = m_amAdaptedMatricesDataOutputAllowedSet.begin(); setIt != m_amAdaptedMatricesDataOutputAllowedSet.end(); ++setIt) {
837  sprintf(tmpStr,"%d",(int)(*setIt));
838  m_str7 += tmpStr;
839  m_str7 += " ";
840  }
841 
842  if (m_env.allOptionsMap().count(m_option_am_eta.c_str())) {
843  m_amEta = ((const po::variable_value&) m_env.allOptionsMap()[m_option_am_eta.c_str()]).as<double>();
844  }
845 
846  if (m_env.allOptionsMap().count(m_option_am_epsilon.c_str())) {
847  m_amEpsilon = ((const po::variable_value&) m_env.allOptionsMap()[m_option_am_epsilon.c_str()]).as<double>();
848  }
849 
850  return;
851 }
852 
853 void
854 MLSamplingLevelOptions::print(std::ostream& os) const
855 {
856  os << "m_prefix" << " = " << m_prefix
857 #ifdef ML_CODE_HAS_NEW_RESTART_CAPABILITY
858 #else
860 #endif
861  << "\n" << m_option_stopAtEnd << " = " << m_stopAtEnd
864  << "\n" << m_option_dataOutputAllowedSet << " = ";
865  for (std::set<unsigned int>::iterator setIt = m_dataOutputAllowedSet.begin(); setIt != m_dataOutputAllowedSet.end(); ++setIt) {
866  os << *setIt << " ";
867  }
872  << "\n" << m_option_scaleCovMatrix << " = " << m_scaleCovMatrix
873  << "\n" << m_option_minRejectionRate << " = " << m_minRejectionRate
874  << "\n" << m_option_maxRejectionRate << " = " << m_maxRejectionRate
875  << "\n" << m_option_covRejectionRate << " = " << m_covRejectionRate
876  << "\n" << m_option_minAcceptableEta << " = " << m_minAcceptableEta // gpmsa1
877  << "\n" << m_option_totallyMute << " = " << m_totallyMute
882  << "\n" << m_option_listOfDisabledParameters << " = "; // gpmsa2
883  for (std::set<unsigned int>::iterator setIt = m_parameterDisabledSet.begin(); setIt != m_parameterDisabledSet.end(); ++setIt) {
884  os << *setIt << " ";
885  }
886  os << "\n" << m_option_initialValuesOfDisabledParameters << " = "; // gpmsa2
887  for (unsigned int i = 0; i < m_initialValuesOfDisabledParameters.size(); ++i) {
888  os << m_initialValuesOfDisabledParameters[i] << " ";
889  }
892  << "\n" << m_option_rawChain_size << " = " << m_rawChainSize
900  << "\n" << m_option_rawChain_dataOutputAllowedSet << " = ";
901  for (std::set<unsigned int>::iterator setIt = m_rawChainDataOutputAllowedSet.begin(); setIt != m_rawChainDataOutputAllowedSet.end(); ++setIt) {
902  os << *setIt << " ";
903  }
904  os
905 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
906  << "\n" << m_option_rawChain_computeStats << " = " << m_rawChainComputeStats
907 #endif
910  << "\n" << m_option_filteredChain_lag << " = " << m_filteredChainLag
915  for (std::set<unsigned int>::iterator setIt = m_filteredChainDataOutputAllowedSet.begin(); setIt != m_filteredChainDataOutputAllowedSet.end(); ++setIt) {
916  os << *setIt << " ";
917  }
918  os
919 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
920  << "\n" << m_option_filteredChain_computeStats << " = " << m_filteredChainComputeStats
921 #endif
922  << "\n" << m_option_displayCandidates << " = " << m_displayCandidates
924  << "\n" << m_option_tk_useLocalHessian << " = " << m_tkUseLocalHessian
927  << "\n" << m_option_dr_listOfScalesForExtraStages << " = ";
928  for (unsigned int i = 0; i < m_drScalesForExtraStages.size(); ++i) {
929  os << m_drScalesForExtraStages[i] << " ";
930  }
934  << "\n" << m_option_am_adaptInterval << " = " << m_amAdaptInterval
940  for (std::set<unsigned int>::iterator setIt = m_amAdaptedMatricesDataOutputAllowedSet.begin(); setIt != m_amAdaptedMatricesDataOutputAllowedSet.end(); ++setIt) {
941  os << *setIt << " ";
942  }
943  os << "\n" << m_option_am_eta << " = " << m_amEta
944  << "\n" << m_option_am_epsilon << " = " << m_amEpsilon
945  << std::endl;
946 
947  return;
948 }
949 
950 const BaseEnvironment&
952 {
953  return m_env;
954 }
955 
956 std::ostream& operator<<(std::ostream& os, const MLSamplingLevelOptions& obj)
957 {
958  obj.print(os);
959 
960  return os;
961 }
962 
963 } // End namespace QUESO
#define UQ_ML_SAMPLING_L_DATA_OUTPUT_FILE_NAME_ODV
#define UQ_ML_SAMPLING_L_PUT_OUT_OF_BOUNDS_IN_CHAIN_ODV
bool m_scaleCovMatrix
Whether or not scale proposal covariance matrix.
std::string m_rawChainDataOutputFileType
Type of output file for raw chain.
std::string m_amAdaptedMatricesDataOutputFileName
Name of output file for &#39;am&#39; adapted matrices.
std::string m_initialProposalCovMatrixDataInputFileType
Type of input file for initial proposal covariance matrix.
bool m_filteredChainGenerate
Whether or not to generate filtered chain.
int subRank() const
Access function for sub-rank.
Definition: Environment.C:263
void scanOptionsValues(const MLSamplingLevelOptions *defaultOptions)
It scans the option values from the options input file.
std::string m_option_am_adaptedMatrices_dataOutputFileType
void copyOptionsValues(const MLSamplingLevelOptions &srcOptions)
Copies the option values from srcOptions to this.
std::string m_option_initialProposalCovMatrix_dataInputFileType
unsigned int m_amAdaptInterval
&#39;am&#39; adaptation interval.
std::vector< double > m_initialValuesOfDisabledParameters
bool m_putOutOfBoundsInChain
Put &#39;out of bound&#39; candidates in chain as well.
unsigned int m_rawChainSize
Size of raw chain.
#define UQ_ML_SAMPLING_L_AM_ETA_ODV
int inter0Rank() const
Returns the process inter0 rank.
Definition: Environment.C:289
bool m_amAdaptedMatricesDataOutputAllowAll
Whether or not subEnvs will write to output file for &#39;am&#39; adapted matrices.
double m_filteredChainDiscardedPortion
Initial discarded portion for chain filtering.
int worldRank() const
Returns the process world rank.
Definition: Environment.C:235
double m_covRejectionRate
c.o.v. for judging attempted rejection rate at current level.
std::string m_amAdaptedMatricesDataOutputFileType
Type of output file for &#39;am&#39; adapted matrices.
#define UQ_ML_SAMPLING_L_RAW_CHAIN_DATA_OUTPUT_ALLOW_ALL_ODV
#define UQ_ML_SAMPLING_L_TK_USE_LOCAL_HESSIAN_ODV
#define UQ_ML_SAMPLING_L_MIN_EFFECTIVE_SIZE_RATIO_ODV
#define UQ_ML_SAMPLING_L_INITIAL_PROPOSAL_COV_MATRIX_DATA_INPUT_FILE_NAME_ODV
std::ofstream * subDisplayFile() const
Access function for m_subDisplayFile (displays file on stream).
Definition: Environment.C:305
#define UQ_ML_SAMPLING_L_DATA_OUTPUT_ALLOW_ALL_ODV
const BaseEnvironment & env() const
Access to the environment.
#define UQ_ML_SAMPLING_L_AM_ADAPTED_MATRICES_DATA_OUTPUT_FILE_TYPE_ODV
unsigned int m_amInitialNonAdaptInterval
&#39;am&#39; initial non adaptation interval
unsigned int m_filteredChainLag
Spacing for chain filtering.
#define UQ_ML_SAMPLING_L_COV_REJECTION_RATE_ODV
#define UQ_ML_SAMPLING_L_STOP_AT_END_ODV
#define UQ_ML_SAMPLING_L_FILTERED_CHAIN_DISCARDED_PORTION_ODV
#define UQ_ML_SAMPLING_L_INITIAL_PROPOSAL_COV_MATRIX_DATA_INPUT_FILE_TYPE_ODV
#define UQ_ML_SAMPLING_L_AM_KEEP_INITIAL_MATRIX_ODV
#define UQ_ML_SAMPLING_L_RAW_CHAIN_DATA_INPUT_FILE_NAME_ODV
#define UQ_ML_SAMPLING_L_CHECKPOINT_OUTPUT_FILE_NAME_ODV
#define UQ_ML_SAMPLING_L_MIN_ACCEPTABLE_ETA_ODV
po::variables_map & allOptionsMap() const
Definition: Environment.C:368
#define UQ_ML_SAMPLING_L_AM_ADAPT_INTERVAL_ODV
This (virtual) class sets up the environment underlying the use of the QUESO library by an executable...
Definition: Environment.h:187
double m_minRejectionRate
minimum allowed attempted rejection rate at current level
bool m_dataOutputAllowAll
subEnvs that will write to generic output file.
std::string m_option_am_adaptedMatrices_dataOutputAllowedSet
bool m_tkUseLocalHessian
Whether or not &#39;proposal&#39; uses local Hessian.
std::string m_checkpointOutputFileName
Name of checkpoint output file.
#define UQ_ML_SAMPLING_L_FILTERED_CHAIN_DATA_OUTPUT_FILE_TYPE_ODV
#define UQ_ML_SAMPLING_L_RAW_CHAIN_SIZE_ODV
#define ML_CODE_HAS_NEW_RESTART_CAPABILITY
Definition: Defines.h:63
double m_minEffectiveSizeRatio
Minimum allowed effective size ratio wrt previous level.
unsigned int m_drMaxNumExtraStages
&#39;dr&#39; maximum number of extra stages.
std::string m_dataOutputFileName
Name of generic output file.
unsigned int m_rawChainDataOutputPeriod
Period of message display during raw chain generation.
po::options_description * m_optionsDesc
std::string m_rawChainDataInputFileType
Type of input file for raw chain.
#define UQ_ML_SAMPLING_L_RAW_CHAIN_DATA_OUTPUT_FILE_NAME_ODV
#define UQ_ML_SAMPLING_L_MAX_REJECTION_RATE_ODV
#define UQ_ML_SAMPLING_L_INITIAL_POSITION_DATA_INPUT_FILE_NAME_ODV
#define UQ_ML_SAMPLING_L_RAW_CHAIN_DATA_OUTPUT_PERIOD_ODV
std::set< unsigned int > m_filteredChainDataOutputAllowedSet
subEnvs that will write to output file for filtered chain.
#define UQ_ML_SAMPLING_L_AM_ADAPTED_MATRICES_DATA_OUTPUT_ALLOW_ALL_ODV
std::set< unsigned int > m_rawChainDataOutputAllowedSet
subEnvs that will write to output file for raw chain.
std::set< unsigned int > m_parameterDisabledSet
#define UQ_ML_SAMPLING_L_MIN_REJECTION_RATE_ODV
bool m_stopAtEnd
Stop at end of such level.
std::string m_option_am_adaptedMatrices_dataOutputFileName
#define UQ_ML_SAMPLING_L_RAW_CHAIN_DISPLAY_PERIOD_ODV
#define UQ_ML_SAMPLING_L_FILTERED_CHAIN_DATA_OUTPUT_FILE_NAME_ODV
#define UQ_ML_SAMPLING_L_DR_MAX_NUM_EXTRA_STAGES_ODV
std::string m_option_initialProposalCovMatrix_dataInputFileName
std::set< unsigned int > m_amAdaptedMatricesDataOutputAllowedSet
subEnvs that will write to output file for &#39;am&#39; adapted matrices.
unsigned int m_rawChainDisplayPeriod
Period of message display during raw chain generation.
std::string m_filteredChainDataOutputFileType
Type of output file for filtered chain.
#define UQ_ML_SAMPLING_L_RAW_CHAIN_GENERATE_EXTRA_ODV
#define UQ_ML_SAMPLING_L_LOAD_BALANCE_ALGORITHM_ID_ODV
double m_minAcceptableEta
minimum acceptable eta,
unsigned int m_amAdaptedMatricesDataOutputPeriod
Period for outputing &#39;am&#39; adapted matrices.
std::vector< double > m_drScalesForExtraStages
&#39;dr&#39; list of scales for proposal covariance matrices from 2nd stage on.
std::string m_initialPositionDataInputFileName
Name of input file for initial position.
#define UQ_ML_SAMPLING_L_TK_USE_NEWTON_COMPONENT_ODV
void print(std::ostream &os) const
It prints the option values.
std::string m_initialPositionDataInputFileType
Type of input file for initial position.
unsigned int m_loadBalanceAlgorithmId
Perform load balancing with chosen algorithm (0 = no balancing).
bool m_amKeepInitialMatrix
Whether or not &#39;am&#39; will keep initial (given) matrix.
#define UQ_ML_SAMPLING_L_RAW_CHAIN_MEASURE_RUN_TIMES_ODV
bool m_tkUseNewtonComponent
Whether or not &#39;proposal&#39; uses Newton component.
bool m_rawChainMeasureRunTimes
Whether or not to measure run times.
int fullRank() const
Returns the process full rank.
Definition: Environment.C:241
std::string m_option_am_adaptedMatrices_dataOutputAllowAll
bool m_displayCandidates
Display candidates generated in the core MH algorithm.
void getMyOptionValues(po::options_description &optionsDesc)
Gets the sequence options defined to the Multilevel algorithm.
double m_maxRejectionRate
maximum allowed attempted rejection rate at current level.
#define UQ_ML_SAMPLING_L_FILTERED_CHAIN_LAG_ODV
double m_maxEffectiveSizeRatio
Maximum allowed effective size ratio wrt previous level.
This class provides options for each level of the Multilevel sequence generator if no input file is a...
bool m_drDuringAmNonAdaptiveInt
Whether or not &#39;dr&#39; is used during &#39;am&#39; non adaptive interval.
#define UQ_ML_SAMPLING_L_RAW_CHAIN_DATA_INPUT_FILE_TYPE_ODV
double m_loadBalanceTreshold
Perform load balancing if load unbalancing ratio &gt; threshold.
#define UQ_ML_SAMPLING_L_DR_DURING_AM_NON_ADAPTIVE_INT_ODV
void defineMyOptions(po::options_description &optionsDesc) const
Defines the options for the Multilevel generator of samples as the default options.
bool m_totallyMute
Whether or not to be totally mute (no printout message).
#define UQ_ML_SAMPLING_L_LOAD_BALANCE_TRESHOLD_ODV
#define UQ_ML_SAMPLING_L_MAX_EFFECTIVE_SIZE_RATIO_ODV
std::ostream & operator<<(std::ostream &os, const BaseEnvironment &obj)
#define UQ_ML_SAMPLING_L_FILTERED_CHAIN_DATA_OUTPUT_ALLOW_ALL_ODV
#define UQ_ML_SAMPLING_L_AM_ADAPTED_MATRICES_DATA_OUTPUT_PERIOD_ODV
#define UQ_ML_SAMPLING_L_AM_INIT_NON_ADAPT_INT_ODV
std::string m_initialProposalCovMatrixDataInputFileName
Name of input file for initial proposal covariance matrix.
bool m_filteredChainDataOutputAllowAll
Whether or not subEnvs will write to output file for filtered chain.
#define UQ_ML_SAMPLING_L_AM_EPSILON_ODV
MLSamplingLevelOptions(const BaseEnvironment &env, const char *prefix)
Constructor: reads options from the input file.
std::string m_rawChainDataInputFileName
Name of input file for raw chain.
std::string m_rawChainDataOutputFileName
Name of output file for raw chain.
#define UQ_ML_SAMPLING_L_AM_ADAPTED_MATRICES_DATA_OUTPUT_FILE_NAME_ODV
bool m_rawChainDataOutputAllowAll
Whether or not subEnvs will write to output file for raw chain.
#define UQ_ML_SAMPLING_L_INITIAL_POSITION_DATA_INPUT_FILE_TYPE_ODV
#define UQ_ML_SAMPLING_L_DISPLAY_CANDIDATES_ODV
unsigned int subId() const
Access function to the number of each sub-environment Id: m_subId.
Definition: Environment.C:329
#define UQ_ML_SAMPLING_L_TOTALLY_MUTE_ODV
#define UQ_ML_SAMPLING_L_FILTERED_CHAIN_GENERATE_ODV
double m_amEta
&#39;am&#39; eta.
double m_amEpsilon
&#39;am&#39; epsilon.
bool m_rawChainGenerateExtra
Generate extra information about raw chain.
void MiscReadDoublesFromString(const std::string &inputString, std::vector< double > &outputDoubles)
Definition: Miscellaneous.C:39
#define UQ_ML_SAMPLING_L_SCALE_COV_MATRIX_ODV
#define UQ_ML_SAMPLING_L_RAW_CHAIN_DATA_OUTPUT_FILE_TYPE_ODV
std::string m_filteredChainDataOutputFileName
Name of output file for filtered chain.
std::set< unsigned int > m_dataOutputAllowedSet
subEnvs that will write to generic output file.
void scanInputFileForMyOptions(const po::options_description &optionsDesc) const
This method scans the input file provided by the user to QUESO.
Definition: Environment.C:378
std::string m_str1
subEnvs that will write to generic output file.

Generated on Thu Apr 23 2015 19:18:34 for queso-0.50.1 by  doxygen 1.8.5