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,dimx-1)); 00025 R=diag(QR0(dimx,dimx+dimy-1)); 00026 }; 00027 }; 00028 00030 class EKFCh_dQ : public EKFCh { 00031 public: 00032 void condition ( const vec &Q0 ) { 00033 Q.setD ( Q0,0 ); 00034 //from EKF 00035 preA.set_submatrix ( dimy+dimx,dimy,Q._Ch() ); 00036 }; 00037 }; 00038 00040 class EKFCh_chQ : public EKFCh { 00041 public: 00042 void condition ( const vec &chQ0 ) { 00043 Q.setCh ( chQ0); 00044 //from EKF 00045 preA.set_submatrix ( dimy+dimx,dimy,Q._Ch() ); 00046 }; 00047 }; 00048 00050 class EKFCh_cond : public EKFCh { 00051 public: 00052 void condition ( const vec &val ) { 00053 pfxu->condition ( val ); 00054 }; 00055 }; 00056 00057 } 00058 #endif //EKF_TEMP_H