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_BOUNDS_HPP 00036 #define QPOASES_BOUNDS_HPP 00037 00038 00039 #include <SubjectTo.hpp> 00040 00041 00042 00050 class Bounds : public SubjectTo 00051 { 00052 /* 00053 * PUBLIC MEMBER FUNCTIONS 00054 */ 00055 public: 00057 Bounds( ); 00058 00060 Bounds( const Bounds& rhs 00061 ); 00062 00064 ~Bounds( ); 00065 00067 Bounds& operator=( const Bounds& rhs 00068 ); 00069 00070 00073 returnValue init( int n 00074 ); 00075 00076 00083 returnValue setupBound( int _number, 00084 SubjectToStatus _status 00085 ); 00086 00092 returnValue setupAllFree( ); 00093 00094 00099 returnValue moveFixedToFree( int _number 00100 ); 00101 00106 returnValue moveFreeToFixed( int _number, 00107 SubjectToStatus _status 00108 ); 00109 00113 returnValue swapFree( int number1, 00114 int number2 00115 ); 00116 00117 00120 inline int getNV( ) const; 00121 00124 inline int getNFV( ) const; 00125 00128 inline int getNBV( ) const; 00129 00132 inline int getNUV( ) const; 00133 00134 00137 inline returnValue setNFV( int n 00138 ); 00139 00142 inline returnValue setNBV( int n 00143 ); 00144 00147 inline returnValue setNUV( int n 00148 ); 00149 00150 00153 inline int getNFR( ); 00154 00157 inline int getNFX( ); 00158 00159 00162 inline Indexlist* getFree( ); 00163 00166 inline Indexlist* getFixed( ); 00167 00168 00169 /* 00170 * PROTECTED MEMBER VARIABLES 00171 */ 00172 protected: 00173 int nV; 00174 int nFV; 00175 int nBV; 00176 int nUV; 00178 Indexlist free; 00179 Indexlist fixed; 00180 }; 00181 00182 #include <Bounds.ipp> 00183 00184 #endif /* QPOASES_BOUNDS_HPP */ 00185 00186 00187 /* 00188 * end of file 00189 */