A sparse MPC solver for walking motion generation (old version).
|
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*/