61double*
mat(
int n,
int m);
69int*
imat(
int n,
int m);
77double*
zeros(
int n,
int m);
97double dot(
const double* a,
const double* b,
int n);
105double norm(
const double* a,
int n);
113void cross3(
const double* a,
const double* b,
double* c);
121int normv3(
const double* a,
double* b);
134void matcpy(
double* A,
const double* B,
int n,
int m);
145void matmul(
const char* tr,
int n,
int k,
int m,
double alpha,
const double* A,
const double* B,
double beta,
154int matinv(
double* A,
int n);
167int solve(
const char* tr,
const double* A,
const double* Y,
int n,
int m,
double* X);
188int lsq(
const double* A,
const double* y,
int n,
int m,
double* x,
double* Q);
206int filter(
double* x,
double* P,
const double* H,
const double* v,
const double* R,
int n,
int m);
223int smoother(
const double* xf,
const double* Qf,
const double* xb,
const double* Qb,
int n,
double* xs,
double* Qs);
237void matfprint(
const double* A,
int n,
int m,
int p,
int q, FILE* fp);
245void matprint(
const double* A,
int n,
int m,
int p,
int q);
MRTKLIB Foundation — Common types, standard includes, and system constants (MAXSAT,...
double * mat(int n, int m)
Allocate memory for a double matrix.
int smoother(const double *xf, const double *Qf, const double *xb, const double *Qb, int n, double *xs, double *Qs)
Combine forward and backward filters by fixed-interval smoother.
int matinv(double *A, int n)
Inverse of matrix (A = A^-1).
double * zeros(int n, int m)
Allocate a new zero matrix.
int lsq(const double *A, const double *y, int n, int m, double *x, double *Q)
Least square estimation by solving normal equation.
void matcpy(double *A, const double *B, int n, int m)
Copy matrix.
void matfprint(const double *A, int n, int m, int p, int q, FILE *fp)
Print matrix to file pointer.
int solve(const char *tr, const double *A, const double *Y, int n, int m, double *X)
Solve linear equation (X = A\Y or X = A'\Y).
void cross3(const double *a, const double *b, double *c)
Cross product of 3D vectors.
int * imat(int n, int m)
Allocate memory for an integer matrix.
int filter(double *x, double *P, const double *H, const double *v, const double *R, int n, int m)
Kalman filter state update.
void fatalfunc_t(const char *)
Fatal callback function type for allocation failures.
void matprint(const double *A, int n, int m, int p, int q)
Print matrix to stdout.
void add_fatal(fatalfunc_t *func)
Add fatal callback function for mat(), zeros(), imat().
double norm(const double *a, int n)
Euclidean norm of vector.
int normv3(const double *a, double *b)
Normalize 3D vector.
void matmul(const char *tr, int n, int k, int m, double alpha, const double *A, const double *B, double beta, double *C)
Multiply matrix by matrix (C = alpha*A*B + beta*C).
double dot(const double *a, const double *b, int n)
Inner product of vectors.
double * eye(int n)
Generate a new identity matrix.