A sparse MPC solver for walking motion generation (old version).
solver/chol_solve_as.h
Go to the documentation of this file.
00001 
00008 #ifndef CHOL_SOLVE_AS_H
00009 #define CHOL_SOLVE_AS_H
00010 /****************************************
00011  * INCLUDES 
00012  ****************************************/
00013 
00014 #include "smpc_common.h"
00015 #include "matrix_E.h"
00016 #include "matrix_ecL_as.h"
00017 #include "problem_param.h"
00018 
00019 
00020 /****************************************
00021  * DEFINES
00022  ****************************************/
00023 
00024 using namespace std;
00025 
00028 
00033 class chol_solve_as
00034 {
00035     public:
00036         /*********** Constructors / Destructors ************/
00037         chol_solve_as (const int);
00038         ~chol_solve_as();
00039 
00040         void solve(const problem_parameters&, const double *, const double *, double *);
00041 
00042         void up_resolve(const problem_parameters&, const double *, const int, const int *, const double *, double *);
00043 
00044         double * get_lambda(const problem_parameters&);
00045         void down_resolve(const problem_parameters&, const double *, const int, const int *, const int, const double *, double *);
00046 
00047 
00048     private:
00049         void update (const problem_parameters&, const int, const int *);
00050         void update_z (const problem_parameters&, const double *, const int, const int *, const double *);
00051         void downdate(const problem_parameters&, const int, const int, const double *);
00052 
00053         void resolve (const problem_parameters&, const double *, const int, const int *, const double *, double *);
00054 
00055         void form_sa_row(const problem_parameters&, const int, const int, double *);
00056 
00057 
00058 // ----------------------------------------------
00059 // variables
00061         double *nu;
00062 
00064         double *XiHg;
00065 
00067         matrix_E E;
00068 
00070         matrix_ecL_as ecL;
00071 
00073         double **icL;   
00074 
00076         double *icL_mem;   
00077 
00079         double *z;
00080 };
00082 #endif /*CHOL_SOLVE_AS_H*/