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 1.4.7