A sparse MPC solver for walking motion generation.
as_matrix_ecL.h
Go to the documentation of this file.
1 
8 #ifndef AS_MATRIX_ECL_H
9 #define AS_MATRIX_ECL_H
10 
11 
12 /****************************************
13  * INCLUDES
14  ****************************************/
15 
16 #include "smpc_common.h"
17 #include "as_problem_param.h"
18 
19 
22 
23 /****************************************
24  * TYPEDEFS
25  ****************************************/
26 
27 using namespace std;
28 
29 namespace AS
30 {
35  class matrix_ecL
36  {
37  public:
38  /*********** Constructors / Destructors ************/
39  matrix_ecL(const int);
40  ~matrix_ecL();
41 
42  void form (const problem_parameters&);
43 
44  void solve_backward (const int, double *) const;
45  void solve_forward (const int, double *, const int start_ind = 0) const;
46 
47  double *ecL;
48  double **ecL_diag;
49  double **ecL_ndiag;
50 
51  private:
52  void chol_dec (double *);
53 
54  void form_iQBiPB (const double *, const double *, const double, double*);
55  void form_iQAT (const double, const double, const double *);
56  void form_AiQATiQBiPB (const problem_parameters&, const state_parameters&, double *);
57 
58  void form_L_non_diag(const double *, double *);
59  void form_L_diag(const double *, double *);
60 
61 
62  // intermediate results used in computation of L
63  double *iQAT;
64  };
65 }
67 
68 #endif /*AS_MATRIX_ECL_H*/
Initializes lower diagonal matrix L and performs backward and forward substitutions using this matrix...
Definition: as_matrix_ecL.h:35
A set of problem parameters.
double ** ecL_diag
Definition: as_matrix_ecL.h:48
double ** ecL_ndiag
Definition: as_matrix_ecL.h:49