StatisticalInverseProblem<P_V,P_M>::StatisticalInverseProblem( const char * prefix, const SipOptionsValues * alternativeOptionsValues, const GPMSAFactory<P_V, P_M> & gpmsaFactory, GenericVectorRV <P_V,P_M> & postRv) : m_env (gpmsaFactory.m_totalPrior->env()), m_priorRv (*(gpmsaFactory.m_totalPrior)), m_likelihoodFunction (gpmsaFactory.getGPMSAEmulator()), m_postRv (postRv), m_solutionDomain (NULL), m_solutionPdf (NULL), m_subSolutionMdf (NULL), m_subSolutionCdf (NULL), m_solutionRealizer (NULL), m_mhSeqGenerator (NULL), m_mlSampler (NULL), m_chain (NULL), m_logLikelihoodValues (NULL), m_logTargetValues (NULL), m_optionsObj (alternativeOptionsValues), m_seedWithMAPEstimator (false), m_userDidNotProvideOptions(false) { if (m_env.subDisplayFile()) { *m_env.subDisplayFile() << "Entering StatisticalInverseProblem<P_V,P_M>::constructor()" << ": prefix = " << prefix << ", alternativeOptionsValues = " << alternativeOptionsValues << ", m_env.optionsInputFileName() = " << m_env.optionsInputFileName() << std::endl; } // If NULL, we create one if (m_optionsObj == NULL) { SipOptionsValues * tempOptions = new SipOptionsValues(&m_env, prefix); // We did this dance because scanOptionsValues is not a const method, but // m_optionsObj is a pointer to const m_optionsObj = tempOptions; m_userDidNotProvideOptions = true; } if (m_optionsObj->m_help != "") { if (m_env.subDisplayFile()) { *m_env.subDisplayFile() << (*m_optionsObj) << std::endl; } } queso_require_equal_to_msg(m_priorRv.imageSet().vectorSpace().dimLocal(), m_likelihoodFunction.domainSet().vectorSpace().dimLocal(), "'priorRv' and 'likelihoodFunction' are related to vector spaces of different dimensions"); queso_require_equal_to_msg(m_priorRv.imageSet().vectorSpace().dimLocal(), postRv.imageSet().vectorSpace().dimLocal(), "'priorRv' and 'postRv' are related to vector spaces of different dimensions"); if (m_env.subDisplayFile()) { *m_env.subDisplayFile() << "Leaving StatisticalInverseProblem<P_V,P_M>::constructor()" << ": prefix = " << m_optionsObj->m_prefix << std::endl; } return; }
StatisticalInverseProblem<P_V,P_M>::StatisticalInverseProblem( /*! The prefix */ const char* prefix, /*! Options (if no input file) */ const SipOptionsValues* alternativeOptionsValues, // dakota /*! The prior RV */ const BaseVectorRV <P_V,P_M>& priorRv, /*! The likelihood function */ const BaseScalarFunction<P_V,P_M>& likelihoodFunction, /*! The posterior RV */ GenericVectorRV <P_V,P_M>& postRv) : m_env (priorRv.env()), m_priorRv (priorRv), m_likelihoodFunction (likelihoodFunction), m_postRv (postRv), m_solutionDomain (NULL), m_solutionPdf (NULL), m_subSolutionMdf (NULL), m_subSolutionCdf (NULL), m_solutionRealizer (NULL), m_mhSeqGenerator (NULL), m_mlSampler (NULL), m_chain (NULL), m_logLikelihoodValues (NULL), m_logTargetValues (NULL), m_optionsObj (alternativeOptionsValues), m_seedWithMAPEstimator (false), m_userDidNotProvideOptions(false) { #ifdef QUESO_MEMORY_DEBUGGING std::cout << "Entering Sip" << std::endl; #endif if (m_env.subDisplayFile()) { *m_env.subDisplayFile() << "Entering StatisticalInverseProblem<P_V,P_M>::constructor()" << ": prefix = " << prefix << ", alternativeOptionsValues = " << alternativeOptionsValues << ", m_env.optionsInputFileName() = " << m_env.optionsInputFileName() << std::endl; } // If NULL, we create one if (m_optionsObj == NULL) { SipOptionsValues * tempOptions = new SipOptionsValues(&m_env, prefix); // We did this dance because scanOptionsValues is not a const method, but // m_optionsObj is a pointer to const m_optionsObj = tempOptions; // We set this flag so we don't delete the user-created object when it // comes time to deconstruct m_userDidNotProvideOptions = true; } if (m_optionsObj->m_help != "") { if (m_env.subDisplayFile()) { *m_env.subDisplayFile() << (*m_optionsObj) << std::endl; } } #ifdef QUESO_MEMORY_DEBUGGING std::cout << "In Sip, finished scanning options" << std::endl; #endif queso_require_equal_to_msg(priorRv.imageSet().vectorSpace().dimLocal(), likelihoodFunction.domainSet().vectorSpace().dimLocal(), "'priorRv' and 'likelihoodFunction' are related to vector spaces of different dimensions"); queso_require_equal_to_msg(priorRv.imageSet().vectorSpace().dimLocal(), postRv.imageSet().vectorSpace().dimLocal(), "'priorRv' and 'postRv' are related to vector spaces of different dimensions"); if (m_env.subDisplayFile()) { *m_env.subDisplayFile() << "Leaving StatisticalInverseProblem<P_V,P_M>::constructor()" << ": prefix = " << m_optionsObj->m_prefix << std::endl; } return; }
StatisticalForwardProblem<P_V,P_M,Q_V,Q_M>::StatisticalForwardProblem( /*! The prefix */ const char* prefix, /*! Options (if no input file) */ const SfpOptionsValues* alternativeOptionsValues, // dakota /*! The input RV */ const BaseVectorRV <P_V,P_M>& paramRv, /*! The QoI function */ const BaseVectorFunction<P_V,P_M,Q_V,Q_M>& qoiFunction, /*! The QoI RV */ GenericVectorRV <Q_V,Q_M>& qoiRv) : m_env (paramRv.env()), m_paramRv (paramRv), m_qoiFunction (qoiFunction), m_qoiRv (qoiRv), m_paramChain (NULL), m_qoiChain (NULL), m_mcSeqGenerator (NULL), m_solutionRealizer (NULL), #ifdef UQ_ALSO_COMPUTE_MDFS_WITHOUT_KDE m_subMdfGrids (NULL), m_subMdfValues (NULL), #endif #ifdef QUESO_COMPUTES_EXTRA_POST_PROCESSING_STATISTICS m_subSolutionMdf (NULL), m_subCdfGrids (NULL), m_subCdfValues (NULL), m_subSolutionCdf (NULL), m_unifiedCdfGrids (NULL), m_unifiedCdfValues (NULL), m_unifiedSolutionCdf (NULL), #endif m_solutionPdf (NULL), m_optionsObj (alternativeOptionsValues), m_userDidNotProvideOptions(false) { if (m_env.subDisplayFile()) { *m_env.subDisplayFile() << "Entering StatisticalForwardProblem<P_V,P_M,Q_V,Q_M>::constructor()" << ": prefix = " << prefix << ", alternativeOptionsValues = " << alternativeOptionsValues << ", m_env.optionsInputFileName() = " << m_env.optionsInputFileName() << std::endl; } // If NULL, we create one if (m_optionsObj == NULL) { SfpOptionsValues * tempOptions = new SfpOptionsValues(&m_env, prefix); // We did this dance because scanOptionsValues is not a const method, but // m_optionsObj is a pointer to const m_optionsObj = tempOptions; // We do this so we don't delete the user's object in the dtor m_userDidNotProvideOptions = true; } if (m_optionsObj->m_help != "") { if (m_env.subDisplayFile()) { *m_env.subDisplayFile() << (*m_optionsObj) << std::endl; } } queso_require_equal_to_msg(paramRv.imageSet().vectorSpace().dimLocal(), qoiFunction.domainSet().vectorSpace().dimLocal(), "'paramRv' and 'qoiFunction' are related to vector spaces of different dimensions"); queso_require_equal_to_msg(qoiFunction.imageSet().vectorSpace().dimLocal(), qoiRv.imageSet().vectorSpace().dimLocal(), "'qoiFunction' and 'qoiRv' are related to vector spaces of different dimensions"); if (m_env.subDisplayFile()) { *m_env.subDisplayFile() << "Leaving StatisticalForwardProblem<P_V,P_M,Q_V,Q_M>::constructor()" << ": prefix = " << m_optionsObj->m_prefix << std::endl; } }