queso-0.56.0
InfiniteDimensionalGaussian.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 QUESO_INFINITEDIMENSIONALGAUSSIAN_H
26 #define QUESO_INFINITEDIMENSIONALGAUSSIAN_H
27 
28 #include <queso/SharedPtr.h>
29 #include <queso/InfiniteDimensionalMeasureBase.h>
30 #include <queso/FunctionBase.h>
31 
32 namespace QUESO {
33 
34 class FullEnvironment;
35 class OperatorBase;
36 
46 public:
48 
49 
60  const FunctionBase &mean, const OperatorBase &precision,
61  double alpha, double beta);
62 
66 
68  virtual typename SharedPtr<FunctionBase>::Type draw();
69 
71  virtual double get_kl_coefficient(unsigned int i) const;
72 
73 private:
74  // Mean
75  const FunctionBase & mean;
76 
77  // Precision -- I suppose you saw that one coming.
79 
80  // QUESO environment
82 
83  // Fractional power
84  double alpha;
85 
86  // Multiplicative constant
87  double beta;
88 
89  // The coefficients for the KL expansion
90  // (not multiplied by the evals)
91  std::vector<double> coeffs;
92 };
93 
94 } // End namespace QUESO
95 
96 #endif // QUESO_INFINITEDIMENSIONALGAUSSIAN_H
virtual SharedPtr< FunctionBase >::Type draw()
Draw from the measure, and then return a shared pointer to the draw.
Abstract base class for operator objects. Operators are assumed to be symmetric and positive-definite...
Definition: OperatorBase.h:45
Abstract base class for infinite dimensional measures.
Class defining infinite dimensional Gaussian measures.
This class sets up the full environment underlying the use of the QUESO library by an executable...
Definition: Environment.h:435
InfiniteDimensionalGaussian(const FullEnvironment &env, const FunctionBase &mean, const OperatorBase &precision, double alpha, double beta)
Construct a Gaussian with mean mean, precision operator precision. alpha controls regularity of draws...
Abstract base class for function objects.
Definition: FunctionBase.h:47
virtual double get_kl_coefficient(unsigned int i) const
Return coefficient i of the KL expansion of the current draw. Must be called after draw() ...

Generated on Tue Nov 29 2016 10:53:10 for queso-0.56.0 by  doxygen 1.8.5