kalman_helper.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00041 #ifndef KALMAN_HELPER_H
00042 #define KALMAN_HELPER_H
00043 #include "fastlib/fastlib.h"
00044
00056 struct ssm {
00057 Matrix a_mat;
00058 Matrix b_mat;
00059 Matrix c_mat;
00060 Matrix q_mat;
00061 Matrix r_mat;
00062 Matrix s_mat;
00063 };
00064
00069 void propagate_one_step(const Matrix& a_mat, const Vector& x,
00070 const Vector& w, Vector* v);
00071
00076 void propagate_one_step(const Matrix& a_mat, const Matrix& b_mat,
00077 const Vector& x, const Vector &u, const Vector& w,
00078 Vector* v);
00079
00085 void schur(const Matrix& a_mat, const Matrix& b_mat, const Matrix& c_mat,
00086 const Matrix& d_mat, Matrix* mat);
00087
00088
00092 void print_matrix(const Matrix& a_mat, const char* name);
00093
00094
00098 void matrix_concatenate_col_init(const Matrix& a_mat, const Matrix& b_mat,
00099 Matrix* x_mat);
00100
00101
00107 void matrix_concatenate_row_init(const Matrix& a_mat, const Matrix& b_mat,
00108 Matrix* x_mat);
00109
00110
00117 void extract_sub_matrix_init(const Matrix& a_mat, const int& r_in,
00118 const int& r_out, const int& c_in,
00119 const int& c_out, Matrix* x_mat);
00120
00121
00128 void extract_sub_vector_of_vector_init(const Vector& v, const int& r_in,
00129 const int& r_out, Vector* x);
00130
00138 void extract_sub_vector_of_vector(const Vector& v, const int& r_in,
00139 const int& r_out, Vector* x);
00140
00141
00148 void set_portion_of_matrix(const Matrix& a_mat, const int& r_in,
00149 const int& r_out, const int& c_in,
00150 const int& c_out, Matrix* x_mat);
00151
00152
00159 void set_portion_of_matrix(const Vector& a_mat, const int& r_in,
00160 const int& r_out, const int& c, Matrix* x_mat);
00161
00167 void RandVector(Vector &v);
00168
00174 void RandVector(const Matrix& noise_mat, Vector &v);
00175
00176 #endif