queso-0.53.0
ConcatenatedJointPdf.h
Go to the documentation of this file.
1 //-----------------------------------------------------------------------bl-
2 //--------------------------------------------------------------------------
3 //
4 // QUESO - a library to support the Quantification of Uncertainty
5 // for Estimation, Simulation and Optimization
6 //
7 // Copyright (C) 2008-2015 The PECOS Development Team
8 //
9 // This library is free software; you can redistribute it and/or
10 // modify it under the terms of the Version 2.1 GNU Lesser General
11 // Public License as published by the Free Software Foundation.
12 //
13 // This library is distributed in the hope that it will be useful,
14 // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 // Lesser General Public License for more details.
17 //
18 // You should have received a copy of the GNU Lesser General Public
19 // License along with this library; if not, write to the Free Software
20 // Foundation, Inc. 51 Franklin Street, Fifth Floor,
21 // Boston, MA 02110-1301 USA
22 //
23 //-----------------------------------------------------------------------el-
24 
25 #ifndef UQ_CONCAT_JOINT_PROB_DENSITY_H
26 #define UQ_CONCAT_JOINT_PROB_DENSITY_H
27 
28 #include <cmath>
29 
30 #include <boost/math/special_functions.hpp> // for Boost isnan. Note parentheses are important in function call.
31 
32 #include <queso/JointPdf.h>
33 #include <queso/Environment.h>
34 #include <queso/ScalarFunction.h>
35 #include <queso/BoxSubset.h>
36 
37 namespace QUESO {
38 
39 class GslVector;
40 class GslMatrix;
41 
42 //*****************************************************
43 // Concatenated probability density class [PDF-11]
44 //*****************************************************
54 template <class V = GslVector, class M = GslMatrix>
55 class ConcatenatedJointPdf : public BaseJointPdf<V,M> {
56 public:
58 
59 
62  ConcatenatedJointPdf(const char* prefix,
63  const BaseJointPdf<V,M>& density1,
64  const BaseJointPdf<V,M>& density2,
65  const VectorSet <V,M>& concatenatedDomain);
66 
68 
70  ConcatenatedJointPdf(const char* prefix,
71  const std::vector<const BaseJointPdf<V,M>* >& densities,
72  const VectorSet<V,M>& concatenatedDomain);
73 
77 
79 
80 
82  double actualValue (const V& domainVector, const V* domainDirection, V* gradVector, M* hessianMatrix, V* hessianEffect) const;
83 
85 
86  double lnValue (const V& domainVector, const V* domainDirection, V* gradVector, M* hessianMatrix, V* hessianEffect) const;
87 
89  void setNormalizationStyle(unsigned int value) const;
90 
92 
94  double computeLogOfNormalizationFactor(unsigned int numSamples, bool updateFactorInternally) const;
96 
97 protected:
102 
103  std::vector<const BaseJointPdf<V,M>* > m_densities;
104 };
105 
106 } // End namespace QUESO
107 
108 #endif // UQ_CONCAT_JOINT_PROB_DENSITY_H
A templated class for handling sets.
Definition: VectorSet.h:52
A templated (base) class for handling joint PDFs.
Definition: JointPdf.h:56
A templated (base) class for handling scalar functions.
ConcatenatedJointPdf(const char *prefix, const BaseJointPdf< V, M > &density1, const BaseJointPdf< V, M > &density2, const VectorSet< V, M > &concatenatedDomain)
Constructor.
double actualValue(const V &domainVector, const V *domainDirection, V *gradVector, M *hessianMatrix, V *hessianEffect) const
Calculates the actual values of each density.
A class for handling concatenated PDFs.
double computeLogOfNormalizationFactor(unsigned int numSamples, bool updateFactorInternally) const
Computes the logarithm of the normalization factor.
void setNormalizationStyle(unsigned int value) const
Sets the normalization style of all densities to value.
std::vector< const BaseJointPdf< V, M > * > m_densities
double lnValue(const V &domainVector, const V *domainDirection, V *gradVector, M *hessianMatrix, V *hessianEffect) const
Calculates the logarithm of the values of each density.

Generated on Thu Jun 11 2015 13:52:32 for queso-0.53.0 by  doxygen 1.8.5