systemmodel.h
Go to the documentation of this file.
00001 // $Id: systemmodel.h 29830 2009-01-14 15:10:41Z kgadeyne $
00002 // Copyright (C) 2002 Klaas Gadeyne <first dot last at gmail dot com>
00003 //
00004  /***************************************************************************
00005  *   This library is free software; you can redistribute it and/or         *
00006  *   modify it under the terms of the GNU General Public                   *
00007  *   License as published by the Free Software Foundation;                 *
00008  *   version 2 of the License.                                             *
00009  *                                                                         *
00010  *   As a special exception, you may use this file as part of a free       *
00011  *   software library without restriction.  Specifically, if other files   *
00012  *   instantiate templates or use macros or inline functions from this     *
00013  *   file, or you compile this file and link it with other files to        *
00014  *   produce an executable, this file does not by itself cause the         *
00015  *   resulting executable to be covered by the GNU General Public          *
00016  *   License.  This exception does not however invalidate any other        *
00017  *   reasons why the executable file might be covered by the GNU General   *
00018  *   Public License.                                                       *
00019  *                                                                         *
00020  *   This library is distributed in the hope that it will be useful,       *
00021  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
00022  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU     *
00023  *   Lesser General Public License for more details.                       *
00024  *                                                                         *
00025  *   You should have received a copy of the GNU General Public             *
00026  *   License along with this library; if not, write to the Free Software   *
00027  *   Foundation, Inc., 59 Temple Place,                                    *
00028  *   Suite 330, Boston, MA  02111-1307  USA                                *
00029  *                                                                         *
00030  ***************************************************************************/
00031 #ifndef __SYSTEM_MODEL__
00032 #define __SYSTEM_MODEL__
00033 
00034 #include "../pdf/conditionalpdf.h"
00035 
00036 namespace BFL
00037 {
00038 
00048   template<typename T> class SystemModel
00049     {
00050     protected:
00051 
00053       /* @bug Since, for now, the library only supports only conditional
00054          arguments of the same type, both X and U have to be of the same
00055          type (ie both continu or both discrete!).  I imagine there must
00056          be systems for which this approach is not general enough @see
00057          ConditionalPdf
00058       */
00059       ConditionalPdf<T,T>* _SystemPdf;
00060 
00062       bool _systemWithoutInputs;
00063 
00064     public:
00066 
00070       SystemModel(ConditionalPdf<T,T>* systempdf=NULL);
00071 
00073       virtual ~SystemModel();
00074 
00077 
00079 
00081       int StateSizeGet() const;
00082 
00084       bool SystemWithoutInputs() const;
00085 
00086       // NO LONGER RELEVANT
00087       // void StateSizeSet(int); // necessary??
00088       // Get Input Size
00089       /* @return the statesize of the system
00090        */
00091       // int InputSizeGet() const;
00092       // void InputSizeSet(int); // necessary??
00093 
00095 
00097       ConditionalPdf<T,T>* SystemPdfGet();
00098 
00100 
00102       void SystemPdfSet(ConditionalPdf<T,T>* pdf);
00103 
00105 
00117       T Simulate (const T& x, const T& u, int sampling_method = DEFAULT, void * sampling_args = NULL);
00119 
00131       T Simulate (const T& x, int sampling_method = DEFAULT, void * sampling_args = NULL);
00132 
00134 
00140       Probability ProbabilityGet(const T& x_k, const T& x_kminusone, const T& u );
00141 
00143 
00148       Probability ProbabilityGet(const T& x_k, const T& x_kminusone );
00149 
00150 
00151     };
00152 
00153 #include "systemmodel.cpp"
00154 
00155 } // End namespace BFL
00156 
00157 #endif // __SYSTEM_MODEL__


bfl
Author(s): Klaas Gadeyne, Wim Meeussen, Tinne Delaet and many others. See web page for a full contributor list. ROS package maintained by Wim Meeussen.
autogenerated on Sun Oct 5 2014 22:29:53