00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
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
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
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
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
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
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
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
00503
00504
00505
00506
00507
00508
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
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
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
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
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
00856 RET_LINEAR_SYSTEM_NUMERICALLY_SINGULAR,
00858
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
00866 RET_OPTION_ALREADY_EXISTS,
00867 RET_OPTION_DOESNT_EXIST,
00868 RET_OPTIONS_LIST_CORRUPTED,
00869 RET_INVALID_OPTION,
00871
00872 RET_PLOTTING_FAILED,
00873 RET_EMPTY_PLOT_DATA,
00874 RET_PLOT_WINDOW_CORRUPTED,
00875 RET_PLOT_COLLECTION_CORRUPTED,
00877
00878 RET_LOG_RECORD_CORRUPTED,
00879 RET_LOG_ENTRY_DOESNT_EXIST,
00880 RET_LOG_COLLECTION_CORRUPTED,
00882
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
00892 RET_BLOCK_NOT_READY,
00894
00895 RET_NO_SYSTEM_TIME,
00896 RET_CLOCK_NOT_READY,
00898
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
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
00921 RET_NO_NOISE_GENERATED,
00922 RET_NO_NOISE_SETTINGS,
00923 RET_INVALID_NOISE_SETTINGS,
00925
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
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
00943 RET_CONTROLLAW_INIT_FAILED,
00944 RET_CONTROLLAW_STEP_FAILED,
00945 RET_NO_OPTIMIZER_SPECIFIED,
00946 RET_INVALID_PID_OUTPUT_DIMENSION,
00948
00949 RET_IMMEDIATE_FEEDBACK_ONE_ITERATION,
00951
00952 RET_OUTPUTTRANSFORMATOR_INIT_FAILED,
00953 RET_OUTPUTTRANSFORMATOR_STEP_FAILED,
00955
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
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
00970 RET_DDQ_DIMENSION_MISMATCH,
00971 RET_CAN_ONLY_SOLVE_2ND_ORDER_KINVECS,
00974
00975 RET_GAUSS_NEWTON_APPROXIMATION_NOT_SUPPORTED,
00976 RET_REFERENCE_SHIFTING_WORKS_FOR_LSQ_TERMS_ONLY,
00978
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
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
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
01020 RET_INTALG_INIT_FAILED,
01021 RET_INTALG_INTEGRATION_FAILED,
01022 RET_INTALG_NOT_READY,
01024
01025 RET_PLOT_WINDOW_CAN_NOT_BE_OPEN,
01027
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
01043 RET_CONIC_PROGRAM_INFEASIBLE,
01044 RET_CONIC_PROGRAM_SOLUTION_FAILED,
01045 RET_CONIC_PROGRAM_NOT_SOLVED,
01047
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
01055 RET_TRANSITION_NOT_DEFINED,
01057
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
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
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
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
01225