You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							129 lines
						
					
					
						
							4.1 KiB
						
					
					
				
			
		
		
	
	
							129 lines
						
					
					
						
							4.1 KiB
						
					
					
				| /*
 | |
|  *	This file is part of qpOASES.
 | |
|  *
 | |
|  *	qpOASES -- An Implementation of the Online Active Set Strategy.
 | |
|  *	Copyright (C) 2007-2015 by Hans Joachim Ferreau, Andreas Potschka,
 | |
|  *	Christian Kirches et al. All rights reserved.
 | |
|  *
 | |
|  *	qpOASES is free software; you can redistribute it and/or
 | |
|  *	modify it under the terms of the GNU Lesser General Public
 | |
|  *	License as published by the Free Software Foundation; either
 | |
|  *	version 2.1 of the License, or (at your option) any later version.
 | |
|  *
 | |
|  *	qpOASES is distributed in the hope that it will be useful,
 | |
|  *	but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
|  *	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 | |
|  *	See the GNU Lesser General Public License for more details.
 | |
|  *
 | |
|  *	You should have received a copy of the GNU Lesser General Public
 | |
|  *	License along with qpOASES; if not, write to the Free Software
 | |
|  *	Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 | |
|  *
 | |
|  */
 | |
| 
 | |
| 
 | |
| /**
 | |
|  *	\file include/qpOASES_e/Flipper.h
 | |
|  *	\author Hans Joachim Ferreau, Andreas Potschka, Christian Kirches
 | |
|  *	\version 3.1embedded
 | |
|  *	\date 2007-2015
 | |
|  *
 | |
|  *	Declaration of the Options class designed to manage user-specified
 | |
|  *	options for solving a QProblem.
 | |
|  */
 | |
| 
 | |
| 
 | |
| #ifndef QPOASES_FLIPPER_H
 | |
| #define QPOASES_FLIPPER_H
 | |
| 
 | |
| 
 | |
| #include <qpOASES_e/Bounds.h>
 | |
| #include <qpOASES_e/Constraints.h>
 | |
| 
 | |
| 
 | |
| BEGIN_NAMESPACE_QPOASES
 | |
| 
 | |
| 
 | |
| /**
 | |
|  *	\brief Auxiliary class for storing a copy of the current matrix factorisations.
 | |
|  *
 | |
|  *	This auxiliary class stores a copy of the current matrix factorisations. It
 | |
|  *	is used by the classe QProblemB and QProblem in case flipping bounds are enabled.
 | |
|  *
 | |
|  *	\author Hans Joachim Ferreau, Andreas Potschka, Christian Kirches
 | |
|  *	\version 3.1embedded
 | |
|  *	\date 2007-2015
 | |
|  */
 | |
| typedef struct
 | |
| {
 | |
| 	Bounds      *bounds;			/**< Data structure for problem's bounds. */
 | |
| 	Constraints *constraints;		/**< Data structure for problem's constraints. */
 | |
| 
 | |
| 	real_t *R;						/**< Cholesky factor of H (i.e. H = R^T*R). */
 | |
| 	real_t *Q;						/**< Orthonormal quadratic matrix, A = [0 T]*Q'. */
 | |
| 	real_t *T;						/**< Reverse triangular matrix, A = [0 T]*Q'. */
 | |
| 
 | |
| 	unsigned int nV;				/**< Number of variables. */
 | |
| 	unsigned int nC;				/**< Number of constraints. */
 | |
| } Flipper;
 | |
| 
 | |
| int Flipper_calculateMemorySize( unsigned int nV, unsigned int nC );
 | |
| 
 | |
| char *Flipper_assignMemory( unsigned int nV, unsigned int nC, Flipper **mem, void *raw_memory );
 | |
| 
 | |
| Flipper *Flipper_createMemory( unsigned int nV, unsigned int nC );
 | |
| 
 | |
| /** Constructor which takes the number of bounds and constraints. */
 | |
| void FlipperCON(	Flipper* _THIS,
 | |
| 					unsigned int _nV,		/**< Number of bounds. */
 | |
| 					unsigned int _nC		/**< Number of constraints. */
 | |
| 					);
 | |
| 
 | |
| /** Copy constructor (deep copy). */
 | |
| void FlipperCPY(	Flipper* FROM,
 | |
| 					Flipper* TO
 | |
| 					);
 | |
| 
 | |
| /** Initialises object with given number of bounds and constraints.
 | |
|  *	\return SUCCESSFUL_RETURN \n
 | |
|  			RET_INVALID_ARGUMENTS */
 | |
| returnValue Flipper_init(	Flipper* _THIS,
 | |
| 							unsigned int _nV,	/**< Number of bounds. */
 | |
| 							unsigned int _nC	/**< Number of constraints. */
 | |
| 							);
 | |
| 
 | |
| 
 | |
| /** Copies current values to non-null arguments (assumed to be allocated with consistent size).
 | |
|  *	\return SUCCESSFUL_RETURN */
 | |
| returnValue Flipper_get(	Flipper* _THIS,
 | |
| 							Bounds* const _bounds,				/**< Pointer to new bounds. */
 | |
| 							real_t* const R,					/**< New matrix R. */
 | |
| 							Constraints* const _constraints,	/**< Pointer to new constraints. */
 | |
| 							real_t* const _Q,					/**< New matrix Q. */
 | |
| 							real_t* const _T					/**< New matrix T. */
 | |
| 							);
 | |
| 
 | |
| /** Assigns new values to non-null arguments.
 | |
|  *	\return SUCCESSFUL_RETURN */
 | |
| returnValue Flipper_set(	Flipper* _THIS,
 | |
| 							const Bounds* const _bounds,			/**< Pointer to new bounds. */
 | |
| 							const real_t* const _R,					/**< New matrix R. */
 | |
| 							const Constraints* const _constraints,	/**< Pointer to new constraints. */
 | |
| 							const real_t* const _Q,					/**< New matrix Q. */
 | |
| 							const real_t* const _T					/**< New matrix T. */
 | |
| 							);
 | |
| 
 | |
| /** Returns dimension of matrix T.
 | |
|  *  \return Dimension of matrix T. */
 | |
| unsigned int Flipper_getDimT( Flipper* _THIS );
 | |
| 
 | |
| 
 | |
| END_NAMESPACE_QPOASES
 | |
| 
 | |
| 
 | |
| #endif	/* QPOASES_FLIPPER_H */
 | |
| 
 | |
| 
 | |
| /*
 | |
|  *	end of file
 | |
|  */
 | |
| 
 |