25 #include <queso/Defines.h>
26 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
28 #include <queso/SequenceStatisticalOptions.h>
29 #include <queso/Miscellaneous.h>
33 SsOptionsValues::SsOptionsValues()
35 m_initialDiscardedPortions(0 ),
36 #ifdef QUESO_COMPUTES_EXTRA_POST_PROCESSING_STATISTICS
37 m_meanMonitorPeriod (UQ_SEQUENCE_MEAN_MONITOR_PERIOD_ODV ),
38 m_bmmRun (UQ_SEQUENCE_BMM_RUN_ODV ),
40 m_fftCompute (UQ_SEQUENCE_FFT_COMPUTE_ODV ),
41 m_fftParamId (UQ_SEQUENCE_FFT_PARAM_ID_ODV ),
42 m_fftSize (UQ_SEQUENCE_FFT_SIZE_ODV ),
43 m_fftTestInversion (UQ_SEQUENCE_FFT_TEST_INVERSION_ODV ),
44 m_fftWrite (UQ_SEQUENCE_FFT_WRITE_ODV ),
45 m_psdCompute (UQ_SEQUENCE_PSD_COMPUTE_ODV ),
46 m_psdNumBlocks (UQ_SEQUENCE_PSD_NUM_BLOCKS_ODV ),
47 m_psdHopSizeRatio (UQ_SEQUENCE_PSD_HOP_SIZE_RATIO_ODV ),
48 m_psdParamId (UQ_SEQUENCE_PSD_PARAM_ID_ODV ),
49 m_psdWrite (UQ_SEQUENCE_PSD_WRITE_ODV ),
50 m_psdAtZeroCompute (UQ_SEQUENCE_PSD_AT_ZERO_COMPUTE_ODV ),
51 m_psdAtZeroNumBlocks (0 ),
52 m_psdAtZeroHopSizeRatio (UQ_SEQUENCE_PSD_AT_ZERO_HOP_SIZE_RATIO_ODV ),
53 m_psdAtZeroDisplay (UQ_SEQUENCE_PSD_AT_ZERO_DISPLAY_ODV ),
54 m_psdAtZeroWrite (UQ_SEQUENCE_PSD_AT_ZERO_WRITE_ODV ),
55 m_gewekeCompute (UQ_SEQUENCE_GEWEKE_COMPUTE_ODV ),
56 m_gewekeNaRatio (UQ_SEQUENCE_GEWEKE_NA_RATIO_ODV ),
57 m_gewekeNbRatio (UQ_SEQUENCE_GEWEKE_NB_RATIO_ODV ),
58 m_gewekeDisplay (UQ_SEQUENCE_GEWEKE_DISPLAY_ODV ),
59 m_gewekeWrite (UQ_SEQUENCE_GEWEKE_WRITE_ODV ),
60 m_meanStaccCompute (UQ_SEQUENCE_MEAN_STACC_COMPUTE_ODV ),
61 m_histCompute (UQ_SEQUENCE_HIST_COMPUTE_ODV ),
62 m_histNumInternalBins (UQ_SEQUENCE_HIST_NUM_INTERNAL_BINS_ODV ),
63 m_cdfStaccCompute (UQ_SEQUENCE_CDF_STACC_COMPUTE_ODV ),
64 m_cdfStaccNumEvalPositions(UQ_SEQUENCE_CDF_STACC_NUM_EVAL_POSITIONS_ODV),
66 m_autoCorrComputeViaDef (UQ_SEQUENCE_AUTO_CORR_COMPUTE_VIA_DEF_ODV ),
67 m_autoCorrComputeViaFft (UQ_SEQUENCE_AUTO_CORR_COMPUTE_VIA_FFT_ODV ),
68 m_autoCorrSecondLag (UQ_SEQUENCE_AUTO_CORR_SECOND_LAG_ODV ),
69 m_autoCorrLagSpacing (UQ_SEQUENCE_AUTO_CORR_LAG_SPACING_ODV ),
70 m_autoCorrNumLags (UQ_SEQUENCE_AUTO_CORR_NUM_LAGS_ODV ),
71 m_autoCorrDisplay (UQ_SEQUENCE_AUTO_CORR_DISPLAY_ODV ),
72 m_autoCorrWrite (UQ_SEQUENCE_AUTO_CORR_WRITE_ODV ),
73 m_kdeCompute (UQ_SEQUENCE_KDE_COMPUTE_ODV ),
74 m_kdeNumEvalPositions (UQ_SEQUENCE_KDE_NUM_EVAL_POSITIONS_ODV ),
75 m_covMatrixCompute (UQ_SEQUENCE_COV_MATRIX_COMPUTE_ODV ),
76 m_corrMatrixCompute (UQ_SEQUENCE_CORR_MATRIX_COMPUTE_ODV )
80 SsOptionsValues::~SsOptionsValues()
84 SsOptionsValues::SsOptionsValues(
const SsOptionsValues& src)
90 SsOptionsValues::operator=(
const SsOptionsValues& rhs)
97 SsOptionsValues::copy(
const SsOptionsValues& src)
99 m_initialDiscardedPortions = src.m_initialDiscardedPortions;
100 #ifdef QUESO_COMPUTES_EXTRA_POST_PROCESSING_STATISTICS
101 m_meanMonitorPeriod = src.m_meanMonitorPeriod;
102 m_bmmRun = src.m_bmmRun;
103 m_bmmLengths = src.m_bmmLengths;
104 m_fftCompute = src.m_fftCompute;
105 m_fftParamId = src.m_fftParamId;
106 m_fftSize = src.m_fftSize;
107 m_fftTestInversion = src.m_fftTestInversion;
108 m_fftWrite = src.m_fftWrite;
109 m_psdCompute = src.m_psdCompute;
110 m_psdNumBlocks = src.m_psdNumBlocks;
111 m_psdHopSizeRatio = src.m_psdHopSizeRatio;
112 m_psdParamId = src.m_psdParamId;
113 m_psdWrite = src.m_psdWrite;
114 m_psdAtZeroCompute = src.m_psdAtZeroCompute;
115 m_psdAtZeroNumBlocks = src.m_psdAtZeroNumBlocks;
116 m_psdAtZeroHopSizeRatio = src.m_psdAtZeroHopSizeRatio;
117 m_psdAtZeroDisplay = src.m_psdAtZeroDisplay;
118 m_psdAtZeroWrite = src.m_psdAtZeroWrite;
119 m_gewekeCompute = src.m_gewekeCompute;
120 m_gewekeNaRatio = src.m_gewekeNaRatio;
121 m_gewekeNbRatio = src.m_gewekeNbRatio;
122 m_gewekeDisplay = src.m_gewekeDisplay;
123 m_gewekeWrite = src.m_gewekeWrite;
124 m_meanStaccCompute = src.m_meanStaccCompute;
125 m_histCompute = src.m_histCompute;
126 m_histNumInternalBins = src.m_histNumInternalBins;
127 m_cdfStaccCompute = src.m_cdfStaccCompute;
128 m_cdfStaccNumEvalPositions = src.m_cdfStaccNumEvalPositions;
130 m_autoCorrComputeViaDef = src.m_autoCorrComputeViaDef;
131 m_autoCorrComputeViaFft = src.m_autoCorrComputeViaFft;
132 m_autoCorrSecondLag = src.m_autoCorrSecondLag;
133 m_autoCorrLagSpacing = src.m_autoCorrLagSpacing;
134 m_autoCorrNumLags = src.m_autoCorrNumLags;
135 m_autoCorrDisplay = src.m_autoCorrDisplay;
136 m_autoCorrWrite = src.m_autoCorrWrite;
137 m_kdeCompute = src.m_kdeCompute;
138 m_kdeNumEvalPositions = src.m_kdeNumEvalPositions;
139 m_covMatrixCompute = src.m_covMatrixCompute;
140 m_corrMatrixCompute = src.m_corrMatrixCompute;
145 SequenceStatisticalOptions::SequenceStatisticalOptions(
const BaseEnvironment& env,
const std::string& prefix)
150 m_prefix ((std::string)(prefix) +
"stats_"),
152 m_optionsDesc (new po::options_description(
"Chain statistical options")),
153 m_option_help (m_prefix +
"help" ),
154 m_option_initialDiscardedPortions (m_prefix +
"initialDiscardedPortions" ),
155 #ifdef QUESO_COMPUTES_EXTRA_POST_PROCESSING_STATISTICS
156 m_option_mean_monitorPeriod (m_prefix +
"mean_monitorPeriod" ),
157 m_option_bmm_run (m_prefix +
"bmm_run" ),
158 m_option_bmm_lengths (m_prefix +
"bmm_lengths" ),
159 m_option_bmm_display (m_prefix +
"bmm_display" ),
160 m_option_bmm_write (m_prefix +
"bmm_write" ),
161 m_option_fft_compute (m_prefix +
"fft_compute" ),
162 m_option_fft_paramId (m_prefix +
"fft_paramId" ),
163 m_option_fft_size (m_prefix +
"fft_size" ),
164 m_option_fft_testInversion (m_prefix +
"fft_testInversion" ),
165 m_option_fft_write (m_prefix +
"fft_write" ),
166 m_option_psd_compute (m_prefix +
"psd_compute" ),
167 m_option_psd_numBlocks (m_prefix +
"psd_numBlocks" ),
168 m_option_psd_hopSizeRatio (m_prefix +
"psd_hopSizeRatio" ),
169 m_option_psd_paramId (m_prefix +
"psd_paramId" ),
170 m_option_psd_write (m_prefix +
"psd_write" ),
171 m_option_psdAtZero_compute (m_prefix +
"psdAtZero_compute" ),
172 m_option_psdAtZero_numBlocks (m_prefix +
"psdAtZero_numBlocks" ),
173 m_option_psdAtZero_hopSizeRatio (m_prefix +
"psdAtZero_hopSizeRatio" ),
174 m_option_psdAtZero_display (m_prefix +
"psdAtZero_display" ),
175 m_option_psdAtZero_write (m_prefix +
"psdAtZero_write" ),
176 m_option_geweke_compute (m_prefix +
"geweke_compute" ),
177 m_option_geweke_naRatio (m_prefix +
"geweke_naRatio" ),
178 m_option_geweke_nbRatio (m_prefix +
"geweke_nbRatio" ),
179 m_option_geweke_display (m_prefix +
"geweke_display" ),
180 m_option_geweke_write (m_prefix +
"geweke_write" ),
181 m_option_meanStacc_compute (m_prefix +
"meanStacc_compute" ),
182 m_option_hist_compute (m_prefix +
"hist_compute" ),
183 m_option_hist_numInternalBins (m_prefix +
"hist_numInternalBins" ),
184 m_option_cdfStacc_compute (m_prefix +
"cdfStacc_compute" ),
185 m_option_cdfStacc_numEvalPositions(m_prefix +
"cdfStacc_numEvalPositions"),
187 m_option_autoCorr_computeViaDef (m_prefix +
"autoCorr_computeViaDef" ),
188 m_option_autoCorr_computeViaFft (m_prefix +
"autoCorr_computeViaFft" ),
189 m_option_autoCorr_secondLag (m_prefix +
"autoCorr_secondLag" ),
190 m_option_autoCorr_lagSpacing (m_prefix +
"autoCorr_lagSpacing" ),
191 m_option_autoCorr_numLags (m_prefix +
"autoCorr_numLags" ),
192 m_option_autoCorr_display (m_prefix +
"autoCorr_display" ),
193 m_option_autoCorr_write (m_prefix +
"autoCorr_write" ),
194 m_option_kde_compute (m_prefix +
"kde_compute" ),
195 m_option_kde_numEvalPositions (m_prefix +
"kde_numEvalPositions" ),
196 m_option_covMatrix_compute (m_prefix +
"covMatrix_compute" ),
197 m_option_corrMatrix_compute (m_prefix +
"corrMatrix_compute" )
201 <<
", prefix = " << m_prefix
207 "SequenceStatisticalOptions::constructor(1)",
208 "this constructor is incompatible with the abscense of an options input file");
210 defineMyOptions (*m_optionsDesc);
212 getMyOptionValues (*m_optionsDesc);
216 <<
"', state of SequenceStatisticalOptions object is:"
223 <<
", prefix = " << m_prefix
228 SequenceStatisticalOptions::SequenceStatisticalOptions(
const BaseEnvironment& env,
const std::string& prefix,
231 const SsOptionsValues& alternativeOptionsValues)
233 m_ov (alternativeOptionsValues),
234 m_prefix ((std::string)(prefix) +
"stats_"),
236 m_optionsDesc (NULL),
237 m_option_help (m_prefix +
"help" ),
238 m_option_initialDiscardedPortions (m_prefix +
"initialDiscardedPortions" ),
239 #ifdef QUESO_COMPUTES_EXTRA_POST_PROCESSING_STATISTICS
240 m_option_mean_monitorPeriod (m_prefix +
"mean_monitorPeriod" ),
241 m_option_bmm_run (m_prefix +
"bmm_run" ),
242 m_option_bmm_lengths (m_prefix +
"bmm_lengths" ),
243 m_option_bmm_display (m_prefix +
"bmm_display" ),
244 m_option_bmm_write (m_prefix +
"bmm_write" ),
245 m_option_fft_compute (m_prefix +
"fft_compute" ),
246 m_option_fft_paramId (m_prefix +
"fft_paramId" ),
247 m_option_fft_size (m_prefix +
"fft_size" ),
248 m_option_fft_testInversion (m_prefix +
"fft_testInversion" ),
249 m_option_fft_write (m_prefix +
"fft_write" ),
250 m_option_psd_compute (m_prefix +
"psd_compute" ),
251 m_option_psd_numBlocks (m_prefix +
"psd_numBlocks" ),
252 m_option_psd_hopSizeRatio (m_prefix +
"psd_hopSizeRatio" ),
253 m_option_psd_paramId (m_prefix +
"psd_paramId" ),
254 m_option_psd_write (m_prefix +
"psd_write" ),
255 m_option_psdAtZero_compute (m_prefix +
"psdAtZero_compute" ),
256 m_option_psdAtZero_numBlocks (m_prefix +
"psdAtZero_numBlocks" ),
257 m_option_psdAtZero_hopSizeRatio (m_prefix +
"psdAtZero_hopSizeRatio" ),
258 m_option_psdAtZero_display (m_prefix +
"psdAtZero_display" ),
259 m_option_psdAtZero_write (m_prefix +
"psdAtZero_write" ),
260 m_option_geweke_compute (m_prefix +
"geweke_compute" ),
261 m_option_geweke_naRatio (m_prefix +
"geweke_naRatio" ),
262 m_option_geweke_nbRatio (m_prefix +
"geweke_nbRatio" ),
263 m_option_geweke_display (m_prefix +
"geweke_display" ),
264 m_option_geweke_write (m_prefix +
"geweke_write" ),
265 m_option_meanStacc_compute (m_prefix +
"meanStacc_compute" ),
266 m_option_hist_compute (m_prefix +
"hist_compute" ),
267 m_option_hist_numInternalBins (m_prefix +
"hist_numInternalBins" ),
268 m_option_cdfStacc_compute (m_prefix +
"cdfStacc_compute" ),
269 m_option_cdfStacc_numEvalPositions(m_prefix +
"cdfStacc_numEvalPositions"),
271 m_option_autoCorr_computeViaDef (m_prefix +
"autoCorr_computeViaDef" ),
272 m_option_autoCorr_computeViaFft (m_prefix +
"autoCorr_computeViaFft" ),
273 m_option_autoCorr_secondLag (m_prefix +
"autoCorr_secondLag" ),
274 m_option_autoCorr_lagSpacing (m_prefix +
"autoCorr_lagSpacing" ),
275 m_option_autoCorr_numLags (m_prefix +
"autoCorr_numLags" ),
276 m_option_autoCorr_display (m_prefix +
"autoCorr_display" ),
277 m_option_autoCorr_write (m_prefix +
"autoCorr_write" ),
278 m_option_kde_compute (m_prefix +
"kde_compute" ),
279 m_option_kde_numEvalPositions (m_prefix +
"kde_numEvalPositions" ),
280 m_option_covMatrix_compute (m_prefix +
"covMatrix_compute" ),
281 m_option_corrMatrix_compute (m_prefix +
"corrMatrix_compute" )
285 <<
", prefix = " << m_prefix
291 "SequenceStatisticalOptions::constructor(2)",
292 "this constructor is incompatible with the existence of an options input file");
296 <<
"', state of SequenceStatisticalOptions object is:"
303 <<
", prefix = " << m_prefix
308 SequenceStatisticalOptions::~SequenceStatisticalOptions()
310 if (m_optionsDesc)
delete m_optionsDesc;
314 SequenceStatisticalOptions::defineMyOptions(
315 po::options_description& optionsDesc)
const
317 optionsDesc.add_options()
318 (m_option_help.c_str(),
"produce help message for chain statistical options" )
319 (m_option_initialDiscardedPortions.c_str(), po::value<std::string >()->default_value(UQ_SEQUENCE_INITIAL_DISCARDED_PORTIONS_ODV ),
"list of initial discarded portions for chain statistics" )
320 #ifdef QUESO_COMPUTES_EXTRA_POST_PROCESSING_STATISTICS
321 (m_option_mean_monitorPeriod.c_str(), po::value<unsigned int>()->default_value(UQ_SEQUENCE_MEAN_MONITOR_PERIOD_ODV ),
"period for monitoring mean" )
322 (m_option_bmm_run.c_str(), po::value<bool >()->default_value(UQ_SEQUENCE_BMM_RUN_ODV ),
"compute variance of sample mean with batch means method" )
323 (m_option_bmm_lengths.c_str(), po::value<std::string >()->default_value(UQ_SEQUENCE_BMM_LENGTHS_ODV ),
"list of batch lenghts for BMM" )
324 (m_option_fft_compute.c_str(), po::value<bool >()->default_value(UQ_SEQUENCE_FFT_COMPUTE_ODV ),
"compute fft" )
325 (m_option_fft_paramId.c_str(), po::value<unsigned int>()->default_value(UQ_SEQUENCE_FFT_PARAM_ID_ODV ),
"parameter id for fft computations" )
326 (m_option_fft_size.c_str(), po::value<unsigned int>()->default_value(UQ_SEQUENCE_FFT_SIZE_ODV ),
"fft size" )
327 (m_option_fft_testInversion.c_str(), po::value<bool >()->default_value(UQ_SEQUENCE_FFT_TEST_INVERSION_ODV ),
"test fft inversion" )
328 (m_option_fft_write.c_str(), po::value<bool >()->default_value(UQ_SEQUENCE_FFT_WRITE_ODV ),
"write fft" )
329 (m_option_psd_compute.c_str(), po::value<bool >()->default_value(UQ_SEQUENCE_PSD_COMPUTE_ODV ),
"compute psd" )
330 (m_option_psd_numBlocks.c_str(), po::value<unsigned int>()->default_value(UQ_SEQUENCE_PSD_NUM_BLOCKS_ODV ),
"number of blocks for computation of psd" )
331 (m_option_psd_hopSizeRatio.c_str(), po::value<double >()->default_value(UQ_SEQUENCE_PSD_HOP_SIZE_RATIO_ODV ),
"hop size ratio for psd" )
332 (m_option_psd_paramId.c_str(), po::value<unsigned int>()->default_value(UQ_SEQUENCE_PSD_PARAM_ID_ODV ),
"parameter id for psd computations" )
333 (m_option_psd_write.c_str(), po::value<bool >()->default_value(UQ_SEQUENCE_PSD_WRITE_ODV ),
"write psd" )
334 (m_option_psdAtZero_compute.c_str(), po::value<bool >()->default_value(UQ_SEQUENCE_PSD_AT_ZERO_COMPUTE_ODV ),
"compute power spectral densities" )
335 (m_option_psdAtZero_numBlocks.c_str(), po::value<std::string >()->default_value(UQ_SEQUENCE_PSD_AT_ZERO_NUM_BLOCKS_ODV ),
"list of numbers of blocks for computation of psd at zero" )
336 (m_option_psdAtZero_hopSizeRatio.c_str(), po::value<double >()->default_value(UQ_SEQUENCE_PSD_AT_ZERO_HOP_SIZE_RATIO_ODV ),
"hop size ratio for psd at zero" )
337 (m_option_psdAtZero_display.c_str(), po::value<bool >()->default_value(UQ_SEQUENCE_PSD_AT_ZERO_DISPLAY_ODV ),
"display computed psd at frequency zero on screen" )
338 (m_option_psdAtZero_write.c_str(), po::value<bool >()->default_value(UQ_SEQUENCE_PSD_AT_ZERO_WRITE_ODV ),
"write computed psd at frequency zero to the output file" )
339 (m_option_geweke_compute.c_str(), po::value<bool >()->default_value(UQ_SEQUENCE_GEWEKE_COMPUTE_ODV ),
"compute Geweke coefficients" )
340 (m_option_geweke_naRatio.c_str(), po::value<double >()->default_value(UQ_SEQUENCE_GEWEKE_NA_RATIO_ODV ),
"ratio NA for Geweke" )
341 (m_option_geweke_nbRatio.c_str(), po::value<double >()->default_value(UQ_SEQUENCE_GEWEKE_NB_RATIO_ODV ),
"ratio NB for Geweke" )
342 (m_option_geweke_display.c_str(), po::value<bool >()->default_value(UQ_SEQUENCE_GEWEKE_DISPLAY_ODV ),
"display computed Geweke on screen" )
343 (m_option_geweke_write.c_str(), po::value<bool >()->default_value(UQ_SEQUENCE_GEWEKE_WRITE_ODV ),
"write computed Geweke to the output file" )
344 (m_option_meanStacc_compute.c_str(), po::value<bool >()->default_value(UQ_SEQUENCE_MEAN_STACC_COMPUTE_ODV ),
"compute statistical accuracy of mean" )
345 (m_option_hist_compute.c_str(), po::value<bool >()->default_value(UQ_SEQUENCE_HIST_COMPUTE_ODV ),
"compute histograms" )
346 (m_option_hist_numInternalBins.c_str(), po::value<unsigned int>()->default_value(UQ_SEQUENCE_HIST_NUM_INTERNAL_BINS_ODV ),
"number of internal bins" )
347 (m_option_cdfStacc_compute.c_str(), po::value<bool >()->default_value(UQ_SEQUENCE_CDF_STACC_COMPUTE_ODV ),
"compute statisical accuracy of cdf" )
348 (m_option_cdfStacc_numEvalPositions.c_str(), po::value<unsigned int>()->default_value(UQ_SEQUENCE_CDF_STACC_NUM_EVAL_POSITIONS_ODV ),
"number of evaluations points for statistical accuracy of cdf" )
350 (m_option_autoCorr_computeViaDef.c_str(), po::value<bool >()->default_value(UQ_SEQUENCE_AUTO_CORR_COMPUTE_VIA_DEF_ODV ),
"compute correlations via definition" )
351 (m_option_autoCorr_computeViaFft.c_str(), po::value<bool >()->default_value(UQ_SEQUENCE_AUTO_CORR_COMPUTE_VIA_FFT_ODV ),
"compute correlations via fft" )
352 (m_option_autoCorr_secondLag.c_str(), po::value<unsigned int>()->default_value(UQ_SEQUENCE_AUTO_CORR_SECOND_LAG_ODV ),
"second lag for computation of autocorrelations" )
353 (m_option_autoCorr_lagSpacing.c_str(), po::value<unsigned int>()->default_value(UQ_SEQUENCE_AUTO_CORR_LAG_SPACING_ODV ),
"lag spacing for computation of autocorrelations" )
354 (m_option_autoCorr_numLags.c_str(), po::value<unsigned int>()->default_value(UQ_SEQUENCE_AUTO_CORR_NUM_LAGS_ODV ),
"number of lags for computation of autocorrelations" )
355 (m_option_autoCorr_display.c_str(), po::value<bool >()->default_value(UQ_SEQUENCE_AUTO_CORR_DISPLAY_ODV ),
"display computed autocorrelations on the screen" )
356 (m_option_autoCorr_write.c_str(), po::value<bool >()->default_value(UQ_SEQUENCE_AUTO_CORR_WRITE_ODV ),
"write computed autocorrelations to the output file" )
357 (m_option_kde_compute.c_str(), po::value<bool >()->default_value(UQ_SEQUENCE_KDE_COMPUTE_ODV ),
"compute kernel density estimators" )
358 (m_option_kde_numEvalPositions.c_str(), po::value<unsigned int>()->default_value(UQ_SEQUENCE_KDE_NUM_EVAL_POSITIONS_ODV ),
"number of evaluation positions" )
359 (m_option_covMatrix_compute.c_str(), po::value<bool >()->default_value(UQ_SEQUENCE_COV_MATRIX_COMPUTE_ODV ),
"compute covariance matrix" )
360 (m_option_corrMatrix_compute.c_str(), po::value<bool >()->default_value(UQ_SEQUENCE_CORR_MATRIX_COMPUTE_ODV ),
"compute correlation matrix" )
367 SequenceStatisticalOptions::getMyOptionValues(
368 po::options_description& optionsDesc)
370 if (m_env.allOptionsMap().count(m_option_help)) {
371 if (m_env.subDisplayFile()) {
372 *m_env.subDisplayFile() << optionsDesc
377 if (m_env.allOptionsMap().count(m_option_initialDiscardedPortions)) {
378 m_ov.m_initialDiscardedPortions.clear();
379 std::vector<double> tmpPortions(0,0.);
380 std::string inputString = m_env.allOptionsMap()[m_option_initialDiscardedPortions].as<std::string>();
390 if (tmpPortions.size() > 0) {
391 m_ov.m_initialDiscardedPortions.resize(tmpPortions.size(),0.);
392 for (
unsigned int i = 0; i < m_ov.m_initialDiscardedPortions.size(); ++i) {
393 m_ov.m_initialDiscardedPortions[i] = tmpPortions[i];
398 #ifdef QUESO_COMPUTES_EXTRA_POST_PROCESSING_STATISTICS
399 if (m_env.allOptionsMap().count(m_option_mean_monitorPeriod)) {
400 m_ov.m_meanMonitorPeriod = m_env.allOptionsMap()[m_option_mean_monitorPeriod].as<
unsigned int>();
403 if (m_env.allOptionsMap().count(m_option_bmm_run)) {
404 m_ov.m_bmmRun = m_env.allOptionsMap()[m_option_bmm_run].as<
bool>();
407 if (m_env.allOptionsMap().count(m_option_bmm_lengths)) {
408 m_ov.m_bmmLengths.clear();
409 std::vector<double> tmpLengths(0,0.);
410 std::string inputString = m_env.allOptionsMap()[m_option_bmm_lengths].as<std::string>();
420 if (tmpLengths.size() > 0) {
421 m_ov.m_bmmLengths.resize(tmpLengths.size(),0);
422 for (
unsigned int i = 0; i < m_ov.m_bmmLengths.size(); ++i) {
423 m_ov.m_bmmLengths[i] = (
unsigned int) tmpLengths[i];
428 if (m_env.allOptionsMap().count(m_option_fft_compute)) {
429 m_ov.m_fftCompute = m_env.allOptionsMap()[m_option_fft_compute].as<
bool>();
432 if (m_env.allOptionsMap().count(m_option_fft_paramId)) {
433 m_ov.m_fftParamId = m_env.allOptionsMap()[m_option_fft_paramId].as<
unsigned int>();
436 if (m_env.allOptionsMap().count(m_option_fft_size)) {
437 m_ov.m_fftSize = m_env.allOptionsMap()[m_option_fft_size].as<
unsigned int>();
440 if (m_env.allOptionsMap().count(m_option_fft_testInversion)) {
441 m_ov.m_fftTestInversion = m_env.allOptionsMap()[m_option_fft_testInversion].as<
bool>();
444 if (m_env.allOptionsMap().count(m_option_fft_write)) {
445 m_ov.m_fftWrite = m_env.allOptionsMap()[m_option_fft_write].as<
bool>();
448 if (m_env.allOptionsMap().count(m_option_psd_compute)) {
449 m_ov.m_psdCompute = m_env.allOptionsMap()[m_option_psd_compute].as<
bool>();
452 if (m_env.allOptionsMap().count(m_option_psd_numBlocks)) {
453 m_ov.m_psdNumBlocks = m_env.allOptionsMap()[m_option_psd_numBlocks].as<
unsigned int>();
456 if (m_env.allOptionsMap().count(m_option_psd_hopSizeRatio)) {
457 m_ov.m_psdHopSizeRatio = m_env.allOptionsMap()[m_option_psd_hopSizeRatio].as<
double>();
460 if (m_env.allOptionsMap().count(m_option_psd_paramId)) {
461 m_ov.m_psdParamId = m_env.allOptionsMap()[m_option_psd_paramId].as<
unsigned int>();
464 if (m_env.allOptionsMap().count(m_option_psd_write)) {
465 m_ov.m_psdWrite = m_env.allOptionsMap()[m_option_psd_write].as<
bool>();
468 if (m_env.allOptionsMap().count(m_option_psdAtZero_compute)) {
469 m_ov.m_psdAtZeroCompute = m_env.allOptionsMap()[m_option_psdAtZero_compute].as<
bool>();
472 if (m_env.allOptionsMap().count(m_option_psdAtZero_numBlocks)) {
473 m_ov.m_psdAtZeroNumBlocks.clear();
474 std::vector<double> tmpNumBlocks(0,0.);
475 std::string inputString = m_env.allOptionsMap()[m_option_psdAtZero_numBlocks].as<std::string>();
485 if (tmpNumBlocks.size() > 0) {
486 m_ov.m_psdAtZeroNumBlocks.resize(tmpNumBlocks.size(),0);
487 for (
unsigned int i = 0; i < m_ov.m_psdAtZeroNumBlocks.size(); ++i) {
488 m_ov.m_psdAtZeroNumBlocks[i] = (
unsigned int) tmpNumBlocks[i];
493 if (m_env.allOptionsMap().count(m_option_psdAtZero_hopSizeRatio)) {
494 m_ov.m_psdAtZeroHopSizeRatio = m_env.allOptionsMap()[m_option_psdAtZero_hopSizeRatio].as<
double>();
497 if (m_env.allOptionsMap().count(m_option_psdAtZero_display)) {
498 m_ov.m_psdAtZeroDisplay = m_env.allOptionsMap()[m_option_psdAtZero_display].as<
bool>();
501 if (m_env.allOptionsMap().count(m_option_psdAtZero_write)) {
502 m_ov.m_psdAtZeroWrite = m_env.allOptionsMap()[m_option_psdAtZero_write].as<
bool>();
505 if (m_env.allOptionsMap().count(m_option_geweke_compute)) {
506 m_ov.m_gewekeCompute = m_env.allOptionsMap()[m_option_geweke_compute].as<
bool>();
509 if (m_env.allOptionsMap().count(m_option_geweke_naRatio)) {
510 m_ov.m_gewekeNaRatio = m_env.allOptionsMap()[m_option_geweke_naRatio].as<
double>();
513 if (m_env.allOptionsMap().count(m_option_geweke_nbRatio)) {
514 m_ov.m_gewekeNbRatio = m_env.allOptionsMap()[m_option_geweke_nbRatio].as<
double>();
517 if (m_env.allOptionsMap().count(m_option_geweke_display)) {
518 m_ov.m_gewekeDisplay = m_env.allOptionsMap()[m_option_geweke_display].as<
bool>();
521 if (m_env.allOptionsMap().count(m_option_geweke_write)) {
522 m_ov.m_gewekeWrite = m_env.allOptionsMap()[m_option_geweke_write].as<
bool>();
525 if (m_env.allOptionsMap().count(m_option_meanStacc_compute)) {
526 m_ov.m_meanStaccCompute = m_env.allOptionsMap()[m_option_meanStacc_compute].as<
bool>();
529 if (m_env.allOptionsMap().count(m_option_hist_compute)) {
530 m_ov.m_histCompute = m_env.allOptionsMap()[m_option_hist_compute].as<
bool>();
533 if (m_env.allOptionsMap().count(m_option_hist_numInternalBins)) {
534 m_ov.m_histNumInternalBins = m_env.allOptionsMap()[m_option_hist_numInternalBins].as<
unsigned int>();
537 if (m_env.allOptionsMap().count(m_option_cdfStacc_compute)) {
538 m_ov.m_cdfStaccCompute = m_env.allOptionsMap()[m_option_cdfStacc_compute].as<
bool>();
541 if (m_env.allOptionsMap().count(m_option_cdfStacc_numEvalPositions)) {
542 m_ov.m_cdfStaccNumEvalPositions = m_env.allOptionsMap()[m_option_cdfStacc_numEvalPositions].as<
unsigned int>();
545 if (m_env.allOptionsMap().count(m_option_autoCorr_computeViaDef)) {
546 m_ov.m_autoCorrComputeViaDef = m_env.allOptionsMap()[m_option_autoCorr_computeViaDef].as<
bool>();
549 if (m_env.allOptionsMap().count(m_option_autoCorr_computeViaFft)) {
550 m_ov.m_autoCorrComputeViaFft = m_env.allOptionsMap()[m_option_autoCorr_computeViaFft].as<
bool>();
553 if (m_env.allOptionsMap().count(m_option_autoCorr_secondLag)) {
554 m_ov.m_autoCorrSecondLag = m_env.allOptionsMap()[m_option_autoCorr_secondLag].as<
unsigned int>();
557 if (m_env.allOptionsMap().count(m_option_autoCorr_lagSpacing)) {
558 m_ov.m_autoCorrLagSpacing = m_env.allOptionsMap()[m_option_autoCorr_lagSpacing].as<
unsigned int>();
561 if (m_env.allOptionsMap().count(m_option_autoCorr_numLags)) {
562 m_ov.m_autoCorrNumLags = m_env.allOptionsMap()[m_option_autoCorr_numLags].as<
unsigned int>();
565 if (m_env.allOptionsMap().count(m_option_autoCorr_display)) {
566 m_ov.m_autoCorrDisplay = m_env.allOptionsMap()[m_option_autoCorr_display].as<
bool>();
569 if (m_env.allOptionsMap().count(m_option_autoCorr_write)) {
570 m_ov.m_autoCorrWrite = m_env.allOptionsMap()[m_option_autoCorr_write].as<
bool>();
573 if (m_env.allOptionsMap().count(m_option_kde_compute)) {
574 m_ov.m_kdeCompute = m_env.allOptionsMap()[m_option_kde_compute].as<
bool>();
577 if (m_env.allOptionsMap().count(m_option_kde_numEvalPositions)) {
578 m_ov.m_kdeNumEvalPositions = m_env.allOptionsMap()[m_option_kde_numEvalPositions].as<
unsigned int>();
581 if (m_env.allOptionsMap().count(m_option_covMatrix_compute)) {
582 m_ov.m_covMatrixCompute = m_env.allOptionsMap()[m_option_covMatrix_compute].as<
bool>();
585 if (m_env.allOptionsMap().count(m_option_corrMatrix_compute)) {
586 m_ov.m_corrMatrixCompute = m_env.allOptionsMap()[m_option_corrMatrix_compute].as<
bool>();
592 const std::vector<double>&
593 SequenceStatisticalOptions::initialDiscardedPortions()
const
595 return m_ov.m_initialDiscardedPortions;
598 #ifdef QUESO_COMPUTES_EXTRA_POST_PROCESSING_STATISTICS
600 SequenceStatisticalOptions::meanMonitorPeriod()
const
602 return m_ov.m_meanMonitorPeriod;
606 SequenceStatisticalOptions::bmmRun()
const
608 return m_ov.m_bmmRun;
611 const std::vector<unsigned int>&
612 SequenceStatisticalOptions::bmmLengths()
const
614 return m_ov.m_bmmLengths;
618 SequenceStatisticalOptions::bmmDisplay()
const
620 return m_ov.m_bmmDisplay;
624 SequenceStatisticalOptions::bmmWrite()
const
626 return m_ov.m_bmmWrite;
630 SequenceStatisticalOptions::fftCompute()
const
632 return m_ov.m_fftCompute;
636 SequenceStatisticalOptions::fftParamId()
const
638 return m_ov.m_fftParamId;
642 SequenceStatisticalOptions::fftSize()
const
644 return m_ov.m_fftSize;
648 SequenceStatisticalOptions::fftTestInversion()
const
650 return m_ov.m_fftTestInversion;
654 SequenceStatisticalOptions::fftWrite()
const
656 return m_ov.m_fftWrite;
660 SequenceStatisticalOptions::psdCompute()
const
662 return m_ov.m_psdCompute;
666 SequenceStatisticalOptions::psdNumBlocks()
const
668 return m_ov.m_psdNumBlocks;
672 SequenceStatisticalOptions::psdHopSizeRatio()
const
674 return m_ov.m_psdHopSizeRatio;
678 SequenceStatisticalOptions::psdParamId()
const
680 return m_ov.m_psdParamId;
684 SequenceStatisticalOptions::psdWrite()
const
686 return m_ov.m_psdWrite;
690 SequenceStatisticalOptions::psdAtZeroCompute()
const
692 return m_ov.m_psdAtZeroCompute;
695 const std::vector<unsigned int>&
696 SequenceStatisticalOptions::psdAtZeroNumBlocks()
const
698 return m_ov.m_psdAtZeroNumBlocks;
702 SequenceStatisticalOptions::psdAtZeroHopSizeRatio()
const
704 return m_ov.m_psdAtZeroHopSizeRatio;
708 SequenceStatisticalOptions::psdAtZeroDisplay()
const
710 return m_ov.m_psdAtZeroDisplay;
714 SequenceStatisticalOptions::psdAtZeroWrite()
const
716 return m_ov.m_psdAtZeroWrite;
720 SequenceStatisticalOptions::gewekeCompute()
const
722 return m_ov.m_gewekeCompute;
726 SequenceStatisticalOptions::gewekeNaRatio()
const
728 return m_ov.m_gewekeNaRatio;
732 SequenceStatisticalOptions::gewekeNbRatio()
const
734 return m_ov.m_gewekeNbRatio;
738 SequenceStatisticalOptions::gewekeDisplay()
const
740 return m_ov.m_gewekeDisplay;
744 SequenceStatisticalOptions::gewekeWrite()
const
746 return m_ov.m_gewekeWrite;
750 SequenceStatisticalOptions::meanStaccCompute()
const
752 return m_ov.m_meanStaccCompute;
756 SequenceStatisticalOptions::histCompute()
const
758 return m_ov.m_histCompute;
762 SequenceStatisticalOptions::histNumInternalBins()
const
764 return m_ov.m_histNumInternalBins;
768 SequenceStatisticalOptions::cdfStaccCompute()
const
770 return m_ov.m_cdfStaccCompute;
774 SequenceStatisticalOptions::cdfStaccNumEvalPositions()
const
776 return m_ov.m_cdfStaccNumEvalPositions;
780 SequenceStatisticalOptions::autoCorrComputeViaDef()
const
782 return m_ov.m_autoCorrComputeViaDef;
786 SequenceStatisticalOptions::autoCorrComputeViaFft()
const
788 return m_ov.m_autoCorrComputeViaFft;
792 SequenceStatisticalOptions::autoCorrSecondLag()
const
794 return m_ov.m_autoCorrSecondLag;
798 SequenceStatisticalOptions::autoCorrLagSpacing()
const
800 return m_ov.m_autoCorrLagSpacing;
804 SequenceStatisticalOptions::autoCorrNumLags()
const
806 return m_ov.m_autoCorrNumLags;
810 SequenceStatisticalOptions::autoCorrDisplay()
const
812 return m_ov.m_autoCorrDisplay;
816 SequenceStatisticalOptions::autoCorrWrite()
const
818 return m_ov.m_autoCorrWrite;
822 SequenceStatisticalOptions::kdeCompute()
const
824 return m_ov.m_kdeCompute;
828 SequenceStatisticalOptions::kdeNumEvalPositions()
const
830 return m_ov.m_kdeNumEvalPositions;
834 SequenceStatisticalOptions::covMatrixCompute()
const
836 return m_ov.m_covMatrixCompute;
840 SequenceStatisticalOptions::corrMatrixCompute()
const
842 return m_ov.m_corrMatrixCompute;
846 SequenceStatisticalOptions::print(std::ostream& os)
const
848 os <<
"\n" << m_option_initialDiscardedPortions <<
" = ";
849 for (
unsigned int i = 0; i < m_ov.m_initialDiscardedPortions.size(); ++i) {
850 os << m_ov.m_initialDiscardedPortions[i] <<
" ";
853 #ifdef QUESO_COMPUTES_EXTRA_POST_PROCESSING_STATISTICS
854 <<
"\n" << m_option_mean_monitorPeriod <<
" = " << m_ov.m_meanMonitorPeriod
855 <<
"\n" << m_option_bmm_run <<
" = " << m_ov.m_bmmRun
856 <<
"\n" << m_option_bmm_lengths <<
" = ";
857 for (
unsigned int i = 0; i < m_ov.m_bmmLengths.size(); ++i) {
858 os << m_ov.m_bmmLengths[i] <<
" ";
860 os <<
"\n" << m_option_fft_compute <<
" = " << m_ov.m_fftCompute
861 <<
"\n" << m_option_fft_paramId <<
" = " << m_ov.m_fftParamId
862 <<
"\n" << m_option_fft_size <<
" = " << m_ov.m_fftSize
863 <<
"\n" << m_option_fft_testInversion <<
" = " << m_ov.m_fftTestInversion
864 <<
"\n" << m_option_fft_write <<
" = " << m_ov.m_fftWrite
865 <<
"\n" << m_option_psd_compute <<
" = " << m_ov.m_psdCompute
866 <<
"\n" << m_option_psd_paramId <<
" = " << m_ov.m_psdParamId
867 <<
"\n" << m_option_psd_numBlocks <<
" = " << m_ov.m_psdNumBlocks
868 <<
"\n" << m_option_psd_hopSizeRatio <<
" = " << m_ov.m_psdHopSizeRatio
869 <<
"\n" << m_option_psd_write <<
" = " << m_ov.m_psdWrite
870 <<
"\n" << m_option_psdAtZero_compute <<
" = " << m_ov.m_psdAtZeroCompute
871 <<
"\n" << m_option_psdAtZero_numBlocks <<
" = ";
872 for (
unsigned int i = 0; i < m_ov.m_psdAtZeroNumBlocks.size(); ++i) {
873 os << m_ov.m_psdAtZeroNumBlocks[i] <<
" ";
875 os <<
"\n" << m_option_psdAtZero_hopSizeRatio <<
" = " << m_ov.m_psdAtZeroHopSizeRatio
876 <<
"\n" << m_option_psdAtZero_display <<
" = " << m_ov.m_psdAtZeroDisplay
877 <<
"\n" << m_option_psdAtZero_write <<
" = " << m_ov.m_psdAtZeroWrite
878 <<
"\n" << m_option_geweke_compute <<
" = " << m_ov.m_gewekeCompute
879 <<
"\n" << m_option_geweke_naRatio <<
" = " << m_ov.m_gewekeNaRatio
880 <<
"\n" << m_option_geweke_nbRatio <<
" = " << m_ov.m_gewekeNbRatio
881 <<
"\n" << m_option_geweke_display <<
" = " << m_ov.m_gewekeDisplay
882 <<
"\n" << m_option_geweke_write <<
" = " << m_ov.m_gewekeWrite
883 <<
"\n" << m_option_meanStacc_compute <<
" = " << m_ov.m_meanStaccCompute
884 <<
"\n" << m_option_hist_compute <<
" = " << m_ov.m_histCompute
885 <<
"\n" << m_option_hist_numInternalBins <<
" = " << m_ov.m_histNumInternalBins
886 <<
"\n" << m_option_cdfStacc_compute <<
" = " << m_ov.m_cdfStaccCompute
887 <<
"\n" << m_option_cdfStacc_numEvalPositions <<
" = " << m_ov.m_cdfStaccNumEvalPositions
889 <<
"\n" << m_option_autoCorr_computeViaDef <<
" = " << m_ov.m_autoCorrComputeViaDef
890 <<
"\n" << m_option_autoCorr_computeViaFft <<
" = " << m_ov.m_autoCorrComputeViaFft
891 <<
"\n" << m_option_autoCorr_secondLag <<
" = " << m_ov.m_autoCorrSecondLag
892 <<
"\n" << m_option_autoCorr_lagSpacing <<
" = " << m_ov.m_autoCorrLagSpacing
893 <<
"\n" << m_option_autoCorr_numLags <<
" = " << m_ov.m_autoCorrNumLags
894 <<
"\n" << m_option_autoCorr_display <<
" = " << m_ov.m_autoCorrDisplay
895 <<
"\n" << m_option_autoCorr_write <<
" = " << m_ov.m_autoCorrWrite
896 <<
"\n" << m_option_kde_compute <<
" = " << m_ov.m_kdeCompute
897 <<
"\n" << m_option_kde_numEvalPositions <<
" = " << m_ov.m_kdeNumEvalPositions
898 <<
"\n" << m_option_covMatrix_compute <<
" = " << m_ov.m_covMatrixCompute
899 <<
"\n" << m_option_corrMatrix_compute <<
" = " << m_ov.m_corrMatrixCompute
906 operator<<(std::ostream& os,
const SequenceStatisticalOptions& obj)
915 #endif // ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
int worldRank() const
Returns the process world rank.
std::ofstream * subDisplayFile() const
Access function for m_subDisplayFile (displays file on stream).
std::ostream & operator<<(std::ostream &os, const BaseEnvironment &obj)
const BaseEnvironment & m_env
void MiscReadDoublesFromString(const std::string &inputString, std::vector< double > &outputDoubles)
std::string optionsInputFileName() const
Access to the attribute m_optionsInputFileName, which stores the name of the input file passed by the...
#define UQ_FATAL_TEST_MACRO(test, givenRank, where, what)
void scanInputFileForMyOptions(const po::options_description &optionsDesc) const
This method scans the input file provided by the user to QUESO.