qpOASES  3.2.1
An Implementation of the Online Active Set Strategy
include/qpOASES/SubjectTo.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 
00036 #ifndef QPOASES_SUBJECTTO_HPP
00037 #define QPOASES_SUBJECTTO_HPP
00038 
00039 
00040 #include <qpOASES/Indexlist.hpp>
00041 
00042 
00043 BEGIN_NAMESPACE_QPOASES
00044 
00045 
00056 class SubjectTo
00057 {
00058     /*
00059      *  PUBLIC MEMBER FUNCTIONS
00060      */
00061     public:
00063         SubjectTo( );
00064 
00066         SubjectTo(  int_t _n                            
00067                     );
00068 
00070         SubjectTo(  const SubjectTo& rhs                
00071                     );
00072 
00074         virtual ~SubjectTo( );
00075 
00077         SubjectTo& operator=(   const SubjectTo& rhs    
00078                                 );
00079 
00080 
00084         returnValue init(   int_t _n = 0                
00085                             );
00086 
00087 
00090         inline int_t getNumberOfType(   SubjectToType _type 
00091                                         ) const;
00092 
00093 
00097         inline SubjectToType getType(   int_t i         
00098                                         ) const;
00099 
00103         inline SubjectToStatus getStatus(   int_t i     
00104                                             ) const;
00105 
00106 
00110         inline returnValue setType( int_t i,            
00111                                     SubjectToType value 
00112                                     );
00113 
00117         inline returnValue setStatus(   int_t i,                
00118                                         SubjectToStatus value   
00119                                         );
00120 
00121 
00123         inline void setNoLower( BooleanType _status     
00124                                 );
00125 
00127         inline void setNoUpper( BooleanType _status     
00128                                 );
00129 
00130 
00133         inline BooleanType hasNoLower( ) const;
00134 
00137         inline BooleanType hasNoUpper( ) const;
00138 
00139 
00151         virtual returnValue shift(  int_t offset    
00152                                     ) = 0;
00153 
00161         virtual returnValue rotate( int_t offset    
00162                                     ) = 0;
00163 
00164 
00165     /*
00166      *  PROTECTED MEMBER FUNCTIONS
00167      */
00168     protected:
00171         returnValue clear( );
00172         
00175         returnValue copy(   const SubjectTo& rhs    
00176                             );
00177 
00178 
00183         returnValue addIndex(   Indexlist* const indexlist, 
00184                                 int_t newnumber,            
00185                                 SubjectToStatus newstatus   
00186                                 );
00187 
00192         returnValue removeIndex(    Indexlist* const indexlist, 
00193                                     int_t removenumber          
00194                                     );
00195 
00200         returnValue swapIndex(  Indexlist* const indexlist, 
00201                                 int_t number1,              
00202                                 int_t number2               
00203                                 );
00204 
00205 
00206     /*
00207      *  PROTECTED MEMBER VARIABLES
00208      */
00209     protected:
00210         int_t n;                    
00212         SubjectToType* type;        
00213         SubjectToStatus* status;    
00215         BooleanType noLower;        
00216         BooleanType noUpper;        
00217 };
00218 
00219 
00220 END_NAMESPACE_QPOASES
00221 
00222 #include <qpOASES/SubjectTo.ipp>
00223 
00224 #endif  /* QPOASES_SUBJECTTO_HPP */
00225 
00226 
00227 /*
00228  *  end of file
00229  */