25 #include <queso/BetaJointPdf.h> 
   26 #include <queso/GslVector.h> 
   27 #include <queso/GslMatrix.h> 
   32 template<
class V,
class M>
 
   39   BaseJointPdf<V,M>(((std::string)(prefix)+
"uni").c_str(),domainSet),
 
   56 template<
class V,
class M>
 
   61 template<
class V, 
class M>
 
   64   const V& domainVector,
 
   65   const V* domainDirection,
 
   68         V* hessianEffect)
 const 
   72                       "BetaJointPdf<V,M>::actualValue()",
 
   77                       "BetaJointPdf<V,M>::actualValue()",
 
   78                       "incomplete code for gradVector, hessianMatrix and hessianEffect calculations");
 
   81   return exp(this->lnValue(domainVector,domainDirection,gradVector,hessianMatrix,hessianEffect));
 
   84 template<
class V, 
class M>
 
   87   const V& domainVector,
 
   88   const V* domainDirection,
 
   91         V* hessianEffect)
 const 
   95                       "BetaJointPdf<V,M>::lnValue()",
 
   96                       "incomplete code for gradVector, hessianMatrix and hessianEffect calculations");
 
  100   for (
unsigned int i = 0; i < domainVector.sizeLocal(); ++i) {
 
  101     if (m_normalizationStyle == 0) {
 
  103       aux = log(m_env.basicPdfs()->betaPdfActualValue(domainVector[i],m_alpha[i],m_beta[i]));
 
  106       aux = (m_alpha[i]-1.)*log(domainVector[i]) + (m_beta[i]-1.)*log(1.-domainVector[i]);
 
  108     if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 99)) {
 
  109       *m_env.subDisplayFile() << 
"In BetaJointPdf<V,M>::lnValue()" 
  110                               << 
", m_normalizationStyle = "      << m_normalizationStyle
 
  111                               << 
": domainVector[" << i << 
"] = " << domainVector[i]
 
  112                               << 
", m_alpha[" << i << 
"] = "      << m_alpha[i]
 
  113                               << 
", m_beta[" << i << 
"] = "       << m_beta[i]
 
  114                               << 
", log(pdf)= "                   << aux
 
  119   result += m_logOfNormalizationFactor; 
 
  124 template<
class V, 
class M>
 
  130   if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 2)) {
 
  131     *m_env.subDisplayFile() << 
"Entering BetaJointPdf<V,M>::computeLogOfNormalizationFactor()" 
  135   if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 2)) {
 
  136     *m_env.subDisplayFile() << 
"Leaving BetaJointPdf<V,M>::computeLogOfNormalizationFactor()" 
  137                             << 
", m_logOfNormalizationFactor = " << m_logOfNormalizationFactor
 
A templated class for handling sets. 
 
std::ofstream * subDisplayFile() const 
Access function for m_subDisplayFile (displays file on stream). 
 
double lnValue(const V &domainVector, const V *domainDirection, V *gradVector, M *hessianMatrix, V *hessianEffect) const 
Logarithm of the value of the Beta PDF. 
 
~BetaJointPdf()
Destructor. 
 
BetaJointPdf(const char *prefix, const VectorSet< V, M > &domainSet, const V &alpha, const V &beta)
Constructor. 
 
double actualValue(const V &domainVector, const V *domainDirection, V *gradVector, M *hessianMatrix, V *hessianEffect) const 
Actual value of the Beta PDF. 
 
#define UQ_FATAL_TEST_MACRO(test, givenRank, where, what)
 
A class for handling Beta joint PDFs. 
 
double computeLogOfNormalizationFactor(unsigned int numSamples, bool updateFactorInternally) const 
Computes the logarithm of the normalization factor. 
 
A templated (base) class for handling joint PDFs. 
 
double commonComputeLogOfNormalizationFactor(unsigned int numSamples, bool updateFactorInternally) const 
Common method (to the derived classes) to compute the logarithm of the normalization factor...
 
unsigned int displayVerbosity() const 
 
const BaseEnvironment & m_env