Bayesian Filtering Library Generated from SVN r
|
00001 // Copyright (C) 2009 Tinne De Laet <first dot last at gmail dot com> 00002 // $Id: mixtureBoostrapFilter.h 2009-02-03 tdelaet $ 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 00032 #ifndef __MIXTURE_BOOTSTRAP_FILTER__ 00033 #define __MIXTURE_BOOTSTRAP_FILTER__ 00034 00035 #include "mixtureParticleFilter.h" 00036 00037 namespace BFL 00038 { 00039 00041 00071 template <typename StateVar, typename MeasVar> class MixtureBootstrapFilter 00072 : public MixtureParticleFilter<StateVar,MeasVar> 00073 { 00074 protected: 00076 virtual bool UpdateInternal(SystemModel<StateVar>* const sysmodel, 00077 const StateVar& u, 00078 MeasurementModel<MeasVar,StateVar>* const measmodel, 00079 const MeasVar& z, 00080 const StateVar& s); 00081 00082 public: 00084 00092 MixtureBootstrapFilter(Mixture<StateVar> * prior, 00093 int resampleperiod = 0, 00094 double resamplethreshold = 0, 00095 int resamplescheme = DEFAULT_RS, 00096 int maintainMixturePeriod = 1 ); 00097 00099 00108 MixtureBootstrapFilter(Mixture<StateVar> * prior, 00109 Mixture<StateVar> * post, 00110 int resampleperiod = 0, 00111 double resamplethreshold = 0, 00112 int resamplescheme = DEFAULT_RS, 00113 int maintainMixturePeriod = 1 ); 00114 00116 virtual ~MixtureBootstrapFilter(); 00117 00118 // Default Copy constructor will do 00119 00120 }; 00121 00122 #include "mixtureBootstrapFilter.cpp" 00123 00124 } 00125 00126 #endif // __MIXTURE_BOOTSTRAP_FILTER__