Go to the documentation of this file.
18 static const int kUseMKL = 1;
20 static const int kUseMKL = 0;
24 static const int kUseEigen = 1;
26 static const int kUseEigen = 0;
30 static const int kUseClap = 1;
32 static const int kUseClap = 0;
36 static const int kUseBLAS = 1;
38 static const int kUseBLAS = 0;
Stores info about a Cholesky decomposition.
Definition: linalg.h:53
void * fact
pointer to Eigen data
Definition: linalg.h:57
MatrixLinearAlgebraLibrary
List of supported linear algebra libraries.
Definition: linalg.h:82
CholeskyInfo DefaultCholeskyInfo()
Construct a default CholeskyInfo object.
Definition: linalg.c:22
int success
0 if success, failure otherwise
Definition: linalg.h:55
int is_freed
has the Eigen data been freed
Definition: linalg.h:58
Matrix type and basic operations.
int MatrixCholeskySolve(Matrix *A, Matrix *b)
Solve a linear system using a precomputed Cholesky factorization.
Definition: linalg.c:134
Represents a matrix of double-precision data.
Definition: matrix.h:71
void MatrixCopyDiagonal(Matrix *dest, Matrix *src)
Copy just the diagonal element of src to the diagonal of dest.
Definition: linalg.c:215
int MatrixCholeskyFactorize(Matrix *mat)
Compute the Cholesky decomposition on the matrix A.
Definition: linalg.c:116
char uplo
'L' or 'U'
Definition: linalg.h:54
int MatrixCholeskySolveWithInfo(Matrix *A, Matrix *b, CholeskyInfo *cholinfo)
Solve a linear system using a precomputed Cholesky factorization.
Definition: linalg.c:89
void MatrixPrintLinearAlgebraLibrary()
Prints which linear algebra library is being used to stdout.
Definition: linalg.c:237
int MatrixAddition(Matrix *A, Matrix *B, double alpha)
Add two matrices of the same size, storing the result in B.
Definition: linalg.c:38
void MatrixSymmetricMultiply(Matrix *Asym, Matrix *B, Matrix *C, double alpha, double beta)
Matrix multiplication with a symmetric matrix A.
Definition: linalg.c:192
int MatrixCholeskyFactorizeWithInfo(Matrix *mat, CholeskyInfo *cholinfo)
Compute the Cholesky decomposition on the matrix A.
Definition: linalg.c:55
void FreeFactorization(CholeskyInfo *cholinfo)
Frees any data stored by the external library.
Definition: linalg.c:27
void MatrixMultiply(Matrix *A, Matrix *B, Matrix *C, bool tA, bool tB, double alpha, double beta)
Matrix multiplication with scaling.
Definition: linalg.c:153
char lib
'B' for BLAS, 'E' for eigen, 'I' for internal
Definition: linalg.h:56
enum MatrixLinearAlgebraLibrary MatrixGetLinearAlgebraLibrary()
Get the linear algebra library currently being used.
Definition: linalg.c:223