qpOASES 3.2.1
An Implementation of the Online Active Set Strategy
MessageHandling.hpp
Go to the documentation of this file.
1/*
2 * This file is part of qpOASES.
3 *
4 * qpOASES -- An Implementation of the Online Active Set Strategy.
5 * Copyright (C) 2007-2017 by Hans Joachim Ferreau, Andreas Potschka,
6 * Christian Kirches et al. All rights reserved.
7 *
8 * qpOASES is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either
11 * version 2.1 of the License, or (at your option) any later version.
12 *
13 * qpOASES is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
16 * See the GNU Lesser General Public License for more details.
17 *
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with qpOASES; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21 *
22 */
23
24
35#ifndef QPOASES_MESSAGEHANDLING_HPP
36#define QPOASES_MESSAGEHANDLING_HPP
37
38
39#include <stdio.h>
40#include <string.h>
41
42#ifdef __DEBUG__
43#include <assert.h>
44#endif
45
46#include <qpOASES/Constants.hpp>
47
48
50
51
53extern FILE* stdFile;
54
55
65{
67/* miscellaneous */
80/* Indexlist */
87/* SubjectTo / Bounds / Constraints */
99/* QProblem */
196/* SQProblem */
199/* Utils */
204/* Options */
206/* SolutionAnalysis */
208/* Benchmark */
215/* Sparse matrices */
218/* Dropping of infeasible constraints */
220/* Schur complement computations */
225/* Simple exitflags */
232
233
245{
246 /*
247 * INTERNAL DATA STRUCTURES
248 */
249 public:
257 typedef struct {
259 const char* data;
263
264
265 /*
266 * PUBLIC MEMBER FUNCTIONS
267 */
268 public:
271
273 MessageHandling( FILE* _outputFile
274 );
275
277 MessageHandling( VisibilityStatus _errorVisibility,
278 VisibilityStatus _warningVisibility,
279 VisibilityStatus _infoVisibility
280 );
281
283 MessageHandling( FILE* _outputFile,
284 VisibilityStatus _errorVisibility,
285 VisibilityStatus _warningVisibility,
286 VisibilityStatus _infoVisibility
287 );
288
291 );
292
295
298 );
299
300
308 const char* additionaltext,
309 const char* functionname,
310 const char* filename,
311 const unsigned long linenumber,
312 VisibilityStatus localVisibilityStatus
315 );
316
322 const char* additionaltext,
323 const char* functionname,
324 const char* filename,
325 const unsigned long linenumber,
326 VisibilityStatus localVisibilityStatus
329 );
330
335 const char* additionaltext,
336 const char* functionname,
337 const char* filename,
338 const unsigned long linenumber,
339 VisibilityStatus localVisibilityStatus
342 );
343
344
348
349
353
354
358
362
366
369 inline FILE* getOutputFile( ) const;
370
373 inline int_t getErrorCount( ) const;
374
375
377 inline void setErrorVisibilityStatus( VisibilityStatus _errorVisibility
378 );
379
381 inline void setWarningVisibilityStatus( VisibilityStatus _warningVisibility
382 );
383
385 inline void setInfoVisibilityStatus( VisibilityStatus _infoVisibility
386 );
387
389 inline void setOutputFile( FILE* _outputFile
390 );
391
395 inline returnValue setErrorCount( int_t _errorCount
396 );
397
400 static const char* getErrorCodeMessage( const returnValue _returnValue
401 );
402
403
404 /*
405 * PROTECTED MEMBER FUNCTIONS
406 */
407 protected:
412 returnValue RETnumber,
413 const char* additionaltext,
414 const char* functionname,
415 const char* filename,
416 const unsigned long linenumber,
417 VisibilityStatus localVisibilityStatus,
420 const char* RETstring
421 );
422
423
424 /*
425 * PROTECTED MEMBER VARIABLES
426 */
427 protected:
435};
436
437
438#ifndef __FILE__
440 #define __FILE__ 0
441#endif
442
443#ifndef __LINE__
445 #define __LINE__ 0
446#endif
447
449/*#define __FUNC__ 0*/
450#define __FUNC__ ("(no function name provided)")
451/*#define __FUNC__ __func__*/
452/*#define __FUNC__ __FUNCTION__*/
453
454
456#define THROWERROR(retval) ( getGlobalMessageHandler( )->throwError((retval),0,__FUNC__,__FILE__,__LINE__,VS_VISIBLE) )
457
459#define THROWWARNING(retval) ( getGlobalMessageHandler( )->throwWarning((retval),0,__FUNC__,__FILE__,__LINE__,VS_VISIBLE) )
460
462#define THROWINFO(retval) ( getGlobalMessageHandler( )->throwInfo((retval),0,__FUNC__,__FILE__,__LINE__,VS_VISIBLE) )
463
464
469
470
472
474
475#endif /* QPOASES_MESSAGEHANDLING_HPP */
476
477
478/*
479 * end of file
480 */
BEGIN_NAMESPACE_QPOASES FILE * stdFile
Definition: MessageHandling.cpp:49
MessageHandling * getGlobalMessageHandler()
Definition: MessageHandling.cpp:615
returnValue
Defines all symbols for global return values.
Definition: MessageHandling.hpp:65
@ RET_BOUND_ALREADY_ACTIVE
Definition: MessageHandling.hpp:166
@ RET_INDEXLIST_CORRUPTED
Definition: MessageHandling.hpp:83
@ RET_SIMPLE_STATUS_M2
Definition: MessageHandling.hpp:229
@ RET_HESSIAN_NOT_SPD
Definition: MessageHandling.hpp:170
@ RET_BENCHMARK_SUCCESSFUL
Definition: MessageHandling.hpp:214
@ RET_INIT_FAILED_INFEASIBILITY
Definition: MessageHandling.hpp:108
@ RET_ENSURELI_DROPPED
Definition: MessageHandling.hpp:219
@ RET_EPS_MUST_BE_POSITVE
Definition: MessageHandling.hpp:182
@ RET_CONSTRAINTS_NOT_SPECIFIED
Definition: MessageHandling.hpp:136
@ RET_NO_EXTERN_SOLVER
Definition: MessageHandling.hpp:116
@ RET_OPTIMAL_SOLUTION_FOUND
Definition: MessageHandling.hpp:130
@ RET_REMOVE_FROM_ACTIVESET
Definition: MessageHandling.hpp:153
@ RET_UNABLE_TO_ANALYSE_QPROBLEM
Definition: MessageHandling.hpp:207
@ RET_NO_HESSIAN_SPECIFIED
Definition: MessageHandling.hpp:180
@ RET_MATRIX_SHIFT_FAILED
Definition: MessageHandling.hpp:172
@ RET_INFO_UNDEFINED
Definition: MessageHandling.hpp:74
@ RET_INITIAL_QP_SOLVED
Definition: MessageHandling.hpp:212
@ RET_QPOBJECT_NOT_SETUP
Definition: MessageHandling.hpp:100
@ RET_LI_RESOLVED
Definition: MessageHandling.hpp:161
@ TERMINAL_LIST_ELEMENT
Definition: MessageHandling.hpp:66
@ RET_HOTSTART_FAILED
Definition: MessageHandling.hpp:123
@ RET_SETUP_BOUND_FAILED
Definition: MessageHandling.hpp:93
@ RET_UNABLE_TO_READ_BENCHMARK
Definition: MessageHandling.hpp:210
@ RET_ALL_BOUNDS_ACTIVE
Definition: MessageHandling.hpp:167
@ RET_NO_GLOBAL_MESSAGE_OUTPUTFILE
Definition: MessageHandling.hpp:175
@ RET_ENSURELI_FAILED_TQ
Definition: MessageHandling.hpp:163
@ RET_QP_NOT_SOLVED
Definition: MessageHandling.hpp:119
@ RET_LINEARLY_INDEPENDENT
Definition: MessageHandling.hpp:160
@ RET_NO_CHOLESKY_WITH_INITIAL_GUESS
Definition: MessageHandling.hpp:115
@ RET_UPDATEMATRICES_FAILED
Definition: MessageHandling.hpp:197
@ RET_ITERATION_STARTED
Definition: MessageHandling.hpp:126
@ RET_INIT_FAILED_CHOLESKY
Definition: MessageHandling.hpp:106
@ RET_QP_ALREADY_INITIALISED
Definition: MessageHandling.hpp:101
@ RET_INIT_FAILED_TQ
Definition: MessageHandling.hpp:105
@ RET_INITIAL_BOUNDS_STATUS_NYI
Definition: MessageHandling.hpp:192
@ RET_ALREADY_ENABLED
Definition: MessageHandling.hpp:178
@ RET_UNABLE_TO_WRITE_FILE
Definition: MessageHandling.hpp:201
@ RET_UNABLE_TO_OPEN_FILE
Definition: MessageHandling.hpp:200
@ RET_ADDINDEX_FAILED
Definition: MessageHandling.hpp:89
@ RET_FIX_BOUNDS_FOR_LP
Definition: MessageHandling.hpp:194
@ RET_LINEARLY_DEPENDENT
Definition: MessageHandling.hpp:159
@ RET_QP_UNBOUNDED
Definition: MessageHandling.hpp:117
@ RET_HOMOTOPY_STEP_FAILED
Definition: MessageHandling.hpp:131
@ RET_USE_REGULARISATION_FOR_LP
Definition: MessageHandling.hpp:195
@ RET_ADD_TO_ACTIVESET
Definition: MessageHandling.hpp:154
@ RET_CANNOT_REGULARISE_IDENTITY
Definition: MessageHandling.hpp:185
@ RET_INDEXLIST_INTERSECT_FAILED
Definition: MessageHandling.hpp:86
@ RET_INIT_SUCCESSFUL
Definition: MessageHandling.hpp:111
@ RET_SIMPLE_STATUS_P0
Definition: MessageHandling.hpp:227
@ RET_DIV_BY_ZERO
Definition: MessageHandling.hpp:69
@ RET_SETUP_AUXILIARYQP_FAILED
Definition: MessageHandling.hpp:114
@ RET_REMOVECONSTRAINT_FAILED
Definition: MessageHandling.hpp:151
@ RET_CYCLING_RESOLVED
Definition: MessageHandling.hpp:143
@ RET_STEPDIRECTION_DETERMINATION_FAILED
Definition: MessageHandling.hpp:128
@ RET_QR_FACTORISATION_FAILED
Definition: MessageHandling.hpp:222
@ RET_STEPDIRECTION_FAILED_CHOLESKY
Definition: MessageHandling.hpp:140
@ RET_INITIALISATION_STARTED
Definition: MessageHandling.hpp:122
@ RET_ERROR_IN_CONSTRAINTPRODUCT
Definition: MessageHandling.hpp:193
@ RET_ENABLECONSTRAINTS_FAILED
Definition: MessageHandling.hpp:177
@ RET_INVALID_FACTORISATION_FLAG
Definition: MessageHandling.hpp:137
@ RET_REMOVEINDEX_FAILED
Definition: MessageHandling.hpp:90
@ RET_WARNING_UNDEFINED
Definition: MessageHandling.hpp:73
@ RET_STEPSIZE
Definition: MessageHandling.hpp:144
@ RET_ENSURELI_FAILED_CYCLING
Definition: MessageHandling.hpp:165
@ RET_ADDCONSTRAINT_FAILED
Definition: MessageHandling.hpp:147
@ RET_UPDATEMATRICES_FAILED_AS_QP_NOT_SOLVED
Definition: MessageHandling.hpp:198
@ RET_ADDBOUND_FAILED
Definition: MessageHandling.hpp:149
@ RET_NO_SPARSE_SOLVER
Definition: MessageHandling.hpp:224
@ RET_UNABLE_TO_READ_FILE
Definition: MessageHandling.hpp:202
@ RET_USING_REGULARISATION
Definition: MessageHandling.hpp:181
@ RET_SETUP_CONSTRAINT_FAILED
Definition: MessageHandling.hpp:94
@ RET_UNABLE_TO_SAVE_QPDATA
Definition: MessageHandling.hpp:138
@ RET_INDEXLIST_OUTOFBOUNDS
Definition: MessageHandling.hpp:84
@ RET_CANNOT_REGULARISE_SPARSE
Definition: MessageHandling.hpp:186
@ RET_NOT_YET_IMPLEMENTED
Definition: MessageHandling.hpp:79
@ RET_ADD_TO_ACTIVESET_FAILED
Definition: MessageHandling.hpp:156
@ RET_OBTAINING_WORKINGSET_FAILED
Definition: MessageHandling.hpp:112
@ RET_INVALID_ARGUMENTS
Definition: MessageHandling.hpp:71
@ RET_WORKINGSET_UPDATE_FAILED
Definition: MessageHandling.hpp:134
@ RET_INDEXLIST_ADD_FAILED
Definition: MessageHandling.hpp:85
@ RET_NO_DIAGONAL_AVAILABLE
Definition: MessageHandling.hpp:216
@ RET_DIAGONAL_NOT_INITIALISED
Definition: MessageHandling.hpp:217
@ RET_ZERO_HESSIAN_ASSUMED
Definition: MessageHandling.hpp:190
@ RET_HOTSTART_FAILED_AS_QP_NOT_INITIALISED
Definition: MessageHandling.hpp:125
@ RET_INERTIA_CORRECTION_FAILED
Definition: MessageHandling.hpp:223
@ RET_CONSTRAINTS_ARE_NOT_SCALED
Definition: MessageHandling.hpp:191
@ RET_INIT_FAILED_HOTSTART
Definition: MessageHandling.hpp:107
@ RET_SHIFTING_FAILED
Definition: MessageHandling.hpp:97
@ RET_ADDCONSTRAINT_FAILED_INFEASIBILITY
Definition: MessageHandling.hpp:148
@ RET_OPTIONS_ADJUSTED
Definition: MessageHandling.hpp:205
@ RET_SHIFT_DETERMINATION_FAILED
Definition: MessageHandling.hpp:127
@ RET_CONSTRAINT_ALREADY_ACTIVE
Definition: MessageHandling.hpp:157
@ RET_ROTATING_FAILED
Definition: MessageHandling.hpp:98
@ RET_REGSTEPS_MUST_BE_POSITVE
Definition: MessageHandling.hpp:183
@ RET_NO_REGSTEP_NWSR
Definition: MessageHandling.hpp:187
@ RET_SWAPINDEX_FAILED
Definition: MessageHandling.hpp:91
@ RET_DISABLECONSTRAINTS_FAILED
Definition: MessageHandling.hpp:176
@ RET_ADDBOUND_FAILED_INFEASIBILITY
Definition: MessageHandling.hpp:150
@ RET_HOTSTART_STOPPED_INFEASIBILITY
Definition: MessageHandling.hpp:132
@ RET_SIMPLE_STATUS_M1
Definition: MessageHandling.hpp:228
@ RET_ALL_CONSTRAINTS_ACTIVE
Definition: MessageHandling.hpp:158
@ RET_BENCHMARK_ABORTED
Definition: MessageHandling.hpp:211
@ RET_STEPLENGTH_DETERMINATION_FAILED
Definition: MessageHandling.hpp:129
@ RET_NOTHING_TO_DO
Definition: MessageHandling.hpp:92
@ RET_MAX_NWSR_REACHED
Definition: MessageHandling.hpp:135
@ RET_MOVING_BOUND_FAILED
Definition: MessageHandling.hpp:95
@ RET_INDEXLIST_EXCEEDS_MAX_LENGTH
Definition: MessageHandling.hpp:82
@ RET_CONSTRAINT_NOT_ACTIVE
Definition: MessageHandling.hpp:168
@ RET_NO_INIT_WITH_STANDARD_SOLVER
Definition: MessageHandling.hpp:102
@ RET_FILEDATA_INCONSISTENT
Definition: MessageHandling.hpp:203
@ RET_BOUND_NOT_ACTIVE
Definition: MessageHandling.hpp:169
@ RET_QP_INFEASIBLE
Definition: MessageHandling.hpp:118
@ RET_ERROR_UNDEFINED
Definition: MessageHandling.hpp:72
@ RET_CHOLESKY_OF_ZERO_HESSIAN
Definition: MessageHandling.hpp:189
@ RET_REMOVEBOUND_FAILED
Definition: MessageHandling.hpp:152
@ RET_MATRIX_FACTORISATION_FAILED
Definition: MessageHandling.hpp:173
@ RET_ALREADY_DISABLED
Definition: MessageHandling.hpp:179
@ RET_INDEX_OUT_OF_BOUNDS
Definition: MessageHandling.hpp:70
@ RET_KKT_MATRIX_SINGULAR
Definition: MessageHandling.hpp:221
@ RET_CYCLING_NOT_RESOLVED
Definition: MessageHandling.hpp:142
@ RET_SETUPSUBJECTTOTYPE_FAILED
Definition: MessageHandling.hpp:146
@ RET_QP_SOLUTION_STARTED
Definition: MessageHandling.hpp:213
@ RET_INIT_FAILED
Definition: MessageHandling.hpp:104
@ RET_PRINT_ITERATION_FAILED
Definition: MessageHandling.hpp:174
@ RET_REMOVE_FROM_ACTIVESET_FAILED
Definition: MessageHandling.hpp:155
@ RET_HESSIAN_ALREADY_REGULARISED
Definition: MessageHandling.hpp:184
@ RET_HOTSTART_STOPPED_UNBOUNDEDNESS
Definition: MessageHandling.hpp:133
@ RET_INDEXLIST_MUST_BE_REORDERD
Definition: MessageHandling.hpp:81
@ RET_MOVING_CONSTRAINT_FAILED
Definition: MessageHandling.hpp:96
@ RET_CYCLING_DETECTED
Definition: MessageHandling.hpp:141
@ RET_FEWER_REGSTEPS_NWSR
Definition: MessageHandling.hpp:188
@ RET_INIT_FAILED_REGULARISATION
Definition: MessageHandling.hpp:110
@ RET_STEPSIZE_NONPOSITIVE
Definition: MessageHandling.hpp:145
@ RET_INDEX_ALREADY_OF_DESIRED_STATUS
Definition: MessageHandling.hpp:88
@ RET_HESSIAN_INDEFINITE
Definition: MessageHandling.hpp:171
@ SUCCESSFUL_RETURN
Definition: MessageHandling.hpp:68
@ RET_SETUP_WORKINGSET_FAILED
Definition: MessageHandling.hpp:113
@ RET_PRINTLEVEL_CHANGED
Definition: MessageHandling.hpp:78
@ RET_INIT_FAILED_UNBOUNDEDNESS
Definition: MessageHandling.hpp:109
@ RET_UNKNOWN_BUG
Definition: MessageHandling.hpp:77
@ RET_HOTSTART_FAILED_TO_INIT
Definition: MessageHandling.hpp:124
@ RET_STEPDIRECTION_FAILED_TQ
Definition: MessageHandling.hpp:139
@ RET_EWI_UNDEFINED
Definition: MessageHandling.hpp:75
@ RET_ENSURELI_FAILED
Definition: MessageHandling.hpp:162
@ RET_UNABLE_TO_SOLVE_QP
Definition: MessageHandling.hpp:121
@ RET_SIMPLE_STATUS_P1
Definition: MessageHandling.hpp:226
@ RET_AVAILABLE_WITH_LINUX_ONLY
Definition: MessageHandling.hpp:76
@ RET_NWSR_SET_TO_ONE
Definition: MessageHandling.hpp:209
@ RET_ENSURELI_FAILED_NOINDEX
Definition: MessageHandling.hpp:164
@ RET_SIMPLE_STATUS_M3
Definition: MessageHandling.hpp:230
@ RET_RESET_FAILED
Definition: MessageHandling.hpp:103
@ RET_QP_SOLVED
Definition: MessageHandling.hpp:120
VisibilityStatus
Definition: Types.hpp:225
int int_t
Definition: Types.hpp:180
#define END_NAMESPACE_QPOASES
Definition: Types.hpp:110
#define BEGIN_NAMESPACE_QPOASES
Definition: Types.hpp:107
Handles all kind of error messages, warnings and other information.
Definition: MessageHandling.hpp:245
returnValue setErrorCount(int_t _errorCount)
Definition: MessageHandling.ipp:127
returnValue throwWarning(returnValue Wnumber, const char *additionaltext, const char *functionname, const char *filename, const unsigned long linenumber, VisibilityStatus localVisibilityStatus)
Definition: MessageHandling.cpp:370
returnValue throwError(returnValue Enumber, const char *additionaltext, const char *functionname, const char *filename, const unsigned long linenumber, VisibilityStatus localVisibilityStatus)
Definition: MessageHandling.cpp:347
FILE * outputFile
Definition: MessageHandling.hpp:432
void setErrorVisibilityStatus(VisibilityStatus _errorVisibility)
Definition: MessageHandling.ipp:91
VisibilityStatus getInfoVisibilityStatus() const
Definition: MessageHandling.ipp:64
returnValue throwInfo(returnValue Inumber, const char *additionaltext, const char *functionname, const char *filename, const unsigned long linenumber, VisibilityStatus localVisibilityStatus)
Definition: MessageHandling.cpp:393
MessageHandling()
Definition: MessageHandling.cpp:241
MessageHandling & operator=(const MessageHandling &rhs)
Definition: MessageHandling.cpp:328
VisibilityStatus infoVisibility
Definition: MessageHandling.hpp:430
FILE * getOutputFile() const
Definition: MessageHandling.ipp:73
~MessageHandling()
Definition: MessageHandling.cpp:316
int_t errorCount
Definition: MessageHandling.hpp:434
returnValue listAllMessages()
Definition: MessageHandling.cpp:432
void setOutputFile(FILE *_outputFile)
Definition: MessageHandling.ipp:118
int_t getErrorCount() const
Definition: MessageHandling.ipp:82
static const char * getErrorCodeMessage(const returnValue _returnValue)
Definition: MessageHandling.cpp:570
void setWarningVisibilityStatus(VisibilityStatus _warningVisibility)
Definition: MessageHandling.ipp:100
returnValue throwMessage(returnValue RETnumber, const char *additionaltext, const char *functionname, const char *filename, const unsigned long linenumber, VisibilityStatus localVisibilityStatus, const char *RETstring)
Definition: MessageHandling.cpp:461
VisibilityStatus getWarningVisibilityStatus() const
Definition: MessageHandling.ipp:55
VisibilityStatus getErrorVisibilityStatus() const
Definition: MessageHandling.ipp:46
void setInfoVisibilityStatus(VisibilityStatus _infoVisibility)
Definition: MessageHandling.ipp:109
returnValue reset()
Definition: MessageHandling.cpp:416
VisibilityStatus warningVisibility
Definition: MessageHandling.hpp:429
VisibilityStatus errorVisibility
Definition: MessageHandling.hpp:428
Data structure for entries in global message list.
Definition: MessageHandling.hpp:257
const char * data
Definition: MessageHandling.hpp:259
returnValue key
Definition: MessageHandling.hpp:258
VisibilityStatus globalVisibilityStatus
Definition: MessageHandling.hpp:260