acado_types.hpp
Go to the documentation of this file.
00001 /*
00002  *    This file is part of ACADO Toolkit.
00003  *
00004  *    ACADO Toolkit -- A Toolkit for Automatic Control and Dynamic Optimization.
00005  *    Copyright (C) 2008-2014 by Boris Houska, Hans Joachim Ferreau,
00006  *    Milan Vukov, Rien Quirynen, KU Leuven.
00007  *    Developed within the Optimization in Engineering Center (OPTEC)
00008  *    under supervision of Moritz Diehl. All rights reserved.
00009  *
00010  *    ACADO Toolkit is free software; you can redistribute it and/or
00011  *    modify it under the terms of the GNU Lesser General Public
00012  *    License as published by the Free Software Foundation; either
00013  *    version 3 of the License, or (at your option) any later version.
00014  *
00015  *    ACADO Toolkit is distributed in the hope that it will be useful,
00016  *    but WITHOUT ANY WARRANTY; without even the implied warranty of
00017  *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00018  *    Lesser General Public License for more details.
00019  *
00020  *    You should have received a copy of the GNU Lesser General Public
00021  *    License along with ACADO Toolkit; if not, write to the Free Software
00022  *    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
00023  *
00024  */
00025 
00026 
00034 #ifndef ACADO_TOOLKIT_ACADO_TYPES_HPP
00035 #define ACADO_TOOLKIT_ACADO_TYPES_HPP
00036 
00037 #include <acado/utils/acado_namespace_macros.hpp>
00038 
00039 BEGIN_NAMESPACE_ACADO
00040 
00042 typedef unsigned int uint;
00043 
00045 typedef bool BooleanType;
00047 #define BT_TRUE true
00048 
00049 #define BT_FALSE false
00050 
00051 #define YES true
00052 
00053 #define NO false
00054 
00056 typedef void (*cFcnPtr)( double* x, double* f, void *userData );
00057 
00059 typedef void (*cFcnDPtr)( int number, double* x, double* seed, double* f, double* df, void *userData );
00060 
00064 enum NeutralElement{
00065 
00066     NE_ZERO,
00067     NE_ONE,
00068     NE_NEITHER_ONE_NOR_ZERO
00069 };
00070 
00072 enum OperatorName{
00073 
00074     ON_SIN,
00075     ON_COS,
00076     ON_TAN,
00077     ON_ASIN,
00078     ON_ACOS,
00079     ON_ATAN,
00080     ON_LOGARITHM,
00081     ON_EXP,
00082     ON_ADDITION,
00083     ON_SUBTRACTION,
00084     ON_POWER,
00085     ON_POWER_INT,
00086     ON_PRODUCT,
00087     ON_QUOTIENT,
00088     ON_VARIABLE,
00089     ON_DOUBLE_CONSTANT,
00090     ON_DIFFERENTIAL_STATE,
00091     ON_CEXPRESSION
00092 };
00093 
00095 enum VariableType{
00096 
00097     VT_DIFFERENTIAL_STATE,
00098     VT_ALGEBRAIC_STATE,
00099     VT_CONTROL,
00100     VT_INTEGER_CONTROL,
00101     VT_PARAMETER,
00102     VT_INTEGER_PARAMETER,
00103     VT_DISTURBANCE,
00104     VT_TIME,
00105     VT_INTERMEDIATE_STATE,
00106     VT_DDIFFERENTIAL_STATE,
00107     VT_OUTPUT,
00108     VT_VARIABLE,
00109     VT_ONLINE_DATA,
00110     VT_UNKNOWN
00111 };
00112 
00113 
00116 enum MergeMethod
00117 {
00118         MM_KEEP,                        
00119         MM_REPLACE,                     
00120         MM_DUPLICATE            
00121 };
00122 
00123 
00124 
00126 enum SubBlockMatrixType{
00127 
00128     SBMT_ZERO,
00129     SBMT_ONE,
00130     SBMT_DENSE,
00131     SBMT_UNKNOWN
00132 };
00133 
00134 
00136 enum AlgebraicRelaxationType{
00137 
00138     ART_EXPONENTIAL,
00139     ART_ADAPTIVE_POLYNOMIAL,
00140     ART_UNKNOWN
00141 };
00142 
00143 
00145 enum LinearAlgebraSolver{
00146 
00147         HOUSEHOLDER_QR,
00148         GAUSS_LU,
00149     HOUSEHOLDER_METHOD,
00150         SPARSE_LU,
00151     LAS_UNKNOWN
00152 };
00153 
00154 
00156 enum ImplicitIntegratorMode{
00157 
00158         IFTR,                   
00159         IFT                             
00160 };
00161 
00162 
00164 enum MonotonicityType{
00165 
00166     MT_CONSTANT,
00167     MT_NONDECREASING,
00168     MT_NONINCREASING,
00169     MT_NONMONOTONIC,
00170     MT_UNKNOWN
00171 };
00172 
00173 
00175 enum CurvatureType{
00176 
00177     CT_CONSTANT,                     
00178     CT_AFFINE,                       
00179     CT_CONVEX,                       
00180     CT_CONCAVE,                      
00181     CT_NEITHER_CONVEX_NOR_CONCAVE,   
00182     CT_UNKNOWN                       
00183 };
00184 
00185 
00186 enum DifferentialEquationType{
00187 
00188     DET_ODE,                         
00189     DET_DAE,                         
00190     DET_UNKNOWN                      
00191 };
00192 
00193 
00194 
00196 enum StateDiscretizationType{
00197 
00198     SINGLE_SHOOTING,        
00199     MULTIPLE_SHOOTING,      
00200     COLLOCATION,            
00201     UNKNOWN_DISCRETIZATION  
00202 };
00203 
00204 
00206 enum ControlParameterizationType{
00207 
00208     CPT_CONSTANT,           
00209     CPT_LINEAR,             
00210     CPT_LINEAR_CONTINUOUS,  
00211     CPT_CUSTOMIZED,         
00212     CPT_UNKNOWN             
00213 };
00214 
00215 
00217 enum GlobalizationStrategy
00218 {
00219         GS_FULLSTEP,                                    
00220         GS_LINESEARCH,                                  
00221         GS_UNKNOWN                                              
00222 };
00223 
00224 
00226 enum InterpolationMode
00227 {
00228         IM_CONSTANT,                                    
00229         IM_LINEAR,                                              
00230         IM_QUADRATIC,                                   
00231         IM_CUBIC,                                               
00232         IM_UNKNOWN                                              
00233 };
00234 
00235 
00239 enum StateOfAggregation{
00240 
00241     SOA_FREEZING_MESH,             
00242     SOA_FREEZING_ALL,              
00243     SOA_MESH_FROZEN,               
00244     SOA_MESH_FROZEN_FREEZING_ALL,  
00245     SOA_EVERYTHING_FROZEN,         
00246     SOA_UNFROZEN,                  
00247     SOA_UNKNOWN                    
00248 };
00249 
00250 
00252 enum IntegratorType{
00253 
00254      INT_RK12,                  
00255      INT_RK23,                  
00256      INT_RK45,                  
00257      INT_RK78,                  
00258      INT_BDF,                   
00259      INT_DISCRETE,              
00260      INT_LYAPUNOV45,        
00261      INT_UNKNOWN                
00262 };
00263 
00264 
00267 enum MeasurementGrid{
00268 
00269         OFFLINE_GRID,           
00270         ONLINE_GRID             
00271 };
00272 
00273 
00276 enum UnrollOption{
00277 
00278      UNROLL,
00279      NO_UNROLL,
00280      HEURISTIC_UNROLL
00281 };
00282 
00283 
00284 
00288 enum PrintLevel
00289 {
00290     NONE,        
00291     LOW,         
00292     MEDIUM,      
00293     HIGH,        
00294     DEBUG        
00297 };
00298 
00299 enum LogRecordItemType{
00300 
00301     LRT_ENUM,
00302     LRT_VARIABLE,
00303     LRT_UNKNOWN
00304 };
00305 
00306 
00309 enum LogFrequency{
00310 
00311     LOG_AT_START,
00312     LOG_AT_END,
00313     LOG_AT_EACH_ITERATION
00314 };
00315 
00316 
00319 enum LogPrintMode
00320 {
00321         PRINT_ITEM_BY_ITEM,             
00322         PRINT_ITER_BY_ITER,             
00323         PRINT_LAST_ITER                 
00324 };
00325 
00326 
00327 enum OptionsName
00328 {
00329         CG_FORCE_DIAGONAL_HESSIAN,                                      
00330         CG_CONDENSED_HESSIAN_CHOLESKY,                          
00331         CG_MODULE_NAME,                                                         
00332         CG_EXPORT_FOLDER_NAME,                                          
00333         CG_USE_ARRIVAL_COST,                                            
00334         CG_USE_OPENMP,                                                          
00335         CG_USE_VARIABLE_WEIGHTING_MATRIX,                       
00336         CG_USE_C99,                                                                     
00337         CG_COMPUTE_COVARIANCE_MATRIX,                           
00338         CG_HARDCODE_CONSTRAINT_VALUES,                          
00339         IMPLICIT_INTEGRATOR_MODE,                                       
00340         IMPLICIT_INTEGRATOR_NUM_ITS,                            
00341         IMPLICIT_INTEGRATOR_NUM_ITS_INIT,                       
00342         UNROLL_LINEAR_SOLVER,                                           
00343         INTEGRATOR_DEBUG_MODE,
00344         OPT_UNKNOWN,
00345         MAX_NUM_INTEGRATOR_STEPS,
00346         NUM_INTEGRATOR_STEPS,
00347         INTEGRATOR_TOLERANCE,
00348         MEX_ITERATION_STEPS,                                            
00349         MEX_VERBOSE,
00350         ABSOLUTE_TOLERANCE,
00351         INITIAL_INTEGRATOR_STEPSIZE,
00352         MIN_INTEGRATOR_STEPSIZE,
00353         MAX_INTEGRATOR_STEPSIZE,
00354         STEPSIZE_TUNING,
00355         CORRECTOR_TOLERANCE,
00356         INTEGRATOR_PRINTLEVEL,
00357         LINEAR_ALGEBRA_SOLVER,
00358         ALGEBRAIC_RELAXATION,
00359         RELAXATION_PARAMETER,
00360         PRINT_INTEGRATOR_PROFILE,
00361         FEASIBILITY_CHECK,
00362         MAX_NUM_ITERATIONS,
00363         KKT_TOLERANCE,
00364         KKT_TOLERANCE_SAFEGUARD,
00365         LEVENBERG_MARQUARDT,
00366         PRINTLEVEL,
00367         PRINT_COPYRIGHT,
00368         HESSIAN_APPROXIMATION,
00369         DYNAMIC_HESSIAN_APPROXIMATION,
00370         HESSIAN_PROJECTION_FACTOR,
00371         DYNAMIC_SENSITIVITY,
00372         OBJECTIVE_SENSITIVITY,
00373         CONSTRAINT_SENSITIVITY,
00374         DISCRETIZATION_TYPE,
00375         LINESEARCH_TOLERANCE,
00376         MIN_LINESEARCH_PARAMETER,
00377         QP_SOLVER,
00378         MAX_NUM_QP_ITERATIONS,
00379         HOTSTART_QP,
00380         INFEASIBLE_QP_RELAXATION,
00381         INFEASIBLE_QP_HANDLING,
00382         USE_REALTIME_ITERATIONS,
00383         USE_REALTIME_SHIFTS,
00384         USE_IMMEDIATE_FEEDBACK,
00385         TERMINATE_AT_CONVERGENCE,
00386         USE_REFERENCE_PREDICTION,
00387         FREEZE_INTEGRATOR,
00388         INTEGRATOR_TYPE,
00389         MEASUREMENT_GRID,
00390         SAMPLING_TIME,
00391         SIMULATE_COMPUTATIONAL_DELAY,
00392         COMPUTATIONAL_DELAY_FACTOR,
00393         COMPUTATIONAL_DELAY_OFFSET,
00394         PARETO_FRONT_DISCRETIZATION,
00395         PARETO_FRONT_GENERATION,
00396         PARETO_FRONT_HOTSTART,
00397         SIMULATION_ALGORITHM,
00398         CONTROL_PLOTTING,
00399         PARAMETER_PLOTTING,
00400         OUTPUT_PLOTTING,
00401         SPARSE_QP_SOLUTION,
00402         GLOBALIZATION_STRATEGY,
00403         CONIC_SOLVER_MAXIMUM_NUMBER_OF_STEPS,
00404         CONIC_SOLVER_TOLERANCE,
00405         CONIC_SOLVER_LINE_SEARCH_TUNING,
00406         CONIC_SOLVER_BARRIER_TUNING,
00407         CONIC_SOLVER_MEHROTRA_CORRECTION,
00408         CONIC_SOLVER_PRINT_LEVEL,
00409         PRINT_SCP_METHOD_PROFILE,
00410         PLOT_RESOLUTION,
00411         FIX_INITIAL_STATE,
00412         GENERATE_TEST_FILE,
00413         GENERATE_MAKE_FILE,
00414         GENERATE_SIMULINK_INTERFACE,
00415         GENERATE_MATLAB_INTERFACE,
00416         OPERATING_SYSTEM,
00417         USE_SINGLE_PRECISION
00418 };
00419 
00420 
00423 enum LogName
00424 {
00425     LOG_NOTHING,
00426         // 1
00427         LOG_NUM_NLP_ITERATIONS, 
00428         LOG_NUM_SQP_ITERATIONS, 
00429         LOG_NUM_QP_ITERATIONS, 
00430         LOG_KKT_TOLERANCE,   
00431         LOG_OBJECTIVE_VALUE, 
00432         LOG_MERIT_FUNCTION_VALUE, 
00433         LOG_LINESEARCH_STEPLENGTH, 
00434         LOG_NORM_LAGRANGE_GRADIENT, 
00435         LOG_IS_QP_RELAXED, 
00436         // 10
00437         LOG_DUAL_RESIDUUM,
00438         LOG_PRIMAL_RESIDUUM,
00439         LOG_SURROGATE_DUALITY_GAP,
00440         LOG_NUM_INTEGRATOR_STEPS,
00441         LOG_TIME_SQP_ITERATION,
00442         LOG_TIME_CONDENSING,
00443         LOG_TIME_QP,
00444         LOG_TIME_RELAXED_QP,
00445         LOG_TIME_EXPAND,
00446         LOG_TIME_EVALUATION,
00447         // 20
00448         LOG_TIME_HESSIAN_COMPUTATION,
00449         LOG_TIME_GLOBALIZATION,
00450         LOG_TIME_SENSITIVITIES,
00451         LOG_TIME_LAGRANGE_GRADIENT,
00452         LOG_TIME_PROCESS,
00453         LOG_TIME_CONTROLLER,
00454         LOG_TIME_ESTIMATOR,
00455         LOG_TIME_CONTROL_LAW,
00456         LOG_DIFFERENTIAL_STATES, 
00457         LOG_ALGEBRAIC_STATES, 
00458         LOG_PARAMETERS, 
00459         LOG_CONTROLS, 
00460         LOG_DISTURBANCES, 
00461         LOG_INTERMEDIATE_STATES, 
00462         // 30
00463         LOG_DISCRETIZATION_INTERVALS, 
00464         LOG_STAGE_BREAK_POINTS,
00465         LOG_FEEDBACK_CONTROL,
00466         LOG_NOMINAL_CONTROLS,
00467         LOG_NOMINAL_PARAMETERS,
00468         LOG_SIMULATED_DIFFERENTIAL_STATES,
00469         LOG_SIMULATED_ALGEBRAIC_STATES,
00470         LOG_SIMULATED_CONTROLS,
00471         LOG_SIMULATED_PARAMETERS,
00472         LOG_SIMULATED_DISTURBANCES,
00473         // 40
00474         LOG_SIMULATED_INTERMEDIATE_STATES,
00475         LOG_SIMULATED_OUTPUT,
00476         LOG_PROCESS_OUTPUT,
00477     LOG_NUMBER_OF_INTEGRATOR_STEPS,
00478     LOG_NUMBER_OF_INTEGRATOR_REJECTED_STEPS,
00479     LOG_NUMBER_OF_INTEGRATOR_FUNCTION_EVALUATIONS,
00480     LOG_NUMBER_OF_BDF_INTEGRATOR_JACOBIAN_EVALUATIONS,
00481     LOG_TIME_INTEGRATOR,
00482     LOG_TIME_INTEGRATOR_FUNCTION_EVALUATIONS,
00483     LOG_TIME_BDF_INTEGRATOR_JACOBIAN_EVALUATION,
00484         // 50
00485     LOG_TIME_BDF_INTEGRATOR_JACOBIAN_DECOMPOSITION
00486 };
00487 
00488 
00489 enum PlotFrequency
00490 {
00491         PLOT_AT_START,
00492         PLOT_AT_END,
00493         PLOT_AT_EACH_ITERATION,
00494         PLOT_IN_ANY_CASE,
00495         PLOT_NEVER
00496 };
00497 
00498 
00499 enum PlotName
00500 {
00501         PLOT_NOTHING,
00502         // 1
00503 //      PLOT_DIFFERENTIAL_STATES,
00504 //      PLOT_ALGEBRAIC_STATES,
00505 //      PLOT_CONTROLS,
00506 //      PLOT_PARAMETERS,
00507 //      PLOT_DISTURBANCES,
00508 //      PLOT_INTERMEDIATE_STATES,
00509         PLOT_KKT_TOLERANCE,
00510         PLOT_OBJECTIVE_VALUE,
00511         PLOT_MERIT_FUNCTION_VALUE,
00512         PLOT_LINESEARCH_STEPLENGTH,
00513         PLOT_NORM_LAGRANGE_GRADIENT
00514 };
00515 
00516 
00517 enum ProcessPlotName
00518 {
00519         PLOT_NOMINAL,
00520         PLOT_REAL
00521 };
00522 
00523 
00526 enum PlotFormat
00527 {
00528         PF_PLAIN,                                               
00529         PF_LOG,                                                 
00530         PF_LOG_LOG,                                             
00531         PF_UNKNOWN                                              
00532 };
00533 
00534 
00535 
00538 enum PlotMode
00539 {
00540         PM_LINES,                                               
00541         PM_POINTS,                                              
00542         PM_UNKNOWN                                              
00543 };
00544 
00545 
00546 
00549 enum SubPlotType
00550 {
00551         SPT_VARIABLE,
00552         SPT_VARIABLE_VARIABLE,
00553         SPT_VARIABLE_EXPRESSION,
00554         SPT_VARIABLES_GRID,
00555         SPT_EXPRESSION,
00556         SPT_EXPRESSION_EXPRESSION,
00557         SPT_EXPRESSION_VARIABLE,
00558         SPT_ENUM,
00559         SPT_UNKNOWN
00560 };
00561 
00562 
00565 enum PrintScheme
00566 {
00567         PS_DEFAULT,                     
00568         PS_PLAIN,                       
00569         PS_MATLAB,                      
00570         PS_MATLAB_BINARY        
00571 };
00572 
00573 
00575 enum SensitivityType{
00576 
00577     FORWARD_SENSITIVITY       ,    
00578     FORWARD_SENSITIVITY_LIFTED,    
00579     BACKWARD_SENSITIVITY      ,    
00580     UNKNOWN_SENSITIVITY            
00581 };
00582 
00583 
00585 enum CondensingType{
00586 
00587     CT_LIFTING,                 
00588     CT_SPARSE                   
00589 };
00590 
00591 
00593 enum ProcessSimulationAlgorithm
00594 {
00595         SIMULATION_BY_INTEGRATION,              
00596         SIMULATION_BY_COLLOCATION               
00597 };
00598 
00599 
00600 
00602 enum HessianApproximationMode{
00603 
00604     CONSTANT_HESSIAN,
00605         // 1
00606     GAUSS_NEWTON,
00607     FULL_BFGS_UPDATE,
00608     BLOCK_BFGS_UPDATE,
00609     GAUSS_NEWTON_WITH_BLOCK_BFGS,
00610     EXACT_HESSIAN,
00611     DEFAULT_HESSIAN_APPROXIMATION
00612 };
00613 
00614 
00615 enum QPSolverName
00616 {
00617         QP_QPOASES,
00618         QP_QPOASES3,
00619         QP_FORCES,
00620         QP_QPDUNES,
00621         QP_QPDUNES2,
00622         QP_HPMPC,
00623         QP_NONE
00624 };
00625 
00626 
00628 enum ConicSolverStatus{
00629 
00630     CSS_NOTINITIALISED,                 
00631     CSS_INITIALIZED,                    
00632     CSS_SOLVED,                                 
00633     CSS_UNKNOWN                                 
00634 };
00635 
00636 
00637 
00640 enum InfeasibleQPhandling
00641 {
00642         IQH_STOP,                                       
00643         IQH_IGNORE,                                     
00644         IQH_RELAX_L1,                           
00645         IQH_RELAX_L2,                           
00646         IQH_UNDEFINED                           
00647 };
00648 
00649 
00651 enum QPStatus
00652 {
00653     QPS_NOT_INITIALIZED,                
00654     QPS_INITIALIZED,                    
00655     QPS_SOLVING,                                
00656     QPS_SOLVED,                                 
00657     QPS_RELAXED,                                
00658     QPS_SOLVING_RELAXATION,             
00659     QPS_SOLVED_RELAXATION,              
00660     QPS_INFEASIBLE,                             
00661     QPS_UNBOUNDED,                              
00662     QPS_NOTSOLVED                               
00663 };
00664 
00665 
00667 enum CondensingStatus
00668 {
00669     COS_NOT_INITIALIZED,                
00670     COS_INITIALIZED,                    
00671     COS_CONDENSED,                              
00672     COS_FROZEN                                  
00673 };
00674 
00675 
00677 enum BlockName
00678 {
00679     BN_DEFAULT,
00680     BN_SIMULATION_ENVIRONMENT,
00681     BN_PROCESS,
00682     BN_ACTUATOR,
00683     BN_SENSOR,
00684     BN_CONTROLLER,
00685     BN_ESTIMATOR,
00686     BN_REFERENCE_TRAJECTORY,
00687     BN_CONTROL_LAW
00688 };
00689 
00690 
00692 enum BlockStatus
00693 {
00694         BS_UNDEFINED,                           
00695         BS_NOT_INITIALIZED,                     
00696         BS_READY,                                       
00697         BS_RUNNING                                      
00698 };
00699 
00700 
00702 enum ClockStatus
00703 {
00704         CS_NOT_INITIALIZED,                     
00705         CS_RUNNING,                                     
00706         CS_STOPPED                                      
00707 };
00708 
00709 
00711 enum TimeHorizonElement
00712 {
00713         AT_TRANSITION = -3,
00714     AT_START,
00715     AT_END
00716 };
00717 
00718 
00721 enum ParetoFrontGeneration{
00722 
00723     PFG_FIRST_OBJECTIVE,
00724     PFG_SECOND_OBJECTIVE,
00725     PFG_WEIGHTED_SUM,
00726     PFG_NORMALIZED_NORMAL_CONSTRAINT,
00727     PFG_NORMAL_BOUNDARY_INTERSECTION,
00728     PFG_ENHANCED_NORMALIZED_NORMAL_CONSTRAINT,
00729     PFG_EPSILON_CONSTRAINT,
00730     PFG_UNKNOWN
00731 };
00732 
00733 
00734 
00737 enum SparseQPsolutionMethods
00738 {
00739         SPARSE_SOLVER,
00740         CONDENSING,
00741         FULL_CONDENSING,
00742         FULL_CONDENSING_N2,
00743         CONDENSING_N2,
00744         FULL_CONDENSING_N2_FACTORIZATION
00745 };
00746 
00747 
00748 
00751 enum ExportStatementOperator
00752 {
00753         ESO_ADD,
00754         ESO_SUBTRACT,
00755         ESO_ADD_ASSIGN,
00756         ESO_SUBTRACT_ASSIGN,
00757         ESO_MULTIPLY,
00758         ESO_MULTIPLY_TRANSPOSE,
00759         ESO_DIVIDE,
00760         ESO_MODULO,
00761         ESO_ASSIGN,
00762         ESO_UNDEFINED
00763 };
00764 
00765 
00766 enum OperatingSystem
00767 {
00768         OS_DEFAULT,
00769         OS_UNIX,
00770         OS_WINDOWS
00771 };
00772 
00773 
00774 enum ExportType
00775 {
00776         INT,
00777         REAL,
00778         STATIC_CONST_INT,
00779         STATIC_CONST_REAL
00780 };
00781 
00782 enum ExportStruct
00783 {
00784         ACADO_VARIABLES,
00785         ACADO_WORKSPACE,
00786         ACADO_PARAMS,
00787         ACADO_VARS,
00788         ACADO_LOCAL,
00789         ACADO_ANY,
00790         FORCES_PARAMS,
00791         FORCES_OUTPUT,
00792         FORCES_INFO
00793 };
00794 
00795 enum CondensedHessianCholeskyDecomposition
00796 {
00797         EXTERNAL,               
00798         INTERNAL_N3,    
00799         INTERNAL_N2             
00800 };
00801 
00812 enum returnValueType
00813 {
00814 TERMINAL_LIST_ELEMENT = -1,                                             
00815 /* miscellaneous */
00816 SUCCESSFUL_RETURN = 0,                                                  
00817 RET_DIV_BY_ZERO,                                                                        
00818 RET_INDEX_OUT_OF_BOUNDS,                                                
00819 RET_INVALID_ARGUMENTS,                                                  
00820 RET_ERROR_UNDEFINED,                                                    
00821 RET_WARNING_UNDEFINED,                                                  
00822 RET_INFO_UNDEFINED,                                                             
00823 RET_EWI_UNDEFINED,                                                              
00824 RET_AVAILABLE_WITH_LINUX_ONLY,                                  
00825 RET_UNKNOWN_BUG,                                                                
00826 RET_PRINTLEVEL_CHANGED,                                                 
00827 RET_NOT_YET_IMPLEMENTED,                                                
00828 RET_NOT_IMPLEMENTED_YET,                                                
00829 RET_NOT_IMPLEMENTED_IN_BASE_CLASS,                              
00830 RET_ASSERTION,                                                                  
00831 RET_MEMBER_NOT_INITIALISED,                                     
00832 RET_ABSTRACT_BASE_CLASS,                                                
00833 RET_NO_DATA_FOUND,                                                              
00834 RET_INPUT_DIMENSION_MISMATCH,                                   
00835 RET_STRING_EXCEEDS_LENGTH,                                              
00837 /* IO utils: */
00838 RET_FILE_NOT_FOUND,                                                             
00839 RET_FILE_CAN_NOT_BE_OPENED,                                             
00840 RET_CAN_NOT_WRITE_INTO_FILE,                                    
00841 RET_FILE_CAN_NOT_BE_CLOSED,                                             
00842 RET_FILE_HAS_NO_VALID_ENTRIES,                                  
00843 RET_DOES_DIRECTORY_EXISTS,                                              
00845 /* DMatrix/DVector */
00846 RET_VECTOR_DIMENSION_MISMATCH,                                  
00847 RET_DIFFERENTIAL_STATE_DIMENSION_MISMATCH,              
00848 RET_ALGEBRAIC_STATE_DIMENSION_MISMATCH,                 
00849 RET_CONTROL_DIMENSION_MISMATCH,                                 
00850 RET_PARAMETER_DIMENSION_MISMATCH,                               
00851 RET_DISTURBANCE_DIMENSION_MISMATCH,                             
00852 RET_OUTPUT_DIMENSION_MISMATCH,                                  
00853 RET_MATRIX_NOT_SQUARE,                                                  
00855 /* Sparse Solver */
00856 RET_LINEAR_SYSTEM_NUMERICALLY_SINGULAR,                 
00858 /* Grid */
00859 RET_GRIDPOINT_SETUP_FAILED,                                             
00860 RET_GRIDPOINT_HAS_INVALID_TIME,                                 
00861 RET_CONFLICTING_GRIDS,                                                  
00862 RET_TIME_INTERVAL_NOT_VALID,                                    
00863 RET_INVALID_TIME_POINT,                                                 
00865 /* Options */
00866 RET_OPTION_ALREADY_EXISTS,                                              
00867 RET_OPTION_DOESNT_EXIST,                                                
00868 RET_OPTIONS_LIST_CORRUPTED,                                             
00869 RET_INVALID_OPTION,                                                             
00871 /* Plotting */
00872 RET_PLOTTING_FAILED,                                                    
00873 RET_EMPTY_PLOT_DATA,                                                    
00874 RET_PLOT_WINDOW_CORRUPTED,                                              
00875 RET_PLOT_COLLECTION_CORRUPTED,                                  
00877 /* Logging */
00878 RET_LOG_RECORD_CORRUPTED,                                               
00879 RET_LOG_ENTRY_DOESNT_EXIST,                                             
00880 RET_LOG_COLLECTION_CORRUPTED,                                   
00882 /* SimulationEnvironment */
00883 RET_BLOCK_DIMENSION_MISMATCH,                                   
00884 RET_NO_PROCESS_SPECIFIED,                                               
00885 RET_NO_CONTROLLER_SPECIFIED,                                    
00886 RET_ENVIRONMENT_INIT_FAILED,                                    
00887 RET_ENVIRONMENT_STEP_FAILED,                                    
00888 RET_COMPUTATIONAL_DELAY_TOO_BIG,                                
00889 RET_COMPUTATIONAL_DELAY_NOT_SUPPORTED,                  
00891 /* Block */
00892 RET_BLOCK_NOT_READY,                                                    
00894 /* Time */
00895 RET_NO_SYSTEM_TIME,                                                             
00896 RET_CLOCK_NOT_READY,                                                    
00898 /* Process */
00899 RET_PROCESS_INIT_FAILED,                                                
00900 RET_PROCESS_STEP_FAILED,                                                
00901 RET_PROCESS_STEP_FAILED_DISTURBANCE,                    
00902 RET_PROCESS_RUN_FAILED,                                                 
00903 RET_NO_DYNAMICSYSTEM_SPECIFIED,                                 
00904 RET_NO_INTEGRATIONALGORITHM_SPECIFIED,                  
00905 RET_NO_DISCRETE_TIME_SYSTEMS_SUPPORTED,                 
00906 RET_WRONG_DISTURBANCE_HORIZON,                                  
00908 /* Actuator / Sensor */
00909 RET_ACTUATOR_INIT_FAILED,                                               
00910 RET_ACTUATOR_STEP_FAILED,                                               
00911 RET_SENSOR_INIT_FAILED,                                                 
00912 RET_SENSOR_STEP_FAILED,                                                 
00913 RET_GENERATING_NOISE_FAILED,                                    
00914 RET_DELAYING_INPUTS_FAILED,                                             
00915 RET_DELAYING_OUTPUTS_FAILED,                                    
00916 RET_INCOMPATIBLE_ACTUATOR_SAMPLING_TIME,                
00917 RET_INCOMPATIBLE_SENSOR_SAMPLING_TIME,                  
00918 RET_NO_DIFFERENT_NOISE_SAMPLING_FOR_DISCRETE,   
00920 /* Noise */
00921 RET_NO_NOISE_GENERATED,                                                 
00922 RET_NO_NOISE_SETTINGS,                                                  
00923 RET_INVALID_NOISE_SETTINGS,                                             
00925 /* Controller */
00926 RET_CONTROLLER_INIT_FAILED,                                             
00927 RET_CONTROLLER_STEP_FAILED,                                             
00928 RET_NO_ESTIMATOR_SPECIFIED,                                             
00929 RET_NO_CONTROLLAW_SPECIFIED,                                    
00930 RET_NO_REALTIME_MODE_AVAILABLE,                                 
00932 /* DynamicControlUnit / Estimator / Optimizer */
00933 RET_DCU_INIT_FAILED,                                                    
00934 RET_DCU_STEP_FAILED,                                                    
00935 RET_ESTIMATOR_INIT_FAILED,                                              
00936 RET_ESTIMATOR_STEP_FAILED,                                              
00937 RET_OPTIMIZER_INIT_FAILED,                                              
00938 RET_OPTIMIZER_STEP_FAILED,                                              
00939 RET_NO_OCP_SPECIFIED,                                                   
00940 RET_NO_SOLUTIONALGORITHM_SPECIFIED,                             
00942 /* ControlLaw */
00943 RET_CONTROLLAW_INIT_FAILED,                                             
00944 RET_CONTROLLAW_STEP_FAILED,                                             
00945 RET_NO_OPTIMIZER_SPECIFIED,                                             
00946 RET_INVALID_PID_OUTPUT_DIMENSION,                               
00948 /* RealTimeAlgorithm */
00949 RET_IMMEDIATE_FEEDBACK_ONE_ITERATION,                   
00951 /* OutputTransformator */
00952 RET_OUTPUTTRANSFORMATOR_INIT_FAILED,                    
00953 RET_OUTPUTTRANSFORMATOR_STEP_FAILED,                    
00955 /* Function */
00956 RET_INVALID_USE_OF_FUNCTION,                                    
00957 RET_INFEASIBLE_CONSTRAINT,                                              
00958 RET_ONLY_SUPPORTED_FOR_SYMBOLIC_FUNCTIONS,              
00959 RET_INFEASIBLE_ALGEBRAIC_CONSTRAINT,                    
00960 RET_ILLFORMED_ODE,                                                              
00962 /* Expression */
00963 RET_PRECISION_OUT_OF_RANGE,                                             
00964 RET_ERROR_WHILE_PRINTING_A_FILE,                                
00965 RET_INDEX_OUT_OF_RANGE,                                                 
00966 RET_INTERMEDIATE_STATE_HAS_NO_ARGUMENT,                 
00967 RET_DIMENSION_NOT_SPECIFIED,                                    
00969 /* Modeling Tools */
00970 RET_DDQ_DIMENSION_MISMATCH,                                             
00971 RET_CAN_ONLY_SOLVE_2ND_ORDER_KINVECS,                   
00974 /* OBJECTIVE */
00975 RET_GAUSS_NEWTON_APPROXIMATION_NOT_SUPPORTED,   
00976 RET_REFERENCE_SHIFTING_WORKS_FOR_LSQ_TERMS_ONLY,        
00978 /* Integrator */
00979 RET_TRIVIAL_RHS,                                                                
00980 RET_MISSING_INPUTS,                                                             
00981 RET_TO_SMALL_OR_NEGATIVE_TIME_INTERVAL,                 
00982 RET_FINAL_STEP_NOT_PERFORMED_YET,                               
00983 RET_ALREADY_FROZEN,                                                             
00984 RET_MAX_NUMBER_OF_STEPS_EXCEEDED,                               
00985 RET_WRONG_DEFINITION_OF_SEEDS,                                  
00986 RET_NOT_FROZEN,                                                                 
00987 RET_TO_MANY_DIFFERENTIAL_STATES,                                
00988 RET_TO_MANY_DIFFERENTIAL_STATE_DERIVATIVES,             
00989 RET_RK45_CAN_NOT_TREAT_DAE,                                             
00990 RET_CANNOT_TREAT_DAE,                                                   
00991 RET_INPUT_HAS_WRONG_DIMENSION,                                  
00992 RET_INPUT_OUT_OF_RANGE,                                                 
00993 RET_THE_DAE_INDEX_IS_TOO_LARGE,                                 
00994 RET_UNSUCCESSFUL_RETURN_FROM_INTEGRATOR_RK45,   
00995 RET_UNSUCCESSFUL_RETURN_FROM_INTEGRATOR_BDF,    
00996 RET_CANNOT_TREAT_DISCRETE_DE,                                   
00997 RET_CANNOT_TREAT_CONTINUOUS_DE,                                 
00998 RET_CANNOT_TREAT_IMPLICIT_DE,                                   
00999 RET_CANNOT_TREAT_EXPLICIT_DE,                                   
01001 /* DynamicDiscretization */
01002 RET_TO_MANY_DIFFERENTIAL_EQUATIONS,                             
01003 RET_BREAK_POINT_SETUP_FAILED,                                   
01004 RET_WRONG_DEFINITION_OF_STAGE_TRANSITIONS,              
01005 RET_TRANSITION_DEPENDS_ON_ALGEBRAIC_STATES,             
01007 /* OPTIMIZATION_ALGORITHM: */
01008 RET_NO_VALID_OBJECTIVE,                                                 
01009 RET_INCONSISTENT_BOUNDS,                                                
01010 RET_INCOMPATIBLE_DIMENSIONS,                                    
01011 RET_GRID_SETUP_FAILED,                                                  
01012 RET_OPTALG_INIT_FAILED,                                                 
01013 RET_OPTALG_STEP_FAILED,                                                 
01014 RET_OPTALG_FEEDBACK_FAILED,                                     
01015 RET_OPTALG_PREPARE_FAILED,                                              
01016 RET_OPTALG_SOLVE_FAILED,                                                
01017 RET_REALTIME_NO_INITIAL_VALUE,                                  
01019 /* INTEGRATION_ALGORITHM: */
01020 RET_INTALG_INIT_FAILED,                                                 
01021 RET_INTALG_INTEGRATION_FAILED,                                  
01022 RET_INTALG_NOT_READY,                                                   
01024 /* PLOT WINDOW */
01025 RET_PLOT_WINDOW_CAN_NOT_BE_OPEN,                                
01027 /* NLP SOLVER */
01028 CONVERGENCE_ACHIEVED,                                                   
01029 CONVERGENCE_NOT_YET_ACHIEVED,                                   
01030 RET_NLP_INIT_FAILED,                                                    
01031 RET_NLP_STEP_FAILED,                                                    
01032 RET_NLP_SOLUTION_FAILED,                                                
01033 RET_INITIALIZE_FIRST,                                                   
01034 RET_SOLVER_NOT_SUTIABLE_FOR_REAL_TIME_MODE,             
01035 RET_ILLFORMED_HESSIAN_MATRIX,                                   
01036 RET_NONSYMMETRIC_HESSIAN_MATRIX,                                
01037 RET_UNABLE_TO_EVALUATE_OBJECTIVE,                               
01038 RET_UNABLE_TO_EVALUATE_CONSTRAINTS,                             
01039 RET_UNABLE_TO_INTEGRATE_SYSTEM,                                 
01040 RET_NEED_TO_ACTIVATE_RTI,                                               
01042 /* CONIC SOLVER */
01043 RET_CONIC_PROGRAM_INFEASIBLE,                                   
01044 RET_CONIC_PROGRAM_SOLUTION_FAILED,                              
01045 RET_CONIC_PROGRAM_NOT_SOLVED,                                   
01047 /* CP SOLVER */
01048 RET_UNABLE_TO_CONDENSE,                                                 
01049 RET_UNABLE_TO_EXPAND,                                                   
01050 RET_NEED_TO_CONDENSE_FIRST,                                             
01051 RET_BANDED_CP_INIT_FAILED,                                              
01052 RET_BANDED_CP_SOLUTION_FAILED,                                  
01054 /* OCP */
01055 RET_TRANSITION_NOT_DEFINED,                                             
01057 /* QP SOLVER */
01058 RET_QP_INIT_FAILED,                                                             
01059 RET_QP_SOLUTION_FAILED,                                                 
01060 RET_QP_SOLUTION_REACHED_LIMIT,                                  
01061 RET_QP_INFEASIBLE,                                                              
01062 RET_QP_UNBOUNDED,                                                               
01063 RET_QP_NOT_SOLVED,                                                              
01064 RET_RELAXING_QP,                                                                
01065 RET_COULD_NOT_RELAX_QP,                                                 
01066 RET_QP_SOLVER_CAN_ONLY_SOLVE_QP,                                
01067 RET_QP_HAS_INCONSISTENT_BOUNDS,                                 
01068 RET_UNABLE_TO_HOTSTART_QP,                                              
01070 /* MPC SOLVER */
01071 RET_NONPOSITIVE_WEIGHT,                                                 
01072 RET_INITIAL_CHOLESKY_FAILED,                                    
01073 RET_HOMOTOPY_STEP_FAILED,                                               
01074 RET_STEPDIRECTION_DETERMINATION_FAILED,                 
01075 RET_STEPDIRECTION_FAILED_CHOLESKY,                              
01076 RET_STEPLENGTH_DETERMINATION_FAILED,                    
01077 RET_OPTIMAL_SOLUTION_FOUND,                                             
01078 RET_MAX_NWSR_REACHED,                                                   
01079 RET_MATRIX_NOT_SPD,                                                             
01081 /* CODE EXPORT */
01082 RET_CODE_EXPORT_SUCCESSFUL,                                             
01083 RET_UNABLE_TO_EXPORT_CODE,                                              
01084 RET_INVALID_OBJECTIVE_FOR_CODE_EXPORT,                  
01085 RET_NO_DISCRETE_ODE_FOR_CODE_EXPORT,                    
01086 RET_ONLY_ODE_FOR_CODE_EXPORT,                                   
01087 RET_ONLY_STATES_AND_CONTROLS_FOR_CODE_EXPORT,   
01088 RET_ONLY_EQUIDISTANT_GRID_FOR_CODE_EXPORT,              
01089 RET_ONLY_BOUNDS_FOR_CODE_EXPORT,                                
01090 RET_QPOASES_EMBEDDED_NOT_FOUND,                                 
01091 RET_UNABLE_TO_EXPORT_STATEMENT,                                 
01092 RET_INVALID_CALL_TO_EXPORTED_FUNCTION,                  
01095 /* EXPORTED INTEGRATORS */
01096 RET_INVALID_LINEAR_OUTPUT_FUNCTION                              
01097 };
01098 
01100 enum returnValueLevel
01101 {
01102         LVL_DEBUG = 0,          
01103         LVL_FATAL,                      
01104         LVL_ERROR,                      
01105         LVL_WARNING,            
01106         LVL_INFO                        
01107 };
01108 
01119 class returnValue
01120 {
01121 public:
01122 
01126         returnValue();
01127 
01131         returnValue(returnValueType _type);
01132 
01136         returnValue(int _type);
01137 
01141         returnValue(const returnValue& old);
01142 
01146         returnValue(const char* msg, returnValueLevel level = LVL_ERROR, returnValueType type = RET_UNKNOWN_BUG);
01147 
01151         returnValue(const char* msg, returnValueLevel level,const returnValue& old);
01152 
01156         returnValue& addMessage(const char* msg);
01157 
01161         returnValue& changeLevel(returnValueLevel level);
01162 
01166         returnValue& changeType(returnValueType type);
01167 
01168         returnValueLevel getLevel() const;
01169 
01173         void print();
01174 
01178         void printBasic();
01179 
01183         ~returnValue();
01184 
01188         bool operator!=(returnValueType cmp_type) const;
01189 
01193         bool operator==(returnValueType cmp_type) const;
01194 
01198         bool operator!() const;
01199 
01203         returnValue& operator=(const returnValue& old);
01204 
01208         operator int();
01209 
01210 private:
01211         returnValueType type;
01212         returnValueLevel level;
01213         int status;
01214 
01215         class returnValueData;
01216         returnValueData* data;
01217 };
01218 
01219 CLOSE_NAMESPACE_ACADO
01220 
01221 #endif  // ACADO_TOOLKIT_ACADO_TYPES_HPP
01222 
01223 /*
01224  *    end of file
01225  */


acado
Author(s): Milan Vukov, Rien Quirynen
autogenerated on Thu Aug 27 2015 11:57:48