25 #ifndef DISABLE_BOOST_PROGRAM_OPTIONS
26 #include <boost/program_options.hpp>
27 #endif // DISABLE_BOOST_PROGRAM_OPTIONS
29 #include <queso/MonteCarloSGOptions.h>
30 #include <queso/Miscellaneous.h>
40 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
41 const SsOptionsValues* alternativePSsOptionsValues,
42 const SsOptionsValues* alternativeQSsOptionsValues
54 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
66 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
68 m_alternativePSsOptionsValues(),
69 m_alternativeQSsOptionsValues(),
71 #ifndef DISABLE_BOOST_PROGRAM_OPTIONS
74 m_option_help (m_prefix +
"help" ),
75 m_option_dataOutputFileName (m_prefix +
"dataOutputFileName" ),
76 m_option_dataOutputAllowedSet (m_prefix +
"dataOutputAllowedSet" ),
77 m_option_pseq_dataOutputPeriod (m_prefix +
"pseq_dataOutputPeriod" ),
78 m_option_pseq_dataOutputFileName (m_prefix +
"pseq_dataOutputFileName" ),
79 m_option_pseq_dataOutputFileType (m_prefix +
"pseq_dataOutputFileType" ),
80 m_option_pseq_dataOutputAllowedSet(m_prefix +
"pseq_dataOutputAllowedSet" ),
81 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
82 m_option_pseq_computeStats (m_prefix +
"pseq_computeStats" ),
84 m_option_qseq_dataInputFileName (m_prefix +
"qseq_dataInputFileName" ),
85 m_option_qseq_dataInputFileType (m_prefix +
"qseq_dataInputFileType" ),
86 m_option_qseq_size (m_prefix +
"qseq_size" ),
87 m_option_qseq_displayPeriod (m_prefix +
"qseq_displayPeriod" ),
88 m_option_qseq_measureRunTimes (m_prefix +
"qseq_measureRunTimes" ),
89 m_option_qseq_dataOutputPeriod (m_prefix +
"qseq_dataOutputPeriod" ),
90 m_option_qseq_dataOutputFileName (m_prefix +
"qseq_dataOutputFileName" ),
91 m_option_qseq_dataOutputFileType (m_prefix +
"qseq_dataOutputFileType" ),
92 m_option_qseq_dataOutputAllowedSet(m_prefix +
"qseq_dataOutputAllowedSet" )
93 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
95 m_option_qseq_computeStats (m_prefix +
"qseq_computeStats" )
98 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
99 if (alternativePSsOptionsValues) m_alternativePSsOptionsValues = *alternativePSsOptionsValues;
100 if (alternativeQSsOptionsValues) m_alternativeQSsOptionsValues = *alternativeQSsOptionsValues;
105 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
106 const SsOptionsValues* alternativePSsOptionsValues,
107 const SsOptionsValues* alternativeQSsOptionsValues,
112 m_prefix ((std::string)(prefix) +
"mc_"),
120 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
132 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
134 m_alternativePSsOptionsValues(),
135 m_alternativeQSsOptionsValues(),
137 #ifndef DISABLE_BOOST_PROGRAM_OPTIONS
140 m_option_help (m_prefix +
"help" ),
141 m_option_dataOutputFileName (m_prefix +
"dataOutputFileName" ),
142 m_option_dataOutputAllowedSet (m_prefix +
"dataOutputAllowedSet" ),
143 m_option_pseq_dataOutputPeriod (m_prefix +
"pseq_dataOutputPeriod" ),
144 m_option_pseq_dataOutputFileName (m_prefix +
"pseq_dataOutputFileName" ),
145 m_option_pseq_dataOutputFileType (m_prefix +
"pseq_dataOutputFileType" ),
146 m_option_pseq_dataOutputAllowedSet(m_prefix +
"pseq_dataOutputAllowedSet" ),
147 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
148 m_option_pseq_computeStats (m_prefix +
"pseq_computeStats" ),
150 m_option_qseq_dataInputFileName (m_prefix +
"qseq_dataInputFileName" ),
151 m_option_qseq_dataInputFileType (m_prefix +
"qseq_dataInputFileType" ),
152 m_option_qseq_size (m_prefix +
"qseq_size" ),
153 m_option_qseq_displayPeriod (m_prefix +
"qseq_displayPeriod" ),
154 m_option_qseq_measureRunTimes (m_prefix +
"qseq_measureRunTimes" ),
155 m_option_qseq_dataOutputPeriod (m_prefix +
"qseq_dataOutputPeriod" ),
156 m_option_qseq_dataOutputFileName (m_prefix +
"qseq_dataOutputFileName" ),
157 m_option_qseq_dataOutputFileType (m_prefix +
"qseq_dataOutputFileType" ),
158 m_option_qseq_dataOutputAllowedSet(m_prefix +
"qseq_dataOutputAllowedSet" )
159 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
161 m_option_qseq_computeStats (m_prefix +
"qseq_computeStats" )
164 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
165 if (alternativePSsOptionsValues) m_alternativePSsOptionsValues = *alternativePSsOptionsValues;
166 if (alternativeQSsOptionsValues) m_alternativeQSsOptionsValues = *alternativeQSsOptionsValues;
169 #ifndef DISABLE_BOOST_PROGRAM_OPTIONS
177 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
189 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
202 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
214 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
222 unsigned int size = env->input().vector_variable_size(m_option_dataOutputAllowedSet);
223 for (
unsigned int i = 0; i < size; i++) {
235 size = env->input().vector_variable_size(m_option_pseq_dataOutputAllowedSet);
236 for (
unsigned int i = 0; i < size; i++) {
243 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
256 size = env->input().vector_variable_size(m_option_qseq_dataOutputAllowedSet);
257 for (
unsigned int i = 0; i < size; i++) {
264 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
267 #endif // DISABLE_BOOST_PROGRAM_OPTIONS
302 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
303 m_pseqComputeStats = src.m_pseqComputeStats;
314 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
315 m_qseqComputeStats = src.m_qseqComputeStats;
318 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
319 m_alternativePSsOptionsValues = src.m_alternativePSsOptionsValues;
320 m_alternativeQSsOptionsValues = src.m_alternativeQSsOptionsValues;
328 #ifndef DISABLE_BOOST_PROGRAM_OPTIONS
329 os << (*(obj.
m_parser)) << std::endl;
330 #endif // DISABLE_BOOST_PROGRAM_OPTIONS
345 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
346 <<
"\n" << obj.m_option_pseq_computeStats <<
" = " << obj.m_pseqComputeStats
360 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
361 os <<
"\n" << obj.m_option_qseq_computeStats <<
" = " << obj.m_qseqComputeStats;
376 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
378 m_pseqStatisticalOptionsObj (NULL),
379 m_qseqStatisticalOptionsObj (NULL),
383 m_prefix ((std::string)(prefix) +
"mc_"),
385 #ifndef DISABLE_BOOST_PROGRAM_OPTIONS
386 m_optionsDesc (new boost::program_options::options_description(
"Monte Carlo options")),
388 m_option_help (m_prefix +
"help" ),
389 m_option_dataOutputFileName (m_prefix +
"dataOutputFileName" ),
390 m_option_dataOutputAllowedSet (m_prefix +
"dataOutputAllowedSet" ),
391 m_option_pseq_dataOutputPeriod (m_prefix +
"pseq_dataOutputPeriod" ),
392 m_option_pseq_dataOutputFileName (m_prefix +
"pseq_dataOutputFileName" ),
393 m_option_pseq_dataOutputFileType (m_prefix +
"pseq_dataOutputFileType" ),
394 m_option_pseq_dataOutputAllowedSet(m_prefix +
"pseq_dataOutputAllowedSet" ),
395 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
396 m_option_pseq_computeStats (m_prefix +
"pseq_computeStats" ),
398 m_option_qseq_dataInputFileName (m_prefix +
"qseq_dataInputFileName" ),
399 m_option_qseq_dataInputFileType (m_prefix +
"qseq_dataInputFileType" ),
400 m_option_qseq_size (m_prefix +
"qseq_size" ),
401 m_option_qseq_displayPeriod (m_prefix +
"qseq_displayPeriod" ),
402 m_option_qseq_measureRunTimes (m_prefix +
"qseq_measureRunTimes" ),
403 m_option_qseq_dataOutputPeriod (m_prefix +
"qseq_dataOutputPeriod" ),
404 m_option_qseq_dataOutputFileName (m_prefix +
"qseq_dataOutputFileName" ),
405 m_option_qseq_dataOutputFileType (m_prefix +
"qseq_dataOutputFileType" ),
406 m_option_qseq_dataOutputAllowedSet(m_prefix +
"qseq_dataOutputAllowedSet" )
407 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
409 m_option_qseq_computeStats (m_prefix +
"qseq_computeStats" )
421 m_ov (alternativeOptionsValues),
422 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
423 m_pseqStatisticalOptionsObj (NULL),
424 m_qseqStatisticalOptionsObj (NULL),
426 m_prefix ((std::string)(prefix) +
"mc_"),
428 #ifndef DISABLE_BOOST_PROGRAM_OPTIONS
429 m_optionsDesc (NULL),
431 m_option_help (m_prefix +
"help" ),
432 m_option_dataOutputFileName (m_prefix +
"dataOutputFileName" ),
433 m_option_dataOutputAllowedSet (m_prefix +
"dataOutputAllowedSet" ),
434 m_option_pseq_dataOutputPeriod (m_prefix +
"pseq_dataOutputPeriod" ),
435 m_option_pseq_dataOutputFileName (m_prefix +
"pseq_dataOutputFileName" ),
436 m_option_pseq_dataOutputFileType (m_prefix +
"pseq_dataOutputFileType" ),
437 m_option_pseq_dataOutputAllowedSet(m_prefix +
"pseq_dataOutputAllowedSet"),
438 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
439 m_option_pseq_computeStats (m_prefix +
"pseq_computeStats" ),
441 m_option_qseq_dataInputFileName (m_prefix +
"qseq_dataInputFileName" ),
442 m_option_qseq_dataInputFileType (m_prefix +
"qseq_dataInputFileType" ),
443 m_option_qseq_size (m_prefix +
"qseq_size" ),
444 m_option_qseq_displayPeriod (m_prefix +
"qseq_displayPeriod" ),
445 m_option_qseq_measureRunTimes (m_prefix +
"qseq_measureRunTimes" ),
446 m_option_qseq_dataOutputPeriod (m_prefix +
"qseq_dataOutputPeriod" ),
447 m_option_qseq_dataOutputFileName (m_prefix +
"qseq_dataOutputFileName" ),
448 m_option_qseq_dataOutputFileType (m_prefix +
"qseq_dataOutputFileType" ),
449 m_option_qseq_dataOutputAllowedSet(m_prefix +
"qseq_dataOutputAllowedSet")
450 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
452 m_option_qseq_computeStats (m_prefix +
"qseq_computeStats" )
460 <<
": after setting values of options with prefix '" <<
m_prefix
461 <<
"', state of object is:"
467 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
468 if (
m_ov.m_pseqComputeStats) m_pseqStatisticalOptionsObj =
469 new SequenceStatisticalOptions(
m_env,
m_prefix +
"pseq_",
m_ov.m_alternativePSsOptionsValues);
470 if (
m_ov.m_qseqComputeStats) m_qseqStatisticalOptionsObj =
471 new SequenceStatisticalOptions(
m_env,
m_prefix +
"qseq_",
m_ov.m_alternativeQSsOptionsValues);
479 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
480 if (m_pseqStatisticalOptionsObj)
delete m_pseqStatisticalOptionsObj;
481 if (m_qseqStatisticalOptionsObj)
delete m_qseqStatisticalOptionsObj;
483 #ifndef DISABLE_BOOST_PROGRAM_OPTIONS
485 #endif // DISABLE_BOOST_PROGRAM_OPTIONS
493 #ifndef DISABLE_BOOST_PROGRAM_OPTIONS
499 #endif // DISABLE_BOOST_PROGRAM_OPTIONS
503 <<
": after reading values of options with prefix '" <<
m_prefix
504 <<
"', state of object is:"
510 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
511 if (
m_ov.m_pseqComputeStats) m_pseqStatisticalOptionsObj =
513 if (
m_ov.m_qseqComputeStats) m_qseqStatisticalOptionsObj =
519 #ifndef DISABLE_BOOST_PROGRAM_OPTIONS
525 optionsDesc.add_options()
526 (
m_option_help.c_str(),
"produce help message for Monte Carlo distribution calculator")
533 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
534 (m_option_pseq_computeStats.c_str(), boost::program_options::value<bool >()->default_value(
UQ_MOC_SG_PSEQ_COMPUTE_STATS_ODV ),
"compute statistics on sequence of parameter" )
545 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
546 (m_option_qseq_computeStats.c_str(), boost::program_options::value<bool >()->default_value(
UQ_MOC_SG_QSEQ_COMPUTE_STATS_ODV ),
"compute statistics on sequence of qoi" )
571 std::vector<double> tmpAllow(0,0.);
575 if (tmpAllow.size() > 0) {
576 for (
unsigned int i = 0; i < tmpAllow.size(); ++i) {
596 std::vector<double> tmpAllow(0,0.);
600 if (tmpAllow.size() > 0) {
601 for (
unsigned int i = 0; i < tmpAllow.size(); ++i) {
607 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
609 m_ov.m_pseqComputeStats = ((
const boost::program_options::variable_value&)
m_env.
allOptionsMap()[m_option_pseq_computeStats]).as<bool>();
646 std::vector<double> tmpAllow(0,0.);
650 if (tmpAllow.size() > 0) {
651 for (
unsigned int i = 0; i < tmpAllow.size(); ++i) {
657 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
659 m_ov.m_qseqComputeStats = ((
const boost::program_options::variable_value&)
m_env.
allOptionsMap()[m_option_qseq_computeStats]).as<bool>();
664 #endif // DISABLE_BOOST_PROGRAM_OPTIONS
684 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
685 <<
"\n" << m_option_pseq_computeStats <<
" = " <<
m_ov.m_pseqComputeStats
699 #ifdef QUESO_USES_SEQUENCE_STATISTICAL_OPTIONS
700 os <<
"\n" << m_option_qseq_computeStats <<
" = " <<
m_ov.m_qseqComputeStats;
std::string m_option_qseq_dataOutputFileName
std::string m_dataOutputFileName
std::string m_qseqDataInputFileName
#define UQ_MOC_SG_DATA_OUTPUT_FILE_NAME_ODV
unsigned int m_qseqDisplayPeriod
#define UQ_MOC_SG_QSEQ_DATA_OUTPUT_FILE_TYPE_ODV
std::string m_option_qseq_dataInputFileType
virtual ~McOptionsValues()
Destructor.
std::set< unsigned int > m_dataOutputAllowedSet
std::string m_option_dataOutputFileName
#define UQ_MOC_SG_DATA_OUTPUT_ALLOWED_SET_ODV
#define UQ_MOC_SG_PSEQ_DATA_OUTPUT_FILE_NAME_ODV
std::string m_option_pseq_dataOutputAllowedSet
void scanOptionsValues()
It scans the option values from the options input file.
std::ofstream * subDisplayFile() const
Access function for m_subDisplayFile (displays file on stream).
std::string m_option_qseq_dataOutputFileType
std::ostream & operator<<(std::ostream &os, const BaseEnvironment &obj)
std::string optionsInputFileName() const
Access to the attribute m_optionsInputFileName, which stores the name of the input file passed by the...
std::string m_option_qseq_dataOutputPeriod
std::string m_option_help
std::string m_option_pseq_dataOutputPeriod
McOptionsValues()
Default constructor.
std::string m_option_qseq_dataOutputFileName
std::string m_pseqDataOutputFileName
This (virtual) class sets up the environment underlying the use of the QUESO library by an executable...
~MonteCarloSGOptions()
Destructor.
std::string m_option_qseq_displayPeriod
void defineMyOptions(boost::program_options::options_description &optionsDesc) const
Defines the options for the Monte Carlo sequence generator as the default options.
void getMyOptionValues(boost::program_options::options_description &optionsDesc)
Gets the sequence options.
void print(std::ostream &os) const
It prints the option values.
std::string m_option_pseq_dataOutputFileName
#define UQ_MOC_SG_QSEQ_DATA_OUTPUT_PERIOD_ODV
#define UQ_MOC_SG_QSEQ_DATA_OUTPUT_FILE_NAME_ODV
std::string m_option_pseq_dataOutputFileType
void getOption(std::string &name, T &value)
Get option name from the parser and set value to the parsed value.
void MiscReadDoublesFromString(const std::string &inputString, std::vector< double > &outputDoubles)
#define UQ_MOC_SG_QSEQ_MEASURE_RUN_TIMES_ODV
#define queso_require_equal_to_msg(expr1, expr2, msg)
std::string m_qseqDataOutputFileName
#define UQ_MOC_SG_PSEQ_COMPUTE_STATS_ODV
std::string m_option_dataOutputAllowedSet
boost::program_options::variables_map & allOptionsMap() const
#define UQ_MOC_SG_PSEQ_DATA_OUTPUT_PERIOD_ODV
#define UQ_MOC_SG_PSEQ_DATA_OUTPUT_FILE_TYPE_ODV
#define UQ_MOC_SG_PSEQ_DATA_OUTPUT_ALLOWED_SET_ODV
#define UQ_MOC_SG_QSEQ_DATA_OUTPUT_ALLOWED_SET_ODV
#define queso_deprecated()
std::string m_option_qseq_dataOutputAllowedSet
std::string m_qseqDataOutputFileType
void scanInputFileForMyOptions(const boost::program_options::options_description &optionsDesc) const
This method scans the input file provided by the user to QUESO.
void scanInputFile()
This is the method that parses the input file.
std::string m_option_pseq_dataOutputFileName
std::string m_option_pseq_dataOutputPeriod
std::string m_option_qseq_measureRunTimes
std::string m_qseqDataInputFileType
std::string m_option_qseq_dataInputFileName
std::set< unsigned int > m_qseqDataOutputAllowedSet
std::string m_option_qseq_size
#define UQ_MOC_SG_QSEQ_DATA_INPUT_FILE_TYPE_ODV
bool m_qseqMeasureRunTimes
std::string m_option_help
std::string m_option_qseq_dataOutputAllowedSet
std::string m_option_dataOutputAllowedSet
#define queso_require_not_equal_to_msg(expr1, expr2, msg)
std::string m_option_qseq_measureRunTimes
std::string m_option_qseq_dataInputFileName
std::string m_pseqDataOutputFileType
void registerOption(std::string name, T defaultValue, std::string description)
Call this to register an option with the parser.
unsigned int m_qseqDataOutputPeriod
#define queso_require_msg(asserted, msg)
std::set< unsigned int > m_pseqDataOutputAllowedSet
std::string m_option_qseq_size
std::string m_option_qseq_dataOutputPeriod
void copy(const McOptionsValues &src)
Copies the option values from src to this.
std::string m_option_dataOutputFileName
#define UQ_MOC_SG_QSEQ_DATA_INPUT_FILE_NAME_ODV
std::string m_option_qseq_dataInputFileType
#define UQ_MOC_SG_QSEQ_SIZE_ODV
std::string m_option_qseq_dataOutputFileType
#define UQ_MOC_SG_QSEQ_DISPLAY_PERIOD_ODV
McOptionsValues & operator=(const McOptionsValues &rhs)
Assignment operator; it copies rhs to this.
unsigned int m_pseqDataOutputPeriod
boost::program_options::options_description * m_optionsDesc
std::string m_option_pseq_dataOutputAllowedSet
std::string m_option_pseq_dataOutputFileType
BoostInputOptionsParser * m_parser
std::string m_option_qseq_displayPeriod
#define UQ_MOC_SG_QSEQ_COMPUTE_STATS_ODV
This class reads the options for the Monte Carlo sequence generator from an input file...
const BaseEnvironment & m_env
This class provides options for the Monte Carlo sequence generator if no input file is available...
MonteCarloSGOptions(const BaseEnvironment &env, const char *prefix)
Constructor: reads options from the input file.
std::string m_help
If non-empty string, print options and values to output file.