Changeset 797

Show
Ignore:
Timestamp:
01/29/10 19:56:54 (15 years ago)
Author:
smidl
Message:

new objects: mgdirac + mexFnc

Files:
1 added
9 modified

Legend:

Unmodified
Added
Removed
  • applications/bdmtoolbox/mex/arena.cpp

    r779 r797  
    2727#include <mex/mex_logger.h> 
    2828#include <mex/mex_datasource.h> 
     29#include <mex/mex_function.h> 
    2930 
    3031void mexFunction ( int n_output, mxArray *output[], int n_input, const mxArray *input[] ) { 
  • applications/bdmtoolbox/mex/class_defaults.cpp

    r790 r797  
    1616#ifdef MEX 
    1717#include <mex/mex_parser.h> 
     18#include <mex/mex_function.h> 
    1819 
    1920void mexFunction ( int n_output, mxArray *output[], int n_input, const mxArray *input[] ) { 
  • applications/bdmtoolbox/mex/controlloop.cpp

    r764 r797  
    6666#include <mex/mex_logger.h> 
    6767#include <mex/mex_datasource.h> 
     68#include <mex/mex_function.h> 
    6869 
    6970void mexFunction ( int n_output, mxArray *output[], int n_input, const mxArray *input[] ) { 
  • applications/bdmtoolbox/mex/estimator.cpp

    r760 r797  
    6464#include <mex/mex_logger.h> 
    6565#include <mex/mex_datasource.h> 
     66#include <mex/mex_function.h> 
    6667 
    6768void mexFunction ( int n_output, mxArray *output[], int n_input, const mxArray *input[] ) { 
  • applications/bdmtoolbox/mex/mixef_init.cpp

    r756 r797  
    1313#ifdef MEX 
    1414#include <mex/mex_parser.h> 
     15#include <mex/mex_function.h> 
    1516 
    1617void mexFunction ( int n_output, mxArray *output[], int n_input, const mxArray *input[] ) { 
  • applications/bdmtoolbox/mex/simulator.cpp

    r756 r797  
    5353#include "mex/mex_logger.h" 
    5454#include "mex/mex_datasource.h" 
     55#include "mex/mex_function.h" 
    5556 
    5657void mexFunction ( int n_output, mxArray *output[], int n_input, const mxArray *input[] ) { 
  • library/bdm/base/bdmbase.h

    r795 r797  
    361361        }; 
    362362 
    363         //! function substitutes given value into an appropriate position 
    364         virtual void condition ( const vec &val ) {}; 
    365  
    366363        //! access function 
    367364        int dimension() const { 
     
    371368        int dimensionc() const { 
    372369                return dimc; 
     370        } 
     371        void from_setting(const Setting &set){ 
     372                UI::get(dimy, set, "dim", UI::optional); 
     373                UI::get(dimc, set, "dimc", UI::optional); 
    373374        } 
    374375}; 
  • library/bdm/estim/ekf_template.h

    r766 r797  
    6060}; 
    6161 
    62 //!Extended Kalman filter with unknown parameters in \c IM 
    63 class EKFCh_cond : public EKFCh  { 
    64 public: 
    65         void condition ( const vec &val ) { 
    66                 pfxu->condition ( val ); 
    67         }; 
    68 }; 
     62////!Extended Kalman filter with unknown parameters in \c IM 
     63// class EKFCh_cond : public EKFCh  { 
     64// public: 
     65//      void condition ( const vec &val ) { 
     66//              pfxu->condition ( val ); 
     67//      }; 
     68// }; 
    6969 
    7070} 
  • library/bdm/stat/exp_family.h

    r796 r797  
    116116        } 
    117117}; 
     118 
     119/*! Dirac delta density with predefined transformation 
     120 
     121Density of the type:\f[ f(x_t | y_t) = \delta (x_t - g(y_t)) \f] 
     122where \f$ x_t \f$ is the \c rv, \f$ y_t \f$ is the \c rvc and g is a deterministic transformation of class fn. 
     123*/ 
     124class mgdirac: public pdf{ 
     125        protected: 
     126        shared_ptr<fnc> g; 
     127        public: 
     128                vec samplecond(const vec &cond) { 
     129                        bdm_assert_debug(cond.length()==g->dimensionc(),"given cond in not compatible with g"); 
     130                        vec tmp = g->eval(cond); 
     131                        return tmp; 
     132                }  
     133                double evallogcond ( const vec &yt, const vec &cond ){ 
     134                        return std::numeric_limits< double >::max(); 
     135                } 
     136                void from_setting(const Setting& set){ 
     137                        pdf::from_setting(set); 
     138                        g=UI::build<fnc>(set,"g",UI::compulsory); 
     139                        validate(); 
     140                } 
     141                void to_setting(Setting &set) const{ 
     142                        pdf::to_setting(set); 
     143                        UI::save(g.get(), set, "g"); 
     144                } 
     145                void validate() { 
     146                        dim = g->dimension(); 
     147                        dimc = g->dimensionc(); 
     148                } 
     149}; 
     150UIREGISTER(mgdirac); 
     151 
    118152 
    119153template<class sq_T, template <typename> class TEpdf>