mixpp: ekf_template.h Source File

ekf_template.h

Go to the documentation of this file.
00001
00013 #ifndef EKF_TEMPLATE_H
00014 #define EKF_TEMPLATE_H
00015 
00016 #include "kalman.h"
00017
00018 namespace bdm {
00019
00021 class EKFful_unQR : public EKFfull  {
00022 public:
00023     void condition ( const vec &QR0 ) {
00024         Q = diag ( QR0 ( 0, dimension() - 1 ) );
00025         R = diag ( QR0 ( dimension(), dimension() + dimy - 1 ) );
00026     };
00027 };
00028
00030 class EKFCh_dQ : public EKFCh {
00031 public:
00032     root* _copy_() const {
00033         return new EKFCh_dQ(*this);
00034     }
00035
00037     void bayes( const vec &yt , const vec &cond) {
00038         vec ut=cond.left(dimc-dimension());
00039         vec dQt=cond.right(dimension());
00040         Q.setD ( dQt, 0 );
00041         //from EKF
00042         preA.set_submatrix ( dimy + dimension(), dimy, Q._Ch() );
00043
00044         EKFCh::bayes(yt,ut);
00045     };
00046     void validate() {
00047         EKFCh::validate();
00048         dimc += dimension();
00049     }
00050 };
00051
00053 class EKFCh_chQ : public EKFCh {
00054 public:
00055     void condition ( const vec &chQ0 ) {
00056         Q.setCh ( chQ0 );
00057         //from EKF
00058         preA.set_submatrix ( dimy + dimension(), dimension(), Q._Ch() );
00059     };
00060 };
00061
00063 // class EKFCh_cond : public EKFCh  {
00064 // public:
00065 //      void condition ( const vec &val ) {
00066 //              pfxu->condition ( val );
00067 //      };
00068 // };
00069
00070 }
00071 #endif //EKF_TEMP_H

Generated on 2 Dec 2013 for mixpp by  doxygen 1.4.7