qpOASES  3.2.1
An Implementation of the Online Active Set Strategy
include/qpOASES/SQProblem.hpp
Go to the documentation of this file.
00001 /*
00002  *  This file is part of qpOASES.
00003  *
00004  *  qpOASES -- An Implementation of the Online Active Set Strategy.
00005  *  Copyright (C) 2007-2017 by Hans Joachim Ferreau, Andreas Potschka,
00006  *  Christian Kirches et al. All rights reserved.
00007  *
00008  *  qpOASES is free software; you can redistribute it and/or
00009  *  modify it under the terms of the GNU Lesser General Public
00010  *  License as published by the Free Software Foundation; either
00011  *  version 2.1 of the License, or (at your option) any later version.
00012  *
00013  *  qpOASES is distributed in the hope that it will be useful,
00014  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00015  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
00016  *  See the GNU Lesser General Public License for more details.
00017  *
00018  *  You should have received a copy of the GNU Lesser General Public
00019  *  License along with qpOASES; if not, write to the Free Software
00020  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
00021  *
00022  */
00023 
00024 
00038 #ifndef QPOASES_SQPROBLEM_HPP
00039 #define QPOASES_SQPROBLEM_HPP
00040 
00041 
00042 #include <qpOASES/QProblem.hpp>
00043 
00044 
00045 BEGIN_NAMESPACE_QPOASES
00046 
00047 
00059 class SQProblem : public QProblem
00060 {
00061     /* allow SolutionAnalysis class to access private members */
00062     friend class SolutionAnalysis;
00063 
00064     /*
00065      *  PUBLIC MEMBER FUNCTIONS
00066      */
00067     public:
00069         SQProblem( );
00070 
00076         SQProblem(  int_t _nV,                              
00077                     int_t _nC,                              
00078                     HessianType _hessianType = HST_UNKNOWN, 
00079                     BooleanType allocDenseMats = BT_TRUE    
00080                     );
00081 
00083         SQProblem(  const SQProblem& rhs    
00084                     );
00085 
00087         virtual ~SQProblem( );
00088 
00090         virtual SQProblem& operator=(   const SQProblem& rhs    
00091                                 );
00092 
00093 
00108         returnValue hotstart(   SymmetricMatrix *H_new,                         
00110                                 const real_t* const g_new,                      
00111                                 Matrix *A_new,                                  
00113                                 const real_t* const lb_new,                     
00115                                 const real_t* const ub_new,                     
00117                                 const real_t* const lbA_new,                    
00119                                 const real_t* const ubA_new,                    
00121                                 int_t& nWSR,                                    
00123                                 real_t* const cputime = 0,                      
00125                                 const Bounds* const guessedBounds = 0,          
00127                                 const Constraints* const guessedConstraints = 0 
00129                                 );
00130 
00145         returnValue hotstart(   const real_t* const H_new,                      
00147                                 const real_t* const g_new,                      
00148                                 const real_t* const A_new,                      
00150                                 const real_t* const lb_new,                     
00152                                 const real_t* const ub_new,                     
00154                                 const real_t* const lbA_new,                    
00156                                 const real_t* const ubA_new,                    
00158                                 int_t& nWSR,                                    
00160                                 real_t* const cputime = 0,                      
00162                                 const Bounds* const guessedBounds = 0,          
00164                                 const Constraints* const guessedConstraints = 0 
00166                                 );
00167 
00184         returnValue hotstart(   const char* const H_file,                       
00186                                 const char* const g_file,                       
00187                                 const char* const A_file,                       
00189                                 const char* const lb_file,                      
00191                                 const char* const ub_file,                      
00193                                 const char* const lbA_file,                     
00195                                 const char* const ubA_file,                     
00197                                 int_t& nWSR,                                    
00199                                 real_t* const cputime = 0,                      
00201                                 const Bounds* const guessedBounds = 0,          
00203                                 const Constraints* const guessedConstraints = 0 
00205                                 );
00206 
00225         returnValue hotstart(   const real_t* const g_new,                      
00226                                 const real_t* const lb_new,                     
00228                                 const real_t* const ub_new,                     
00230                                 const real_t* const lbA_new,                    
00232                                 const real_t* const ubA_new,                    
00234                                 int_t& nWSR,                                    
00236                                 real_t* const cputime = 0,                      
00238                                 const Bounds* const guessedBounds = 0,          
00240                                 const Constraints* const guessedConstraints = 0 
00242                                 );
00243 
00264         returnValue hotstart(   const char* const g_file,                       
00265                                 const char* const lb_file,                      
00267                                 const char* const ub_file,                      
00269                                 const char* const lbA_file,                     
00271                                 const char* const ubA_file,                     
00273                                 int_t& nWSR,                                    
00275                                 real_t* const cputime = 0,                      
00277                                 const Bounds* const guessedBounds = 0,          
00279                                 const Constraints* const guessedConstraints = 0 
00281                                 );
00282 
00283 
00284         #ifdef __MATLAB__
00285 
00288         returnValue resetMatrixPointers( );
00289         #endif
00290 
00291 
00292     /*
00293      *  PROTECTED MEMBER FUNCTIONS
00294      */
00295     protected:
00296 
00305         virtual returnValue setupNewAuxiliaryQP(    SymmetricMatrix *H_new,     
00307                                                     Matrix *A_new,              
00309                                                     const real_t *lb_new,       
00311                                                     const real_t *ub_new,       
00313                                                     const real_t *lbA_new,      
00315                                                     const real_t *ubA_new       
00317                                                     );
00318 
00327         virtual returnValue setupNewAuxiliaryQP(    const real_t* const H_new,  
00329                                                     const real_t* const A_new,  
00331                                                     const real_t *lb_new,       
00333                                                     const real_t *ub_new,       
00335                                                     const real_t *lbA_new,      
00337                                                     const real_t *ubA_new       
00339                                                     );
00340 
00341 
00342     /*
00343      *  PROTECTED MEMBER VARIABLES
00344      */
00345     protected:
00346 
00347 };
00348 
00349 
00350 END_NAMESPACE_QPOASES
00351 
00352 #include <qpOASES/SQProblem.ipp>
00353 
00354 #endif  /* QPOASES_SQPROBLEM_HPP */
00355 
00356 
00357 /*
00358  *  end of file
00359  */