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-2017 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_INFINITEDIMENSIONALMEASURE_BASE_H 26 #define QUESO_INFINITEDIMENSIONALMEASURE_BASE_H 27 28 #include <queso/SharedPtr.h> 29 #include <queso/FunctionBase.h> 30 31 namespace QUESO { 32 33 /*! 34 * \file InfiniteDimensionalMeasureBase.h 35 * \brief Abstract base class for infinite dimensional measures 36 * 37 * \class InfiniteDimensionalMeasureBase 38 * \brief Abstract base class for infinite dimensional measures 39 */ 40 41 class FunctionBase; 42 43 class InfiniteDimensionalMeasureBase { 44 public: 45 //! @name Constructor/Destructor methods 46 //@{ 47 //! Default constructor 48 InfiniteDimensionalMeasureBase(); 49 50 //! Destructor 51 virtual ~InfiniteDimensionalMeasureBase(); 52 //@} 53 54 //! Draw from the measure, and then return a shared pointer to the draw 55 virtual SharedPtr<FunctionBase>::Type draw() = 0; 56 57 //! Return coefficient \c i of the KL expansion of the current draw. Must be called after draw() 58 virtual double get_kl_coefficient(unsigned int i) const = 0; 59 }; 60 61 } // End namespace QUESO 62 63 #endif // QUESO_INFINITEDIMENSIONALMEASURE_BASE_H 64