rsLQR  0.1
linalg.h File Reference

Defines core linear algebra routines needed by the solvers. More...

#include "matrix.h"

Go to the source code of this file.

Data Structures

struct  CholeskyInfo
 Stores info about a Cholesky decomposition. More...
 

Enumerations

enum  MatrixLinearAlgebraLibrary { libBLAS = 0, libMKL = 1, libEigen = 2, libInternal = 3 }
 List of supported linear algebra libraries. More...
 

Functions

CholeskyInfo DefaultCholeskyInfo ()
 Construct a default CholeskyInfo object. More...
 
void FreeFactorization (CholeskyInfo *cholinfo)
 Frees any data stored by the external library. More...
 
int MatrixAddition (Matrix *A, Matrix *B, double alpha)
 Add two matrices of the same size, storing the result in B. More...
 
int MatrixCholeskyFactorize (Matrix *mat)
 Compute the Cholesky decomposition on the matrix A. More...
 
int MatrixCholeskyFactorizeWithInfo (Matrix *mat, CholeskyInfo *cholinfo)
 Compute the Cholesky decomposition on the matrix A. More...
 
int MatrixCholeskySolve (Matrix *A, Matrix *b)
 Solve a linear system using a precomputed Cholesky factorization. More...
 
int MatrixCholeskySolveWithInfo (Matrix *A, Matrix *b, CholeskyInfo *cholinfo)
 Solve a linear system using a precomputed Cholesky factorization. More...
 
void MatrixMultiply (Matrix *A, Matrix *B, Matrix *C, bool tA, bool tB, double alpha, double beta)
 Matrix multiplication with scaling. More...
 
void MatrixSymmetricMultiply (Matrix *Asym, Matrix *B, Matrix *C, double alpha, double beta)
 Matrix multiplication with a symmetric matrix A. More...
 
void MatrixCopyDiagonal (Matrix *dest, Matrix *src)
 Copy just the diagonal element of src to the diagonal of dest. More...
 
enum MatrixLinearAlgebraLibrary MatrixGetLinearAlgebraLibrary ()
 Get the linear algebra library currently being used. More...
 
void MatrixPrintLinearAlgebraLibrary ()
 Prints which linear algebra library is being used to stdout. More...
 

Detailed Description

Defines core linear algebra routines needed by the solvers.

Author
Brian Jackson (bjack.nosp@m.205@.nosp@m.gmail.nosp@m..com)
Version
0.1
Date
2022-01-31