queso-0.53.0
InvLogitGaussianJointPdf.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_INVLOGIT_GAUSSIAN_JOINT_PROB_DENSITY_H
26 #define UQ_INVLOGIT_GAUSSIAN_JOINT_PROB_DENSITY_H
27 
28 #include <queso/JointPdf.h>
29 #include <queso/ScalarFunction.h>
30 #include <queso/BoxSubset.h>
31 
32 namespace QUESO {
33 
34 class GslVector;
35 class GslMatrix;
36 
57 template <class V = GslVector, class M = GslMatrix>
59 public:
61 
62 
70  InvLogitGaussianJointPdf(const char * prefix,
71  const BoxSubset<V, M> & domainBoxSubset, const V & lawExpVector,
72  const V & lawVarVector);
73 
75 
80  InvLogitGaussianJointPdf(const char * prefix,
81  const BoxSubset<V, M> & domainBoxSubset, const V & lawExpVector,
82  const M & lawCovMatrix);
83 
87 
89 
90 
92 
93  double actualValue(const V & domainVector, const V * domainDirection,
94  V * gradVector, M * hessianMatrix, V * hessianEffect) const;
95 
97 
109  double lnValue(const V & domainVector, const V * domainDirection,
110  V * gradVector, M * hessianMatrix, V * hessianEffect) const;
111 
113 
116  double computeLogOfNormalizationFactor(unsigned int numSamples,
117  bool updateFactorInternally) const;
118 
120 
124  void updateLawExpVector(const V & newLawExpVector);
125 
127 
131  void updateLawCovMatrix(const M & newLawCovMatrix);
132 
134  const M & lawCovMatrix() const;
135 
137  const V & lawExpVector() const;
138 
140  const V & lawVarVector() const;
142 private:
151  const M * m_lawCovMatrix;
152 
154 };
155 
156 } // End namespace QUESO
157 
158 #endif // UQ_INVLOGIT_GAUSSIAN_JOINT_PROB_DENSITY_H
const V & lawExpVector() const
Access to the vector of mean values of the Gaussian (not transformed) and private attribute: m_lawExp...
void updateLawCovMatrix(const M &newLawCovMatrix)
Updates the lower triangular matrix from Cholesky decomposition of the covariance matrix to the new v...
const BoxSubset< V, M > & m_domainBoxSubset
A templated (base) class for handling joint PDFs.
Definition: JointPdf.h:56
const V & lawVarVector() const
Access to the vector of variance values and private attribute: m_lawVarVector.
A templated (base) class for handling scalar functions.
double lnValue(const V &domainVector, const V *domainDirection, V *gradVector, M *hessianMatrix, V *hessianEffect) const
Logarithm of the value of the (transformed) Gaussian PDF (scalar function).
A class for handling hybrid (transformed) Gaussians with bounds.
double actualValue(const V &domainVector, const V *domainDirection, V *gradVector, M *hessianMatrix, V *hessianEffect) const
Actual value of the (transformed) Gaussian PDF.
InvLogitGaussianJointPdf(const char *prefix, const BoxSubset< V, M > &domainBoxSubset, const V &lawExpVector, const V &lawVarVector)
Constructor.
const M & lawCovMatrix() const
Returns the covariance matrix; access to protected attribute m_lawCovMatrix.
Class representing a subset of a vector space shaped like a hypercube.
Definition: BoxSubset.h:44
void updateLawExpVector(const V &newLawExpVector)
Updates the mean of the Gaussian (not transformed) with the new value newLawExpVector.
double computeLogOfNormalizationFactor(unsigned int numSamples, bool updateFactorInternally) const
Computes the logarithm of the normalization factor.

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