00001 /* 00002 * This file is part of qpOASES. 00003 * 00004 * qpOASES -- An Implementation of the Online Active Set Strategy. 00005 * Copyright (C) 2007-2008 by Hans Joachim Ferreau et al. All rights reserved. 00006 * 00007 * qpOASES is free software; you can redistribute it and/or 00008 * modify it under the terms of the GNU Lesser General Public 00009 * License as published by the Free Software Foundation; either 00010 * version 2.1 of the License, or (at your option) any later version. 00011 * 00012 * qpOASES is distributed in the hope that it will be useful, 00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00015 * Lesser General Public License for more details. 00016 * 00017 * You should have received a copy of the GNU Lesser General Public 00018 * License along with qpOASES; if not, write to the Free Software 00019 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 00020 * 00021 */ 00022 00023 00034 // 00035 00036 #ifndef QPOASES_SOLUTIONANALYSIS_HPP 00037 #define QPOASES_SOLUTIONANALYSIS_HPP 00038 00039 #include <QProblem.hpp> 00040 00042 #define QPOASES_USE_OLD_VERSION 0 00043 00044 #if QPOASES_USE_OLD_VERSION 00045 #define KKT_DIM (2 * NVMAX + NCMAX) 00046 #endif 00047 00048 class SolutionAnalysis 00049 { 00050 public: 00051 00053 SolutionAnalysis( ); 00054 00056 SolutionAnalysis( const SolutionAnalysis& rhs 00057 ); 00058 00060 ~SolutionAnalysis( ); 00061 00063 SolutionAnalysis& operator=( const SolutionAnalysis& rhs 00064 ); 00065 00067 returnValue getHessianInverse( 00068 QProblem* qp, 00069 real_t* hessianInverse 00070 ); 00071 00073 returnValue getHessianInverse( QProblemB* qp, 00074 real_t* hessianInverse 00075 ); 00076 00077 #if QPOASES_USE_OLD_VERSION 00078 returnValue getVarianceCovariance( 00079 QProblem* qp, 00080 real_t* g_b_bA_VAR, 00081 real_t* Primal_Dual_VAR 00082 ); 00083 #endif 00084 00085 private: 00086 00087 real_t delta_g_cov[ NVMAX ]; 00088 real_t delta_lb_cov[ NVMAX ]; 00089 real_t delta_ub_cov[ NVMAX ]; 00090 real_t delta_lbA_cov[ NCMAX_ALLOC ]; 00091 real_t delta_ubA_cov[ NCMAX_ALLOC ]; 00093 #if QPOASES_USE_OLD_VERSION 00094 real_t K[KKT_DIM * KKT_DIM]; 00095 #endif 00096 00097 int FR_idx[ NVMAX ]; 00098 int FX_idx[ NVMAX ]; 00099 int AC_idx[ NCMAX_ALLOC ]; 00101 real_t delta_xFR[ NVMAX ]; 00102 real_t delta_xFX[ NVMAX ]; 00103 real_t delta_yAC[ NVMAX ]; 00104 real_t delta_yFX[ NVMAX ]; 00105 }; 00106 00107 #endif // QPOASES_SOLUTIONANALYSIS_HPP