AerialVehicleControl.jl
cont_matrix_math.h
Go to the documentation of this file.
1 /*******************************************************************************
2 * Copyright (C) Marcus Greiff 2020
3 *
4 * @file cont_matrix_math.h
5 * @author Marcus Greiff
6 * @date June 2020
7 *******************************************************************************/
8 #ifndef __CONT_MATRIX_MATH_H__
9 #define __CONT_MATRIX_MATH_H__
10 
11 #include "cont_types.h"
12 
13 /***************************************************************************/
21  matrix_double_t *Amat,
22  matrix_double_t *Bmat,
23  matrix_double_t *Cmat
24 );
25 
26 /***************************************************************************/
33  matrix_double_t *Amat,
34  matrix_double_t *Bmat
35 );
36 
37 /***************************************************************************/
45  matrix_double_t *Amat,
46  matrix_double_t *Bmat,
47  matrix_double_t *Cmat
48 );
49 
50 /***************************************************************************/
57  matrix_double_t *Amat,
58  matrix_double_t *Bmat
59 );
60 
61 /***************************************************************************/
69  matrix_double_t *Amat,
70  matrix_double_t *Bmat,
71  matrix_double_t *Cmat
72 );
73 
74 /***************************************************************************/
81  matrix_double_t *Amat,
82  matrix_double_t *ATmat
83 );
84 
85 /***************************************************************************/
95  matrix_double_t *Amat,
96  matrix_double_t *Bmat
97 );
98 
99 /***************************************************************************/
109  matrix_double_t *Amat,
110  matrix_double_t *Bmat
111 );
112 
113 /*******************************************************************************
114 * External handles for the various operations, raising assertions and calling
115 * whatever library that is linked in. This is effectively the interface that is
116 * used in the controllers. Raises assertions if use dincorrectly.
117 *******************************************************************************/
118 /***************************************************************************/
121 void mat_add(matrix_double_t *Amat, matrix_double_t *Bmat, matrix_double_t *Cmat);
122 /***************************************************************************/
126 /***************************************************************************/
129 void mat_sub(matrix_double_t *Amat, matrix_double_t *Bmat, matrix_double_t *Cmat);
130 /***************************************************************************/
134 /***************************************************************************/
137 void mat_mul(matrix_double_t *Amat, matrix_double_t *Bmat, matrix_double_t *Cmat);
138 /***************************************************************************/
141 void mat_trans(matrix_double_t *Amat, matrix_double_t *ATmat);
142 /***************************************************************************/
145 void mat_sol(matrix_double_t *Amat, matrix_double_t *Bmat);
146 /***************************************************************************/
149 void mat_eigvals(matrix_double_t *Amat, matrix_double_t *Bmat);
150 
151 #endif /* __CONT_MATRIX_MATH_H__ */
mat_sol
void mat_sol(matrix_double_t *Amat, matrix_double_t *Bmat)
Compute, without changing A, the eigenvalues of a real symmetric A to B, asserts that this is done co...
Definition: cont_matrix_math.c:264
cont_types.h
matrix_double_addition_inplace
int matrix_double_addition_inplace(matrix_double_t *Amat, matrix_double_t *Bmat)
In-place matrix addition, A <– A + B.
Definition: cont_matrix_math.c:43
mat_eigvals
void mat_eigvals(matrix_double_t *Amat, matrix_double_t *Bmat)
Computethe eigenvalues of a real symmetric A to B, asserts that this is done correctly.
Definition: cont_matrix_math.c:267
matrix_double_solve_posdef
int matrix_double_solve_posdef(matrix_double_t *Amat, matrix_double_t *Bmat)
Solve the linear system AX=B, writing X into B, for PSD real A.
Definition: cont_matrix_math.c:143
matrix_double_transposition
int matrix_double_transposition(matrix_double_t *Amat, matrix_double_t *ATmat)
Matrix transposition, A^T <– transpose(A)
Definition: cont_matrix_math.c:128
matrix_double_multiplication
int matrix_double_multiplication(matrix_double_t *Amat, matrix_double_t *Bmat, matrix_double_t *Cmat)
Matrix multiplication, C <– A * B.
Definition: cont_matrix_math.c:85
matrix_double_s
Matrix object used for all matrix manipulation.
Definition: cont_types.h:50
matrix_double_subtraction
int matrix_double_subtraction(matrix_double_t *Amat, matrix_double_t *Bmat, matrix_double_t *Cmat)
Matrix subtraction, C <– A - B.
Definition: cont_matrix_math.c:56
matrix_double_subtraction_inplace
int matrix_double_subtraction_inplace(matrix_double_t *Amat, matrix_double_t *Bmat)
In-place subtraction addition, A <– A - B.
Definition: cont_matrix_math.c:72
mat_add_inplace
void mat_add_inplace(matrix_double_t *Amat, matrix_double_t *Bmat)
In-place matrix addition, A <– A + B, asserts that this is done correctly.
Definition: cont_matrix_math.c:249
mat_trans
void mat_trans(matrix_double_t *Amat, matrix_double_t *ATmat)
Matrix transposition, A^T <– transpose(A), asserts that this is done correctly.
Definition: cont_matrix_math.c:261
matrix_double_symmetric_real_eigenvalues
int matrix_double_symmetric_real_eigenvalues(matrix_double_t *Amat, matrix_double_t *Bmat)
Compute, without changing A, the eigenvalues of a real symmetric A to B.
Definition: cont_matrix_math.c:176
mat_mul
void mat_mul(matrix_double_t *Amat, matrix_double_t *Bmat, matrix_double_t *Cmat)
and asserts that this is done correctly
Definition: cont_matrix_math.c:258
mat_sub_inplace
void mat_sub_inplace(matrix_double_t *Amat, matrix_double_t *Bmat)
In-place subtraction addition, A <– A - B, asserts that this is done correctly.
Definition: cont_matrix_math.c:255
mat_sub
void mat_sub(matrix_double_t *Amat, matrix_double_t *Bmat, matrix_double_t *Cmat)
Matrix subtraction, C <– A - B, and asserts that this is done correctly.
Definition: cont_matrix_math.c:252
matrix_double_addition
int matrix_double_addition(matrix_double_t *Amat, matrix_double_t *Bmat, matrix_double_t *Cmat)
Matrix addition, C <– A + B.
Definition: cont_matrix_math.c:27
mat_add
void mat_add(matrix_double_t *Amat, matrix_double_t *Bmat, matrix_double_t *Cmat)
Matrix addition, C <– A + B, asserts that this is done correctly.
Definition: cont_matrix_math.c:246