qpOASES  3.2.1
An Implementation of the Online Active Set Strategy
include/qpOASES/Constraints.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_CONSTRAINTS_HPP
00037 #define QPOASES_CONSTRAINTS_HPP
00038 
00039 
00040 #include <qpOASES/SubjectTo.hpp>
00041 
00042 
00043 BEGIN_NAMESPACE_QPOASES
00044 
00045 
00056 class Constraints : public SubjectTo
00057 {
00058     /*
00059      *  PUBLIC MEMBER FUNCTIONS
00060      */
00061     public:
00063         Constraints( );
00064 
00066         Constraints(    int_t _n                        
00067                         );
00068 
00070         Constraints(    const Constraints& rhs          
00071                         );
00072 
00074         virtual ~Constraints( );
00075 
00077         Constraints& operator=( const Constraints& rhs  
00078                                 );
00079 
00080 
00084         returnValue init(   int_t _n = 0                
00085                             );
00086 
00087 
00094         returnValue setupConstraint(    int_t number,           
00095                                         SubjectToStatus _status 
00096                                         );
00097 
00103         returnValue setupAllInactive( );
00104 
00110         returnValue setupAllLower( );
00111 
00117         returnValue setupAllUpper( );
00118 
00119 
00123         returnValue moveActiveToInactive(   int_t number            
00124                                             );
00125 
00129         returnValue moveInactiveToActive(   int_t number,           
00130                                             SubjectToStatus _status 
00131                                             );
00132 
00137         returnValue flipFixed( int_t number );
00138 
00139 
00142         inline int_t getNC( ) const;
00143 
00146         inline int_t getNEC( ) const;
00147 
00150         inline int_t getNIC( ) const;
00151 
00154         inline int_t getNUC( ) const;
00155 
00158         inline int_t getNAC( ) const;
00159 
00162         inline int_t getNIAC( ) const;
00163 
00164 
00167         inline Indexlist* getActive( );
00168 
00171         inline Indexlist* getInactive( );
00172 
00173 
00185         virtual returnValue shift(  int_t offset    
00186                                     );
00187 
00195         virtual returnValue rotate( int_t offset    
00196                                     );
00197 
00198 
00203         returnValue print( );
00204 
00205 
00206     /*
00207      *  PROTECTED MEMBER FUNCTIONS
00208      */
00209     protected:
00212         returnValue clear( );
00213         
00216         returnValue copy(   const Constraints& rhs  
00217                             );
00218 
00219 
00225         returnValue setupAll(   SubjectToStatus _status 
00226                                 );
00227 
00228 
00229     /*
00230      *  PROTECTED MEMBER VARIABLES
00231      */
00232     protected:
00233         Indexlist active;       
00234         Indexlist inactive;     
00235 };
00236 
00237 END_NAMESPACE_QPOASES
00238 
00239 #include <qpOASES/Constraints.ipp>
00240 
00241 #endif  /* QPOASES_CONSTRAINTS_HPP */
00242 
00243 
00244 /*
00245  *  end of file
00246  */