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 00035 #ifndef QPOASES_SUBJECTTO_HPP 00036 #define QPOASES_SUBJECTTO_HPP 00037 00038 00039 #include <Indexlist.hpp> 00040 00041 00042 00050 class SubjectTo 00051 { 00052 /* 00053 * PUBLIC MEMBER FUNCTIONS 00054 */ 00055 public: 00057 SubjectTo( ); 00058 00060 SubjectTo( const SubjectTo& rhs 00061 ); 00062 00064 ~SubjectTo( ); 00065 00067 SubjectTo& operator=( const SubjectTo& rhs 00068 ); 00069 00070 00073 returnValue init( int n 00074 ); 00075 00076 00080 inline SubjectToType getType( int i 00081 ) const ; 00082 00086 inline SubjectToStatus getStatus( int i 00087 ) const; 00088 00089 00093 inline returnValue setType( int i, 00094 SubjectToType value 00095 ); 00096 00100 inline returnValue setStatus( int i, 00101 SubjectToStatus value 00102 ); 00103 00104 00106 inline void setNoLower( BooleanType _status 00107 ); 00108 00110 inline void setNoUpper( BooleanType _status 00111 ); 00112 00113 00116 inline BooleanType isNoLower( ) const; 00117 00120 inline BooleanType isNoUpper( ) const; 00121 00122 00123 /* 00124 * PROTECTED MEMBER FUNCTIONS 00125 */ 00126 protected: 00130 returnValue addIndex( Indexlist* const indexlist, 00131 int newnumber, 00132 SubjectToStatus newstatus 00133 ); 00134 00138 returnValue removeIndex( Indexlist* const indexlist, 00139 int removenumber 00140 ); 00141 00145 returnValue swapIndex( Indexlist* const indexlist, 00146 int number1, 00147 int number2 00148 ); 00149 00150 00151 /* 00152 * PROTECTED MEMBER VARIABLES 00153 */ 00154 protected: 00155 SubjectToType type[NVMAX+NCMAX]; 00156 SubjectToStatus status[NVMAX+NCMAX]; 00158 BooleanType noLower; 00159 BooleanType noUpper; 00162 /* 00163 * PRIVATE MEMBER VARIABLES 00164 */ 00165 private: 00166 int size; 00167 }; 00168 00169 00170 00171 #include <SubjectTo.ipp> 00172 00173 #endif /* QPOASES_SUBJECTTO_HPP */ 00174 00175 00176 /* 00177 * end of file 00178 */