24#define MAT_ELEM(M, row, col, numrows, numcols) (M[row + col * numrows])
25#define SQRTF(x) sqrtf(x)
42#ifndef GNCUTILS_EKF_KFCORE_LINALG_H
43#define GNCUTILS_EKF_KFCORE_LINALG_H
68 void matmul(
const char* ta,
const char* tb,
int n,
int k,
int m, floating_point
alpha,
const floating_point* A,
69 const floating_point* B, floating_point beta, floating_point* C);
79 void matmulsym(
const floating_point* A_sym,
const floating_point* B,
int n,
int m, floating_point* C);
84 void mateye(floating_point* A,
int n);
102 int cholesky(floating_point* A,
const int n,
int onlyWriteLowerPart);
115 void trisolve(
const floating_point* A, floating_point* B,
int n,
int m,
const char* tp);
128 void trisolveright(
const floating_point* L, floating_point* A,
int n,
int m,
const char* tp);
149 int udu(
const floating_point* A, floating_point* U, floating_point* d,
const int n);
Definition DeadReckon.cpp:20
void trisolve(const floating_point *A, floating_point *B, int n, int m, const char *tp)
Triangular solve BLAS: ?trsm.
Definition linalg.cpp:123
void mateye(floating_point *A, int n)
Fill array with an identity matrix.
Definition linalg.cpp:72
int udu(const floating_point *A, floating_point *U, floating_point *d, const int m)
UDU decomposition of a symmetrical n x n matrix so that A = U*D*U'.
Definition linalg.cpp:152
char CHAR_R
Definition linalg.cpp:47
void symmetricrankupdate(floating_point *P, const floating_point *E, int n, int m)
Symmetric rank update. P = P - E*E'.
Definition linalg.cpp:143
void matmul(const char *ta, const char *tb, int n, int k, int m, floating_point alpha, const floating_point *A, const floating_point *B, floating_point beta, floating_point *C)
Definition linalg.cpp:51
char CHAR_N
Definition linalg.cpp:45
void matmulsym(const floating_point *A_sym, const floating_point *B, int n, int m, floating_point *C)
Multiplication of symmetric matrix A with B: C = A*B.
Definition linalg.cpp:61
char CHAR_U
Definition linalg.cpp:46
void trisolveright(const floating_point *L, floating_point *A, int n, int m, const char *tp)
Triangular solve (right hand side). BLAS: ?trsm.
Definition linalg.cpp:133
char CHAR_L
Definition linalg.cpp:48
char CHAR_T
Definition linalg.cpp:49
int cholesky(floating_point *A, const int n, int onlyWriteLowerPart)
Calculate the lower triangular matrix L, so that L*L' = A. Operation count: n^3/6 with n square roots...
Definition linalg.cpp:81
double alpha[9]
Definition nrlmsise-00.cpp:77