00001 
00013 #ifndef EKF_TEMP_H
00014 #define EKF_TEMP_H
00015 
00016 #include "libKF.h"
00017 
00018 using namespace itpp;
00019 
00021 class EKFful_unQR : public EKFfull , public BMcond {
00022 public:
00024         EKFful_unQR ( RV rx, RV ry,RV ru,RV rQR ) :EKFfull ( rx,ry,ru ),BMcond ( rQR ) {};
00025         void condition ( const vec &QR0 ) {
00026                 Q=diag(QR0(0,dimx-1));
00027                 R=diag(QR0(dimx,dimx+dimy-1));
00028         };
00029 };
00030 
00032 class EKFCh_unQ : public EKFCh , public BMcond {
00033 public:
00035         EKFCh_unQ ( RV rx, RV ry,RV ru,RV rQ ) :EKFCh ( rx,ry,ru ),BMcond ( rQ ) {};
00036         void condition ( const vec &Q0 ) {
00037                 Q.setD ( Q0,0 );
00038                 
00039                 preA.set_submatrix ( dimy+dimx,dimy,Q._Ch() );
00040         };
00041 };
00042 
00044 class EKFCh_cond : public EKFCh , public BMcond {
00045         public:
00047                 EKFCh_cond ( RV rx, RV ry,RV ru,RV rC ) :EKFCh ( rx,ry,ru ),BMcond ( rC ) {};
00048                 void condition ( const vec &val ) {
00049                         pfxu->condition ( val );
00050                 };
00051 };
00052 
00053 #endif //EKF_TEMP_H