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).
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.
double lnValue(const V &domainVector, const V *domainDirection, V *gradVector, M *hessianMatrix, V *hessianEffect) const
Logarithm of the value of the Beta PDF.
const BaseEnvironment & m_env
double computeLogOfNormalizationFactor(unsigned int numSamples, bool updateFactorInternally) const
Computes the logarithm of the normalization factor.
A class for handling Beta 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
~BetaJointPdf()
Destructor.
#define UQ_FATAL_TEST_MACRO(test, givenRank, where, what)
A templated (base) class for handling joint PDFs.