25 #include <queso/UniformJointPdf.h> 
   26 #include <queso/GslVector.h> 
   27 #include <queso/GslMatrix.h> 
   32 template<
class V,
class M>
 
   53 template<
class V,
class M>
 
   58 template<
class V, 
class M>
 
   61   const V& domainVector,
 
   62   const V* domainDirection,
 
   65         V* hessianEffect)
 const 
   69   if (gradVector   ) *gradVector     = m_domainSet.vectorSpace().zeroVector();
 
   70   if (hessianMatrix) *hessianMatrix *= 0.;
 
   71   if (hessianEffect) *hessianEffect  = m_domainSet.vectorSpace().zeroVector();
 
   73   if (domainDirection) {}; 
 
   75   double volume = m_domainSet.volume();
 
   77       (volume == -INFINITY         ) ||
 
   78       (volume ==  INFINITY         ) ||
 
   80       (m_normalizationStyle != 0   )) {
 
   87 template<
class V, 
class M>
 
   90   const V& domainVector,
 
   91   const V* domainDirection,
 
   94         V* hessianEffect)
 const 
   96   if (gradVector   ) *gradVector     = m_domainSet.vectorSpace().zeroVector();
 
   97   if (hessianMatrix) *hessianMatrix *= 0.;
 
   98   if (hessianEffect) *hessianEffect  = m_domainSet.vectorSpace().zeroVector();
 
  100   if (domainVector[0]) {}; 
 
  101   if (domainDirection) {}; 
 
  103   double volume = m_domainSet.volume();
 
  105       (volume == -INFINITY         ) ||
 
  106       (volume ==  INFINITY         ) ||
 
  108       (m_normalizationStyle != 0   )) {
 
  115 template<
class V, 
class M>
 
  119   m_domainSet.centroid(meanVector);
 
  122 template<
class V, 
class M>
 
  126   m_domainSet.moments(covMatrix);
 
  129 template<
class V, 
class M>
 
  135   if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 2)) {
 
  136     *m_env.subDisplayFile() << 
"Entering UniformJointPdf<V,M>::computeLogOfNormalizationFactor()" 
  140   if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 2)) {
 
  141     *m_env.subDisplayFile() << 
"Leaving UniformJointPdf<V,M>::computeLogOfNormalizationFactor()" 
  142                             << 
", m_logOfNormalizationFactor = " << m_logOfNormalizationFactor
 
std::ofstream * subDisplayFile() const 
Access function for m_subDisplayFile (displays file on stream). 
 
#define queso_require_equal_to_msg(expr1, expr2, msg)
 
double lnValue(const V &domainVector, const V *domainDirection, V *gradVector, M *hessianMatrix, V *hessianEffect) const 
Logarithm of the value of the uniform PDF. 
 
A templated (base) class for handling joint PDFs. 
 
UniformJointPdf(const char *prefix, const VectorSet< V, M > &domainSet)
Constructor. 
 
A templated class for handling sets. 
 
virtual void distributionMean(V &meanVector) const 
Mean value of the underlying random variable. 
 
double actualValue(const V &domainVector, const V *domainDirection, V *gradVector, M *hessianMatrix, V *hessianEffect) const 
Actual value of the uniform PDF. 
 
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 
 
virtual void distributionVariance(M &covMatrix) const 
Covariance matrix of the underlying random variable. 
 
const BaseEnvironment & m_env
 
double computeLogOfNormalizationFactor(unsigned int numSamples, bool updateFactorInternally) const 
Computes the logarithm of the normalization factor. 
 
~UniformJointPdf()
Destructor. 
 
A class for handling uniform joint PDFs.