GenericJointPdf<V,M>::GenericJointPdf( const char* prefix, const BaseScalarFunction<V,M>& scalarFunction) : BaseJointPdf<V,M>(((std::string)(prefix)+"gen").c_str(),scalarFunction.domainSet()), m_scalarFunction(scalarFunction) { }
ScalarFunctionSynchronizer<V,M>::ScalarFunctionSynchronizer( const BaseScalarFunction<V,M>& inputFunction, const V& auxVec) : m_env(inputFunction.domainSet().env()), m_scalarFunction(inputFunction), m_bayesianJointPdfPtr(dynamic_cast<const BayesianJointPdf<V,M>* >(&m_scalarFunction)), m_auxVec(auxVec) { }
GslOptimizer::GslOptimizer( const BaseScalarFunction<GslVector, GslMatrix> & objectiveFunction) : BaseOptimizer(), m_objectiveFunction(objectiveFunction), m_initialPoint(new GslVector(objectiveFunction.domainSet(). vectorSpace().zeroVector())), m_minimizer(new GslVector(this->m_objectiveFunction.domainSet(). vectorSpace().zeroVector())), m_solver_type(BFGS2), m_fstep_size(this->m_objectiveFunction.domainSet().vectorSpace().zeroVector()), m_fdfstep_size(getFdfstepSize()), m_line_tol(getLineTolerance()) { // We initialize the minimizer to GSL_NAN just in case the optimization fails m_minimizer->cwSet(GSL_NAN); // Set to documented default value. m_fstep_size.cwSet(getFstepSize()); // Set solver type to the one set in the options object setSolverType(getSolverType()); }
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; }