From aa6412467dd787f788b8a32d9e9adea82428bb15 Mon Sep 17 00:00:00 2001
From: Simon <>
Date: Fri, 16 Dec 2022 08:50:50 +0100
Subject: [PATCH] Added MPC code to final hand-in repository

---
 mav_control_rw/.gitignore                     |   33 +
 mav_control_rw/.travis.yml                    |   55 +
 mav_control_rw/LICENSE                        |  201 +
 mav_control_rw/README.md                      |  219 +
 .../mav_nonlinear_mpc/.vscode/settings.json   |    3 +
 .../mav_nonlinear_mpc/CMakeLists.txt          |   82 +
 .../mav_nonlinear_mpc/cfg/NonLinearMPC.cfg    |   36 +
 .../cmake/FindOpenBLAS.cmake                  |   42 +
 .../include/mav_nonlinear_mpc/nonlinear_mpc.h |   75 +
 .../mav_nonlinear_mpc/nonlinear_mpc_node.h    |   37 +
 .../launch/mav_nonlinear_mpc.launch           |   14 +
 .../launch/mav_nonlinear_mpc_sim.launch       |   13 +
 mav_control_rw/mav_nonlinear_mpc/package.xml  |   21 +
 .../resources/nonlinear_mpc_firefly.yaml      |   53 +
 .../resources/nonlinear_mpc_hummingbird.yaml  |   53 +
 .../resources/nonlinear_mpc_husky.yaml        |    9 +
 .../resources/nonlinear_mpc_neo11.yaml        |   53 +
 .../mav_nonlinear_mpc/solver/CATKIN_IGNORE    |    0
 .../mav_nonlinear_mpc/solver/CMakeCache.txt   | 1003 ++++
 .../CMakeFiles/3.16.3/CMakeCCompiler.cmake    |   76 +
 .../CMakeFiles/3.16.3/CMakeCXXCompiler.cmake  |   88 +
 .../3.16.3/CMakeDetermineCompilerABI_C.bin    |  Bin 0 -> 16552 bytes
 .../3.16.3/CMakeDetermineCompilerABI_CXX.bin  |  Bin 0 -> 16560 bytes
 .../CMakeFiles/3.16.3/CMakeSystem.cmake       |   15 +
 .../3.16.3/CompilerIdC/CMakeCCompilerId.c     |  671 +++
 .../CompilerIdCXX/CMakeCXXCompilerId.cpp      |  660 +++
 .../CMakeDirectoryInformation.cmake           |   16 +
 .../solver/CMakeFiles/CMakeError.log          |   96 +
 .../solver/CMakeFiles/CMakeOutput.log         |  519 +++
 .../solver/CMakeFiles/CMakeRuleHashes.txt     |    4 +
 .../solver/CMakeFiles/Makefile.cmake          |  324 ++
 .../solver/CMakeFiles/Makefile2               | 2060 +++++++++
 .../solver/CMakeFiles/TargetDirectories.txt   |   93 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../clean_test_results.dir/DependInfo.cmake   |   11 +
 .../clean_test_results.dir/build.make         |   76 +
 .../clean_test_results.dir/cmake_clean.cmake  |    8 +
 .../clean_test_results.dir/progress.make      |    1 +
 .../solver/CMakeFiles/cmake.check_cache       |    1 +
 .../download_extra_data.dir/DependInfo.cmake  |   11 +
 .../download_extra_data.dir/build.make        |   72 +
 .../download_extra_data.dir/cmake_clean.cmake |    5 +
 .../download_extra_data.dir/progress.make     |    1 +
 .../CMakeFiles/doxygen.dir/DependInfo.cmake   |   11 +
 .../solver/CMakeFiles/doxygen.dir/build.make  |   72 +
 .../CMakeFiles/doxygen.dir/cmake_clean.cmake  |    5 +
 .../CMakeFiles/doxygen.dir/progress.make      |    1 +
 .../DependInfo.cmake                          |   11 +
 .../dynamic_reconfigure_gencfg.dir/build.make |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   20 +
 .../mav_nonlinear_mpc_gencfg.dir/build.make   |  100 +
 .../cmake_clean.cmake                         |   13 +
 .../depend.internal                           |    3 +
 .../mav_nonlinear_mpc_gencfg.dir/depend.make  |    3 +
 .../progress.make                             |    2 +
 .../mav_nonlinear_mpc_lib.dir/C.includecache  |   52 +
 .../CXX.includecache                          | 2686 +++++++++++
 .../DependInfo.cmake                          |   80 +
 .../mav_nonlinear_mpc_lib.dir/build.make      |  354 ++
 .../cmake_clean.cmake                         |   24 +
 .../mav_nonlinear_mpc_lib.dir/depend.internal |  555 +++
 .../mav_nonlinear_mpc_lib.dir/depend.make     |  555 +++
 .../mav_nonlinear_mpc_lib.dir/flags.make      |   17 +
 .../mav_nonlinear_mpc_lib.dir/link.txt        |    1 +
 .../mav_nonlinear_mpc_lib.dir/progress.make   |   17 +
 .../DependInfo.cmake                          |   11 +
 .../mav_nonlinear_mpc_package.dir/build.make  |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../progress.make                             |    1 +
 .../nonlinear_mpc_node.dir/CXX.includecache   | 2640 +++++++++++
 .../nonlinear_mpc_node.dir/DependInfo.cmake   |   39 +
 .../nonlinear_mpc_node.dir/build.make         |  145 +
 .../nonlinear_mpc_node.dir/cmake_clean.cmake  |   10 +
 .../nonlinear_mpc_node.dir/depend.internal    |  376 ++
 .../nonlinear_mpc_node.dir/depend.make        |  376 ++
 .../nonlinear_mpc_node.dir/flags.make         |   10 +
 .../nonlinear_mpc_node.dir/link.txt           |    1 +
 .../nonlinear_mpc_node.dir/progress.make      |    3 +
 .../solver/CMakeFiles/progress.marks          |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../CMakeFiles/run_tests.dir/DependInfo.cmake |   11 +
 .../CMakeFiles/run_tests.dir/build.make       |   72 +
 .../run_tests.dir/cmake_clean.cmake           |    5 +
 .../CMakeFiles/run_tests.dir/progress.make    |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../CMakeFiles/tests.dir/DependInfo.cmake     |   11 +
 .../solver/CMakeFiles/tests.dir/build.make    |   72 +
 .../CMakeFiles/tests.dir/cmake_clean.cmake    |    5 +
 .../solver/CMakeFiles/tests.dir/progress.make |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../tf_generate_messages_cpp.dir/build.make   |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../tf_generate_messages_cpp.dir/depend.make  |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../tf_generate_messages_eus.dir/build.make   |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../tf_generate_messages_eus.dir/depend.make  |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../tf_generate_messages_lisp.dir/build.make  |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../tf_generate_messages_lisp.dir/depend.make |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../build.make                                |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../depend.make                               |    3 +
 .../progress.make                             |    1 +
 .../DependInfo.cmake                          |   11 +
 .../tf_generate_messages_py.dir/build.make    |   72 +
 .../cmake_clean.cmake                         |    5 +
 .../depend.internal                           |    3 +
 .../tf_generate_messages_py.dir/depend.make   |    3 +
 .../tf_generate_messages_py.dir/progress.make |    1 +
 .../solver/CTestConfiguration.ini             |  105 +
 .../solver/CTestCustom.cmake                  |    2 +
 .../solver/CTestTestfile.cmake                |    7 +
 .../mav_nonlinear_mpc/solver/Makefile         |   70 +
 .../solver/acado_auxiliary_functions.c        |  212 +
 .../solver/acado_auxiliary_functions.h        |  138 +
 .../mav_nonlinear_mpc/solver/acado_common.h   |  399 ++
 .../solver/acado_integrator.c                 |  782 ++++
 .../solver/acado_qpoases_interface.cpp        |   70 +
 .../solver/acado_qpoases_interface.hpp        |   65 +
 .../mav_nonlinear_mpc/solver/acado_solver.c   | 4027 +++++++++++++++++
 .../solver/acado_solver_mex.c                 |  539 +++
 .../solver/atomic_configure/.rosinstall       |    2 +
 .../solver/atomic_configure/_setup_util.py    |  304 ++
 .../solver/atomic_configure/env.sh            |   16 +
 .../solver/atomic_configure/local_setup.bash  |    8 +
 .../solver/atomic_configure/local_setup.sh    |    9 +
 .../solver/atomic_configure/local_setup.zsh   |    8 +
 .../solver/atomic_configure/setup.bash        |    8 +
 .../solver/atomic_configure/setup.sh          |   96 +
 .../solver/atomic_configure/setup.zsh         |    8 +
 .../catkin_generated/version/package.cmake    |   24 +
 .../solver/catkin_generated/env_cached.sh     |   16 +
 .../catkin_generated/generate_cached_setup.py |   30 +
 .../catkin_generated/installspace/.rosinstall |    2 +
 .../installspace/_setup_util.py               |  304 ++
 .../catkin_generated/installspace/env.sh      |   16 +
 .../installspace/local_setup.bash             |    8 +
 .../installspace/local_setup.sh               |    9 +
 .../installspace/local_setup.zsh              |    8 +
 .../installspace/mav_nonlinear_mpc.pc         |    8 +
 .../mav_nonlinear_mpcConfig-version.cmake     |   14 +
 .../mav_nonlinear_mpcConfig.cmake             |  223 +
 .../catkin_generated/installspace/setup.bash  |    8 +
 .../catkin_generated/installspace/setup.sh    |   96 +
 .../catkin_generated/installspace/setup.zsh   |    8 +
 .../catkin_generated/ordered_paths.cmake      |    1 +
 .../solver/catkin_generated/package.cmake     |   16 +
 .../pkg.develspace.context.pc.py              |    8 +
 .../pkg.installspace.context.pc.py            |    8 +
 .../solver/catkin_generated/setup_cached.sh   |   15 +
 .../mav_nonlinear_mpc/_setup_util.py.stamp    |  304 ++
 .../interrogate_setup_dot_py.py.stamp         |  255 ++
 .../mav_nonlinear_mpc/package.xml.stamp       |   21 +
 .../stamps/mav_nonlinear_mpc/pkg.pc.em.stamp  |    8 +
 .../solver/cmake_install.cmake                |  228 +
 .../mav_nonlinear_mpc/solver/devel/.catkin    |    1 +
 .../solver/devel/.rosinstall                  |    2 +
 .../solver/devel/_setup_util.py               |  304 ++
 .../mav_nonlinear_mpc/solver/devel/cmake.lock |    0
 .../mav_nonlinear_mpc/solver/devel/env.sh     |   16 +
 .../mav_nonlinear_mpc/NonLinearMPCConfig.h    |  770 ++++
 .../devel/lib/libmav_nonlinear_mpc_lib.so     |  Bin 0 -> 333752 bytes
 .../lib/mav_nonlinear_mpc/nonlinear_mpc_node  |  Bin 0 -> 329984 bytes
 .../devel/lib/pkgconfig/mav_nonlinear_mpc.pc  |    8 +
 .../mav_nonlinear_mpc/__init__.py             |    0
 .../cfg/NonLinearMPCConfig.py                 |   36 +
 .../mav_nonlinear_mpc/cfg/__init__.py         |    0
 .../solver/devel/local_setup.bash             |    8 +
 .../solver/devel/local_setup.sh               |    9 +
 .../solver/devel/local_setup.zsh              |    8 +
 .../mav_nonlinear_mpc/solver/devel/setup.bash |    8 +
 .../mav_nonlinear_mpc/solver/devel/setup.sh   |   96 +
 .../mav_nonlinear_mpc/solver/devel/setup.zsh  |    8 +
 .../mav_nonlinear_mpcConfig-version.cmake     |   14 +
 .../cmake/mav_nonlinear_mpcConfig.cmake       |  223 +
 .../docs/NonLinearMPCConfig-usage.dox         |   27 +
 .../docs/NonLinearMPCConfig.dox               |   26 +
 .../docs/NonLinearMPCConfig.wikidoc           |   92 +
 .../CMakeDirectoryInformation.cmake           |   16 +
 .../solver/gtest/CMakeFiles/progress.marks    |    1 +
 .../solver/gtest/CTestTestfile.cmake          |    7 +
 .../mav_nonlinear_mpc/solver/gtest/Makefile   |  196 +
 .../solver/gtest/cmake_install.cmake          |   45 +
 .../CMakeDirectoryInformation.cmake           |   16 +
 .../CMakeFiles/gmock.dir/DependInfo.cmake     |   31 +
 .../CMakeFiles/gmock.dir/build.make           |   99 +
 .../CMakeFiles/gmock.dir/cmake_clean.cmake    |   10 +
 .../CMakeFiles/gmock.dir/depend.make          |    2 +
 .../CMakeFiles/gmock.dir/flags.make           |   10 +
 .../googlemock/CMakeFiles/gmock.dir/link.txt  |    1 +
 .../CMakeFiles/gmock.dir/progress.make        |    3 +
 .../gmock_main.dir/DependInfo.cmake           |   32 +
 .../CMakeFiles/gmock_main.dir/build.make      |  100 +
 .../gmock_main.dir/cmake_clean.cmake          |   10 +
 .../CMakeFiles/gmock_main.dir/depend.make     |    2 +
 .../CMakeFiles/gmock_main.dir/flags.make      |   10 +
 .../CMakeFiles/gmock_main.dir/link.txt        |    1 +
 .../CMakeFiles/gmock_main.dir/progress.make   |    3 +
 .../googlemock/CMakeFiles/progress.marks      |    1 +
 .../gtest/googlemock/CTestTestfile.cmake      |    7 +
 .../solver/gtest/googlemock/Makefile          |  288 ++
 .../gtest/googlemock/cmake_install.cmake      |   45 +
 .../CMakeDirectoryInformation.cmake           |   16 +
 .../CMakeFiles/gtest.dir/DependInfo.cmake     |   28 +
 .../CMakeFiles/gtest.dir/build.make           |   98 +
 .../CMakeFiles/gtest.dir/cmake_clean.cmake    |   10 +
 .../CMakeFiles/gtest.dir/depend.make          |    2 +
 .../CMakeFiles/gtest.dir/flags.make           |   10 +
 .../googletest/CMakeFiles/gtest.dir/link.txt  |    1 +
 .../CMakeFiles/gtest.dir/progress.make        |    3 +
 .../gtest_main.dir/DependInfo.cmake           |   29 +
 .../CMakeFiles/gtest_main.dir/build.make      |   99 +
 .../gtest_main.dir/cmake_clean.cmake          |   10 +
 .../CMakeFiles/gtest_main.dir/depend.make     |    2 +
 .../CMakeFiles/gtest_main.dir/flags.make      |   10 +
 .../CMakeFiles/gtest_main.dir/link.txt        |    1 +
 .../CMakeFiles/gtest_main.dir/progress.make   |    3 +
 .../googletest/CMakeFiles/progress.marks      |    1 +
 .../gtest/googletest/CTestTestfile.cmake      |    6 +
 .../solver/gtest/googletest/Makefile          |  288 ++
 .../gtest/googletest/cmake_install.cmake      |   39 +
 .../solver/make_acado_solver.m                |   85 +
 .../solver/nmpc_solver_setup                  |  Bin 0 -> 1400512 bytes
 .../solver/nmpc_solver_setup.m                |   93 +
 .../solver/qpoases/EXAMPLES/example1.cpp      |   74 +
 .../solver/qpoases/EXAMPLES/example1b.cpp     |   69 +
 .../solver/qpoases/INCLUDE/Bounds.hpp         |  189 +
 .../solver/qpoases/INCLUDE/Constants.hpp      |  108 +
 .../solver/qpoases/INCLUDE/Constraints.hpp    |  181 +
 .../solver/qpoases/INCLUDE/CyclingManager.hpp |  126 +
 .../INCLUDE/EXTRAS/SolutionAnalysis.hpp       |  107 +
 .../solver/qpoases/INCLUDE/Indexlist.hpp      |  154 +
 .../qpoases/INCLUDE/MessageHandling.hpp       |  415 ++
 .../solver/qpoases/INCLUDE/QProblem.hpp       |  666 +++
 .../solver/qpoases/INCLUDE/QProblemB.hpp      |  628 +++
 .../solver/qpoases/INCLUDE/SubjectTo.hpp      |  178 +
 .../solver/qpoases/INCLUDE/Types.hpp          |  131 +
 .../solver/qpoases/INCLUDE/Utils.hpp          |  197 +
 .../solver/qpoases/LICENSE.txt                |  504 +++
 .../solver/qpoases/README.txt                 |   92 +
 .../solver/qpoases/SRC/Bounds.cpp             |  252 ++
 .../solver/qpoases/SRC/Bounds.ipp             |  144 +
 .../solver/qpoases/SRC/Constraints.cpp        |  248 +
 .../solver/qpoases/SRC/Constraints.ipp        |  144 +
 .../solver/qpoases/SRC/CyclingManager.cpp     |  188 +
 .../solver/qpoases/SRC/CyclingManager.ipp     |   51 +
 .../qpoases/SRC/EXTRAS/SolutionAnalysis.cpp   |  434 ++
 .../solver/qpoases/SRC/Indexlist.cpp          |  342 ++
 .../solver/qpoases/SRC/Indexlist.ipp          |   85 +
 .../solver/qpoases/SRC/MessageHandling.cpp    |  529 +++
 .../solver/qpoases/SRC/MessageHandling.ipp    |  137 +
 .../solver/qpoases/SRC/QProblem.cpp           | 3867 ++++++++++++++++
 .../solver/qpoases/SRC/QProblem.ipp           |  299 ++
 .../solver/qpoases/SRC/QProblemB.cpp          | 2151 +++++++++
 .../solver/qpoases/SRC/QProblemB.ipp          |  425 ++
 .../solver/qpoases/SRC/SubjectTo.cpp          |  200 +
 .../solver/qpoases/SRC/SubjectTo.ipp          |  132 +
 .../solver/qpoases/SRC/Utils.cpp              |  471 ++
 .../solver/qpoases/SRC/Utils.ipp              |   51 +
 .../solver/qpoases/VERSIONS.txt               |   87 +
 .../solver/setup_custom_pythonpath.sh         |    5 +
 mav_control_rw/mav_nonlinear_mpc/solver/test  |  Bin 0 -> 199936 bytes
 .../mav_nonlinear_mpc/solver/test.c           |  119 +
 .../solver_made_from_cpp/CMakeLists.txt       |   27 +
 .../solver_made_from_cpp/README.md            |   35 +
 .../cmake/FindACADO.cmake                     |  157 +
 .../nmpc_solver_setup.cpp                     |  107 +
 .../qpoases/EXAMPLES/example1.cpp             |   74 +
 .../qpoases/EXAMPLES/example1b.cpp            |   69 +
 .../qpoases/INCLUDE/Bounds.hpp                |  189 +
 .../qpoases/INCLUDE/Constants.hpp             |  108 +
 .../qpoases/INCLUDE/Constraints.hpp           |  181 +
 .../qpoases/INCLUDE/CyclingManager.hpp        |  126 +
 .../INCLUDE/EXTRAS/SolutionAnalysis.hpp       |  107 +
 .../qpoases/INCLUDE/Indexlist.hpp             |  154 +
 .../qpoases/INCLUDE/MessageHandling.hpp       |  415 ++
 .../qpoases/INCLUDE/QProblem.hpp              |  666 +++
 .../qpoases/INCLUDE/QProblemB.hpp             |  628 +++
 .../qpoases/INCLUDE/SubjectTo.hpp             |  178 +
 .../qpoases/INCLUDE/Types.hpp                 |  131 +
 .../qpoases/INCLUDE/Utils.hpp                 |  197 +
 .../solver_made_from_cpp/qpoases/LICENSE.txt  |  504 +++
 .../solver_made_from_cpp/qpoases/README.txt   |   92 +
 .../qpoases/SRC/Bounds.cpp                    |  252 ++
 .../qpoases/SRC/Bounds.ipp                    |  144 +
 .../qpoases/SRC/Constraints.cpp               |  248 +
 .../qpoases/SRC/Constraints.ipp               |  144 +
 .../qpoases/SRC/CyclingManager.cpp            |  188 +
 .../qpoases/SRC/CyclingManager.ipp            |   51 +
 .../qpoases/SRC/EXTRAS/SolutionAnalysis.cpp   |  434 ++
 .../qpoases/SRC/Indexlist.cpp                 |  342 ++
 .../qpoases/SRC/Indexlist.ipp                 |   85 +
 .../qpoases/SRC/MessageHandling.cpp           |  529 +++
 .../qpoases/SRC/MessageHandling.ipp           |  137 +
 .../qpoases/SRC/QProblem.cpp                  | 3867 ++++++++++++++++
 .../qpoases/SRC/QProblem.ipp                  |  299 ++
 .../qpoases/SRC/QProblemB.cpp                 | 2151 +++++++++
 .../qpoases/SRC/QProblemB.ipp                 |  425 ++
 .../qpoases/SRC/SubjectTo.cpp                 |  200 +
 .../qpoases/SRC/SubjectTo.ipp                 |  132 +
 .../qpoases/SRC/Utils.cpp                     |  471 ++
 .../qpoases/SRC/Utils.ipp                     |   51 +
 .../solver_made_from_cpp/qpoases/VERSIONS.txt |   87 +
 .../mav_nonlinear_mpc/src/nonlinear_mpc.cc    |  287 ++
 .../src/nonlinear_mpc_node.cc                 |   33 +
 590 files changed, 61004 insertions(+)
 create mode 100644 mav_control_rw/.gitignore
 create mode 100644 mav_control_rw/.travis.yml
 create mode 100644 mav_control_rw/LICENSE
 create mode 100644 mav_control_rw/README.md
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/.vscode/settings.json
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/CMakeLists.txt
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/cfg/NonLinearMPC.cfg
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/cmake/FindOpenBLAS.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/include/mav_nonlinear_mpc/nonlinear_mpc.h
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/include/mav_nonlinear_mpc/nonlinear_mpc_node.h
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/launch/mav_nonlinear_mpc.launch
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/launch/mav_nonlinear_mpc_sim.launch
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/package.xml
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/resources/nonlinear_mpc_firefly.yaml
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/resources/nonlinear_mpc_hummingbird.yaml
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/resources/nonlinear_mpc_husky.yaml
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/resources/nonlinear_mpc_neo11.yaml
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CATKIN_IGNORE
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeCache.txt
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/3.16.3/CMakeCCompiler.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/3.16.3/CMakeCXXCompiler.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/3.16.3/CMakeDetermineCompilerABI_C.bin
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/3.16.3/CMakeDetermineCompilerABI_CXX.bin
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/3.16.3/CMakeSystem.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/3.16.3/CompilerIdC/CMakeCCompilerId.c
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/3.16.3/CompilerIdCXX/CMakeCXXCompilerId.cpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeDirectoryInformation.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeError.log
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeOutput.log
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeRuleHashes.txt
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/Makefile.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/Makefile2
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/TargetDirectories.txt
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/_catkin_empty_exported_target.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/_catkin_empty_exported_target.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/_catkin_empty_exported_target.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/_catkin_empty_exported_target.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_cpp.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_cpp.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_cpp.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_cpp.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_cpp.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_cpp.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_eus.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_eus.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_eus.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_eus.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_eus.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_eus.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_lisp.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_lisp.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_lisp.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_lisp.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_lisp.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_lisp.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_nodejs.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_nodejs.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_nodejs.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_nodejs.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_nodejs.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_nodejs.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_py.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_py.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_py.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_py.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_py.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_py.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_eus.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_eus.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_eus.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_eus.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_eus.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_eus.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_py.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_py.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_py.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_py.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_py.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_py.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/clean_test_results.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/clean_test_results.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/clean_test_results.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/clean_test_results.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/cmake.check_cache
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/download_extra_data.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/download_extra_data.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/download_extra_data.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/download_extra_data.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/doxygen.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/doxygen.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/doxygen.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/doxygen.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_gencfg.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_gencfg.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_gencfg.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_gencfg.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_gencfg.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_gencfg.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_cpp.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_cpp.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_cpp.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_cpp.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_cpp.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_cpp.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_eus.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_eus.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_eus.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_eus.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_eus.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_eus.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_lisp.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_lisp.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_lisp.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_lisp.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_lisp.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_lisp.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_py.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_py.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_py.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_py.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_py.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_py.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_gencfg.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_gencfg.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_gencfg.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_gencfg.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_gencfg.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_gencfg.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/C.includecache
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/CXX.includecache
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/flags.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/link.txt
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_package.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_package.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_package.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_package.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/nonlinear_mpc_node.dir/CXX.includecache
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/nonlinear_mpc_node.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/nonlinear_mpc_node.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/nonlinear_mpc_node.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/nonlinear_mpc_node.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/nonlinear_mpc_node.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/nonlinear_mpc_node.dir/flags.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/nonlinear_mpc_node.dir/link.txt
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/nonlinear_mpc_node.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/progress.marks
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_cpp.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_cpp.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_cpp.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_cpp.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_cpp.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_cpp.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_eus.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_eus.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_eus.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_eus.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_eus.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_eus.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_lisp.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_lisp.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_lisp.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_lisp.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_lisp.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_lisp.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_nodejs.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_nodejs.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_nodejs.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_nodejs.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_nodejs.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_nodejs.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_py.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_py.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_py.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_py.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_py.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_py.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_py.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_py.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_py.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_py.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_py.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_py.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/run_tests.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/run_tests.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/run_tests.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/run_tests.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_cpp.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_cpp.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_cpp.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_cpp.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_cpp.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_cpp.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_eus.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_eus.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_eus.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_eus.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_eus.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_eus.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_lisp.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_lisp.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_lisp.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_lisp.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_lisp.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_lisp.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_py.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_py.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_py.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_py.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_py.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_py.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_cpp.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_cpp.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_cpp.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_cpp.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_cpp.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_cpp.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_eus.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_eus.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_eus.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_eus.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_eus.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_eus.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_lisp.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_lisp.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_lisp.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_lisp.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_lisp.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_lisp.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_nodejs.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_nodejs.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_nodejs.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_nodejs.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_nodejs.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_nodejs.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_py.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_py.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_py.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_py.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_py.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_py.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tests.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tests.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tests.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tests.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_cpp.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_cpp.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_cpp.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_cpp.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_cpp.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_cpp.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_eus.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_eus.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_eus.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_eus.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_eus.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_eus.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_lisp.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_lisp.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_lisp.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_lisp.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_lisp.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_lisp.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_py.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_py.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_py.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_py.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_py.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_py.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_cpp.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_cpp.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_cpp.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_cpp.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_cpp.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_cpp.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_eus.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_eus.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_eus.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_eus.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_eus.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_eus.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_lisp.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_lisp.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_lisp.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_lisp.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_lisp.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_lisp.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_nodejs.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_nodejs.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_nodejs.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_nodejs.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_nodejs.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_nodejs.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_py.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_py.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_py.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_py.dir/depend.internal
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_py.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_py.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CTestConfiguration.ini
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CTestCustom.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/CTestTestfile.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/Makefile
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/acado_auxiliary_functions.c
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/acado_auxiliary_functions.h
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/acado_common.h
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/acado_integrator.c
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/acado_qpoases_interface.cpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/acado_qpoases_interface.hpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/acado_solver.c
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/acado_solver_mex.c
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/atomic_configure/.rosinstall
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/atomic_configure/_setup_util.py
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/atomic_configure/env.sh
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/atomic_configure/local_setup.bash
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/atomic_configure/local_setup.sh
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/atomic_configure/local_setup.zsh
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/atomic_configure/setup.bash
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/atomic_configure/setup.sh
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/atomic_configure/setup.zsh
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/catkin/catkin_generated/version/package.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/env_cached.sh
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/generate_cached_setup.py
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/.rosinstall
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/_setup_util.py
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/env.sh
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/local_setup.bash
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/local_setup.sh
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/local_setup.zsh
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/mav_nonlinear_mpc.pc
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/mav_nonlinear_mpcConfig-version.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/mav_nonlinear_mpcConfig.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/setup.bash
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/setup.sh
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/setup.zsh
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/ordered_paths.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/package.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/pkg.develspace.context.pc.py
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/pkg.installspace.context.pc.py
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/setup_cached.sh
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/stamps/mav_nonlinear_mpc/_setup_util.py.stamp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/stamps/mav_nonlinear_mpc/interrogate_setup_dot_py.py.stamp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/stamps/mav_nonlinear_mpc/package.xml.stamp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/stamps/mav_nonlinear_mpc/pkg.pc.em.stamp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/cmake_install.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/devel/.catkin
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/devel/.rosinstall
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/devel/_setup_util.py
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/devel/cmake.lock
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/devel/env.sh
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/devel/include/mav_nonlinear_mpc/NonLinearMPCConfig.h
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/devel/lib/libmav_nonlinear_mpc_lib.so
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/devel/lib/pkgconfig/mav_nonlinear_mpc.pc
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/devel/lib/python3/dist-packages/mav_nonlinear_mpc/__init__.py
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/devel/lib/python3/dist-packages/mav_nonlinear_mpc/cfg/NonLinearMPCConfig.py
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/devel/lib/python3/dist-packages/mav_nonlinear_mpc/cfg/__init__.py
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/devel/local_setup.bash
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/devel/local_setup.sh
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/devel/local_setup.zsh
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/devel/setup.bash
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/devel/setup.sh
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/devel/setup.zsh
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/devel/share/mav_nonlinear_mpc/cmake/mav_nonlinear_mpcConfig-version.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/devel/share/mav_nonlinear_mpc/cmake/mav_nonlinear_mpcConfig.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/devel/share/mav_nonlinear_mpc/docs/NonLinearMPCConfig-usage.dox
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/devel/share/mav_nonlinear_mpc/docs/NonLinearMPCConfig.dox
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/devel/share/mav_nonlinear_mpc/docs/NonLinearMPCConfig.wikidoc
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/gtest/CMakeFiles/CMakeDirectoryInformation.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/gtest/CMakeFiles/progress.marks
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/gtest/CTestTestfile.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/gtest/Makefile
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/gtest/cmake_install.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/CMakeDirectoryInformation.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock.dir/flags.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock.dir/link.txt
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock_main.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock_main.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock_main.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock_main.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock_main.dir/flags.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock_main.dir/link.txt
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock_main.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/progress.marks
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CTestTestfile.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/Makefile
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/cmake_install.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/CMakeDirectoryInformation.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest.dir/flags.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest.dir/link.txt
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest_main.dir/DependInfo.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest_main.dir/build.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest_main.dir/cmake_clean.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest_main.dir/depend.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest_main.dir/flags.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest_main.dir/link.txt
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest_main.dir/progress.make
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/progress.marks
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CTestTestfile.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/Makefile
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/cmake_install.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/make_acado_solver.m
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/nmpc_solver_setup
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/nmpc_solver_setup.m
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/qpoases/EXAMPLES/example1.cpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/qpoases/EXAMPLES/example1b.cpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/Bounds.hpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/Constants.hpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/Constraints.hpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/CyclingManager.hpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/EXTRAS/SolutionAnalysis.hpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/Indexlist.hpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/MessageHandling.hpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/QProblem.hpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/QProblemB.hpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/SubjectTo.hpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/Types.hpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/Utils.hpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/qpoases/LICENSE.txt
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/qpoases/README.txt
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Bounds.cpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Bounds.ipp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Constraints.cpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Constraints.ipp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/CyclingManager.cpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/CyclingManager.ipp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Indexlist.cpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Indexlist.ipp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/MessageHandling.cpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/MessageHandling.ipp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/QProblem.cpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/QProblem.ipp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/QProblemB.cpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/QProblemB.ipp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/SubjectTo.cpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/SubjectTo.ipp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Utils.cpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Utils.ipp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/qpoases/VERSIONS.txt
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/setup_custom_pythonpath.sh
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/test
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver/test.c
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/CMakeLists.txt
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/README.md
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/cmake/FindACADO.cmake
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/nmpc_solver_setup.cpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/EXAMPLES/example1.cpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/EXAMPLES/example1b.cpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/Bounds.hpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/Constants.hpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/Constraints.hpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/CyclingManager.hpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/EXTRAS/SolutionAnalysis.hpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/Indexlist.hpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/MessageHandling.hpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/QProblem.hpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/QProblemB.hpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/SubjectTo.hpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/Types.hpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/Utils.hpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/LICENSE.txt
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/README.txt
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/Bounds.cpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/Bounds.ipp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/Constraints.cpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/Constraints.ipp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/CyclingManager.cpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/CyclingManager.ipp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/Indexlist.cpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/Indexlist.ipp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/MessageHandling.cpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/MessageHandling.ipp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/QProblem.cpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/QProblem.ipp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/QProblemB.cpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/QProblemB.ipp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/SubjectTo.cpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/SubjectTo.ipp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/Utils.cpp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/Utils.ipp
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/VERSIONS.txt
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/src/nonlinear_mpc.cc
 create mode 100644 mav_control_rw/mav_nonlinear_mpc/src/nonlinear_mpc_node.cc

diff --git a/mav_control_rw/.gitignore b/mav_control_rw/.gitignore
new file mode 100644
index 0000000..93d8b1c
--- /dev/null
+++ b/mav_control_rw/.gitignore
@@ -0,0 +1,33 @@
+# Compiled Object files
+*.slo
+*.lo
+*.o
+*.obj
+
+# Precompiled Headers
+*.gch
+*.pch
+
+# Fortran module files
+*.mod
+*.smod
+
+# Compiled Static libraries
+*.lai
+*.la
+*.a
+*.lib
+
+# Executables
+*.exe
+*.out
+*.app
+
+*.project
+*.cproject
+*.settings*
+*.DS_Store
+*.idea*
+
+# Build
+build/*
diff --git a/mav_control_rw/.travis.yml b/mav_control_rw/.travis.yml
new file mode 100644
index 0000000..a0e8771
--- /dev/null
+++ b/mav_control_rw/.travis.yml
@@ -0,0 +1,55 @@
+dist: trusty
+sudo: required
+language: generic
+compiler:
+  - gcc
+cache:
+  - apt
+
+env:
+  global:
+    #- ROS_DISTRO=jade
+    - ROS_CI_DESKTOP="$(lsb_release -cs)"
+    - CI_SOURCE_PATH=$(pwd)
+    - ROSINSTALL_FILE=$CI_SOURCE_PATH/dependencies.rosinstall
+    - ROS_PARALLEL_JOBS='-j8 -l6'
+
+  matrix:
+    - ROS_DISTRO=indigo
+    - ROS_DISTRO=jade
+
+before_install:
+  - sudo sh -c "echo \"deb http://packages.ros.org/ros/ubuntu $ROS_CI_DESKTOP main\" > /etc/apt/sources.list.d/ros-latest.list"
+  #- sudo sh -c "echo \"deb http://packages.ros.org/ros-shadow-fixed/ubuntu $ROS_CI_DESKTOP main\" > /etc/apt/sources.list.d/ros-latest.list"
+  - wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
+  - sudo apt-get -qq update
+  - sudo apt-get -qq install -y python-catkin-pkg python-rosdep python-wstool ros-$ROS_DISTRO-catkin python-catkin-tools
+  - sudo apt-get -qq install liblapacke-dev
+  - source /opt/ros/$ROS_DISTRO/setup.bash
+  # Prepare rosdep
+  - sudo rosdep init >> /dev/null
+  - rosdep update >> /dev/null
+
+install:
+  # Create catkin workspace
+  - mkdir -p ~/catkin_ws/src
+  - cd ~/catkin_ws
+  - catkin init >> /dev/null
+  - catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release >> /dev/null
+  - catkin build >> /dev/null
+  - source devel/setup.bash
+  
+before_script:
+  - cd ~/catkin_ws/src
+  - ln -s $CI_SOURCE_PATH .
+  - git clone https://github.com/ethz-asl/mav_comm.git >> /dev/null
+  - git clone https://github.com/ethz-asl/eigen_catkin.git >> /dev/null
+  - git clone https://github.com/catkin/catkin_simple.git >> /dev/null
+  - wstool init >> /dev/null
+  - wstool up >> /dev/null
+  - cd ~/catkin_ws
+  - rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO >> /dev/null
+  - cd ~/catkin_ws
+  - source devel/setup.bash
+
+script: travis_wait 40 catkin build --no-status
diff --git a/mav_control_rw/LICENSE b/mav_control_rw/LICENSE
new file mode 100644
index 0000000..8dada3e
--- /dev/null
+++ b/mav_control_rw/LICENSE
@@ -0,0 +1,201 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright {yyyy} {name of copyright owner}
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/mav_control_rw/README.md b/mav_control_rw/README.md
new file mode 100644
index 0000000..b364bf6
--- /dev/null
+++ b/mav_control_rw/README.md
@@ -0,0 +1,219 @@
+mav_control_rw [![Build Status](https://travis-ci.org/ethz-asl/mav_control_rw.svg?branch=master)](https://travis-ci.org/ethz-asl/mav_control_rw)
+======
+
+Control strategies for rotary wing Micro Aerial Vehicles (MAVs) using ROS
+
+Overview
+------
+
+This repository contains controllers for rotary wing MAVs. Currently we support the following controllers:
+- *mav_linear_mpc* : Linear MPC for MAV trajectory tracking
+- *mav_nonlinear_mpc* : Nonlinear MPC for MAV trajectory tracking
+- *PID_attitude_control* : low level PID attitude controller 
+
+Moreover, an external disturbance observer based on Kalman Filter is implemented to achieve offset-free tracking. 
+
+If you use any of these controllers within your research, please cite one of the following references
+
+```bibtex
+@incollection{kamelmpc2016,
+                author      = "Mina Kamel and Thomas Stastny and Kostas Alexis and Roland Siegwart",
+                title       = "Model Predictive Control for Trajectory Tracking of Unmanned Aerial Vehicles Using Robot Operating System",
+                editor      = "Anis Koubaa",
+                booktitle   = "Robot Operating System (ROS) The Complete Reference, Volume 2",
+                publisher   = "Springer",
+                year = “2017”,
+}
+```
+
+```bibtex
+@ARTICLE{2016arXiv161109240K,
+          author = {{Kamel}, M. and {Burri}, M. and {Siegwart}, R.},
+          title = "{Linear vs Nonlinear MPC for Trajectory Tracking Applied to Rotary Wing Micro Aerial Vehicles}",
+          journal = {ArXiv e-prints},
+          archivePrefix = "arXiv",
+          eprint = {1611.09240},
+          primaryClass = "cs.RO",
+          keywords = {Computer Science - Robotics},
+          year = 2016,
+          month = nov
+}
+
+```
+
+
+Installation instructions
+------
+
+To run the controller with RotorS simulator (https://github.com/ethz-asl/rotors_simulator), follow these instructions:
+
+* Install and initialize ROS indigo desktop full, additional ROS packages, catkin-tools:
+  
+```sh
+  $ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu `lsb_release -sc` main" > /etc/apt/sources.list.d/ros-latest.list'
+  $ wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
+  $ sudo apt-get update
+  $ sudo apt-get install ros-indigo-desktop-full ros-indigo-joy ros-indigo-octomap-ros python-wstool python-catkin-tools
+  $ sudo rosdep init
+  $ rosdep update
+  $ source /opt/ros/indigo/setup.bash
+```
+* Initialize catkin workspace:
+```sh
+  $ mkdir -p ~/catkin_ws/src
+  $ cd ~/catkin_ws
+  $ catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release
+  $ catkin init  # initialize your catkin workspace
+```
+* Get the controllers and dependencies
+```sh
+  $ sudo apt-get install liblapacke-dev
+  $ git clone https://github.com/catkin/catkin_simple.git
+  $ git clone https://github.com/ethz-asl/rotors_simulator.git
+  $ git clone https://github.com/ethz-asl/mav_comm.git
+  $ git clone https://github.com/ethz-asl/eigen_catkin.git
+
+  $ git clone https://github.com/ethz-asl/mav_control_rw.git
+```
+* Build the workspace  
+```sh
+  $ catkin build
+```
+
+* Run the simulator and the linear MPC. In seperate terminals run the following commands
+  
+```sh
+  $ roslaunch rotors_gazebo mav.launch mav_name:=firefly
+```
+```sh
+  $ roslaunch mav_linear_mpc mav_linear_mpc_sim.launch mav_name:=firefly
+```
+You can use `rqt` to publish commands to the controller.
+
+
+To run the controller with the multi sensor fusion (MSF) framewok (https://github.com/ethz-asl/ethzasl_msf):
+* Get msf
+```sh
+  $ git clone https://github.com/ethz-asl/ethzasl_msf.git
+```
+
+* Run the simulator, the linear MPC and MSF, in seperate terminals run the following commands
+  
+```sh
+  $ roslaunch rotors_gazebo mav.launch mav_name:=firefly
+```
+```sh
+  $ roslaunch mav_linear_mpc mav_linear_mpc_sim_msf.launch mav_name:=firefly
+```
+
+Don't forget to initialize MSF. 
+
+Supported autopilots
+------
+### Asctec Research Platforms
+This control will work as is with the ros interface to the now discontinued Asctec research platforms (Hummingbird, Pelican, Firefly and Neo). 
+
+### Pixhawk
+This controller requires some small modifications to the PX4 firmware to allow yaw rate inputs. A modified version of the firmware can be found [here](https://github.com/ethz-asl/ethzasl_mav_px4). The firmware is interfaced with through a [modified mavros node](https://github.com/ethz-asl/mavros).
+
+### DJI
+The controller can interface with DJI platforms through our [mav_dji_ros_interface](https://github.com/ethz-asl/mav_dji_ros_interface)
+
+Published and subscribed topics
+------
+
+The linear and nonlinear MPC controllers publish and subscribe to the following topics:
+
+- Published topics:
+  - **`command/roll_pitch_yawrate_thrust`** of type `mav_msgs/RollPitchYawrateThrust`. This is the command to the low level controller. Angles are in `rad` and `thrust` is in `N`.
+  - **`command/current_reference`** of type `trajectory_msgs/MultiDOFJointTrajectory`. This is the current reference.
+  -  **`state_machine/state_info`** of type `std_msgs/String`. This is the current state of the state machine of mav_control_interface.
+  -  **`predicted_state`** of type `visualization_msgs/Marker`. This is the predicted vehicle positions that can be used for visualization in `rviz`.
+  -  **`reference_trajectory`** of type `visualization_msgs/Marker`. This is the reference trajectory that can be used for visualization in `rviz`.
+  - **`KF_observer/observer_state`** of type `mav_disturbance_observer/ObserverState`. This is the disturbance observer state used for debugging purposes. It includes estimated external forces and torques.
+  
+- Subscribed topics:
+  - **`command/pose`** of type `geometry_msgs/PoseStamped`. This is a reference set point.
+  - **`command/trajectory`** of type `trajectory_msgs/MultiDOFJointTrajectory`. This is a desired trajectory reference that includes desired velocities and accelerations.
+  - **`rc`** of type `sensor_msgs/Joy`. This is the remote control commands for teleoperation purposes. It also serves to abort mission anytime.
+  - **`odometry`** of type `nav_msgs/Odometry`. This is the current state of the vehicle. The odometry msg includes pose and twist information.
+  
+  
+The PID attitude controller publishes and subscribes to the following topics:
+- Published topics:
+  - **`command/motor_speed`** of type `mav_msgs/Actuators`. This is the commanded motor speed.
+
+- Subscribed topics:
+  - **`command/roll_pitch_yawrate_thrust`** of type `mav_msgs/RollPitchYawrateThrust`.
+  - **`odometry`** of type `nav_msgs/Odometry`.
+  
+ 
+ 
+Parameters
+------
+A summary of the linear and nonlinear MPC parameters:
+
+| Parameter             | Description                                                                     |
+| --------------------  |:-------------------------------------------------------------------------------:| 
+| `use_rc_teleop`       | enable RC teleoperation. Set to `false` in case of simulation.                  |
+| `reference_frame`     | the name of the reference frame.                                                |
+| `verbose`             | controller prints on screen debugging information and computation time          |
+| `mass`                | vehicle mass                                                                    | 
+| `roll_time_constant`  | time constant of roll first order model                                         |
+| `pitch_time_constant` | time constant of pitch first order model                                        |
+|`roll_gain`            | gain of roll first order model                                                  |
+|`pitch_gain`           | gain of pitch first order model                                                 |
+|`drag_coefficients`    | drag on `x,y,z` axes                                                            |
+|`q_x, q_y, q_z`*       | penalty on position error                                                       |
+|`q_vx, q_vy, q_vz`*    | penalty on velocity error                                                       |
+|`q_roll, q_pitch`*     | penalty on attitude state                                                       |
+|`r_roll, r_pitch, r_thtust`*| penalty on control input                                                    |
+|`r_droll, r_dpitch, r_dthtust`*| penalty on delta control input (only Linear MPC)                        |
+|`roll_max, pitch_max, yaw_rate_max`*| limits of control input                                             |
+|`thrust_min, thrust_max`* | limit on thrust control input in `m/s^2`                                      |
+|`K_yaw`*                  | yaw P loop gain                                                               |
+|`Ki_xy, Ki_z`*            | integrator gains on `xy` and `z` axes respectively                            |
+|`position_error_integration_limit` | limit of position error integration                                 |
+|`antiwindup_ball`        | if the error is larger than this ball, no integral action is applied          |
+|`enable_offset_free`*     | use estimated disturbances to achieve offset free tracking                    |
+|`enable_integrator`*      | use error integration to achieve offset free tracking                         |
+|`sampling_time`          | the controller sampling time (must be equal to the rate of `odometry` message |
+|`prediction_sampling_time`| the prediction sampling time inside the controller                           |
+
+
+\* Through dynamic reconfigure, it is possible to change these parameters.
+
+--------
+
+
+A summary of the PID attitude parameters:
+
+| Parameter             | Description                                                                     |
+| --------------------  |:-------------------------------------------------------------------------------:| 
+| `inertia`             | vehicle inertia  `3x3` matrix                                                   |
+|`allocation_matrix`    | control allocation matrix depending on the configuration of the rotors          |
+|`n_rotors`             | number of rotors                                                                |
+|`rotor_force_constant` | force constant of the rotor in `N/rad^2` such that `F_i =rotor_force_constant*rotor_velocity^2`                                         |
+|`rotor_moment_constant`| rotor moment constant such that `M = rotor_moment_constant*F_i`                 |
+|`arm_length`           | distance between rotor and vehicle center                                       |
+|`roll_gain, pitch_gain`* | error proportional term                                                       |
+|`p_gain, q_gain, r_gain`* | derivative gain                                                              |
+|`roll_int_gain, pitch_int_gain`*| integrator gains                                                       |
+|`max_integrator_error`     | saturation on the integrator                                                |
+
+\* Through dynamic reconfigure, it is possible to change these parameters.
+
+ --------
+
+References
+------
+
+[1] Model Predictive Control for Trajectory Tracking of Unmanned Aerial Vehicles Using Robot Operating System. Mina Kamel, Thomas Stastny, Kostas Alexis and Roland Siegwart. Robot Operating System (ROS) The Complete Reference Volume 2. Springer 2017 (to appear)
+
+[2] Linear vs Nonlinear MPC for Trajectory Tracking Applied to Rotary Wing Micro Aerial Vehicles. Mina Kamel, Michael Burri and Roland Siegwart. arXiv:1611.09240
+
+--------
+
+Contact
+-------
+Mina Kamel fmina(at)ethz.ch
diff --git a/mav_control_rw/mav_nonlinear_mpc/.vscode/settings.json b/mav_control_rw/mav_nonlinear_mpc/.vscode/settings.json
new file mode 100644
index 0000000..691a8f6
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/.vscode/settings.json
@@ -0,0 +1,3 @@
+{
+    "C_Cpp.errorSquiggles": "Disabled"
+}
\ No newline at end of file
diff --git a/mav_control_rw/mav_nonlinear_mpc/CMakeLists.txt b/mav_control_rw/mav_nonlinear_mpc/CMakeLists.txt
new file mode 100644
index 0000000..93bf59c
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/CMakeLists.txt
@@ -0,0 +1,82 @@
+cmake_minimum_required(VERSION 2.8.3)
+project(mav_nonlinear_mpc)
+
+set(CMAKE_BUILD_TYPE Release)
+
+set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/cmake/")
+
+# On os x we need to use openblas for the lapacke library
+find_package(OpenBLAS REQUIRED)
+if (Openblas_FOUND)
+  message("-- Found Openblas library: ${Openblas_LIBRARIES}")
+  message("-- Found Openblas include dirs: ${Openblas_INCLUDE_DIRS}")
+  include_directories(${Openblas_INCLUDE_DIRS})
+  set(lapacke_LIBRARIES ${Openblas_LIBRARIES})
+else (Openblas_FOUND)
+  message("-- Openblas not found, trying to use lapacke")
+  find_package(LAPACK REQUIRED)
+  set(lapacke_LIBRARIES lapacke)
+endif (Openblas_FOUND)
+
+
+find_package(catkin_simple REQUIRED)
+catkin_simple(ALL_DEPS_REQUIRED)
+
+if(APPLE)
+  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -stdlib=libc++")
+else()
+  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
+endif()
+
+find_package(Eigen REQUIRED)
+include_directories(${Eigen_INCLUDE_DIRS})
+
+#############
+# LIBRARIES #
+#############
+cs_add_library(mav_nonlinear_mpc_lib
+  src/nonlinear_mpc.cc
+  solver/qpoases/SRC/Bounds.cpp
+  solver/qpoases/SRC/Constraints.cpp
+  solver/qpoases/SRC/CyclingManager.cpp
+  solver/qpoases/SRC/Indexlist.cpp
+  solver/qpoases/SRC/MessageHandling.cpp
+  solver/qpoases/SRC/QProblem.cpp
+  solver/qpoases/SRC/QProblemB.cpp
+  solver/qpoases/SRC/SubjectTo.cpp
+  solver/qpoases/SRC/Utils.cpp
+  solver/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp
+  solver/acado_qpoases_interface.cpp
+  solver/acado_integrator.c
+  solver/acado_solver.c
+  solver/acado_auxiliary_functions.c
+  )
+
+target_include_directories(mav_nonlinear_mpc_lib PUBLIC
+	solver/
+	solver/qpoases
+	solver/qpoases/INCLUDE
+	solver/qpoases/SRC
+	)
+
+############
+# BINARIES #
+############
+cs_add_executable(nonlinear_mpc_node
+  src/nonlinear_mpc_node.cc
+)
+
+#target_link_libraries(mav_nonlinear_mpc_lib ${lapacke_LIBRARIES})
+
+target_link_libraries(nonlinear_mpc_node mav_nonlinear_mpc_lib)
+target_link_libraries(mav_nonlinear_mpc_lib ${catkin_LIBRARIES})
+
+
+add_dependencies(nonlinear_mpc_node ${${PROJECT_NAME}_EXPORTED_TARGETS})
+
+
+##########
+# EXPORT #
+##########
+cs_install()
+cs_export()
diff --git a/mav_control_rw/mav_nonlinear_mpc/cfg/NonLinearMPC.cfg b/mav_control_rw/mav_nonlinear_mpc/cfg/NonLinearMPC.cfg
new file mode 100644
index 0000000..c8eaea4
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/cfg/NonLinearMPC.cfg
@@ -0,0 +1,36 @@
+#!/usr/bin/env python
+PACKAGE = "mav_nonlinear_mpc"
+
+from dynamic_reconfigure.parameter_generator_catkin import *
+
+gen = ParameterGenerator()
+
+gen.add("q_x",    double_t,    0, "Penality on x axis pos", 50.0 ,  0.001, 200.0)
+gen.add("q_y",    double_t,    0, "Penality on y axis pos", 50.0 ,  0.001, 200.0)
+gen.add("q_z",    double_t,    0, "Penality on z axis pos", 80.0 ,  0.001, 200.0)
+
+gen.add("q_vx",    double_t,    0, "Penality on x axis vel", 20.0 ,  0.001, 200.0)
+gen.add("q_vy",    double_t,    0, "Penality on y axis vel", 20.0 ,  0.001, 200.0)
+gen.add("q_vz",    double_t,    0, "Penality on z axis vel", 35.0 ,  0.001, 200.0)
+
+gen.add("q_roll",     double_t,    0, "Penality on roll state", 20.0 ,  0.001, 200.0)
+gen.add("q_pitch",    double_t,    0, "Penality on pitch state", 20.0 ,  0.001, 200.0)
+
+gen.add("r_roll",     double_t,    0, "Penality on roll cmd", 30.0 ,  1.0, 200.0)
+gen.add("r_pitch",    double_t,    0, "Penality on pitch cmd", 30.0 , 1.0, 200.0)
+gen.add("r_thrust",   double_t,    0, "Penality on thrust cmd", 5.0 , 1.0, 200.0)
+
+gen.add("roll_max",     double_t,    0, "max roll cmd [rad]", 0.45, 0.1, 1.0)
+gen.add("pitch_max",    double_t,    0, "max pitch cmd [rad]", 0.45, 0.1, 1.0)
+gen.add("yaw_rate_max",     double_t,    0, "max yawrate cmd [rad/s]", 1.5, 0.1, 2.0)
+gen.add("thrust_min",   double_t,    0, "min thrust cmd [m/s2]", 5.0 ,  5.0, 25.0)
+gen.add("thrust_max",   double_t,    0, "max thrust cmd [m/s2]", 15.0 ,  5.0, 25.0)
+
+gen.add("K_yaw",   double_t,    0, "yaw gain", 0.5 ,  0.01, 2.0)
+gen.add("Ki_xy",   double_t,    0, "integrator gain for xy", 0.2 ,  0.01, 3.0)
+gen.add("Ki_altitude",   double_t,    0, "integrator gain for altitude", 0.2 ,  0.01, 3.0)
+
+gen.add("enable_offset_free",   bool_t,   0, "XY offset free MPC",  True)
+gen.add("enable_integrator",   bool_t,   0, "integral action",  False)
+
+exit(gen.generate(PACKAGE, "Config", "NonLinearMPC"))
diff --git a/mav_control_rw/mav_nonlinear_mpc/cmake/FindOpenBLAS.cmake b/mav_control_rw/mav_nonlinear_mpc/cmake/FindOpenBLAS.cmake
new file mode 100644
index 0000000..c5bc3f4
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/cmake/FindOpenBLAS.cmake
@@ -0,0 +1,42 @@
+
+# - Finds Openblas and all dependencies
+# Once done this will define
+#  Openblas_FOUND - System has Openblas
+#  Openblas_INCLUDE_DIRS - The Openblas include directories
+#  Openblas_LIBRARIES - The libraries needed to use Openblas
+
+find_library(Openblas_LIBRARY
+  NAMES libopenblas.so libopenblas.lib libopenblas.dylib
+  PATHS ${Openblas_ROOT}/lib
+    /usr/lib/openblas-base
+    /usr/local/lib
+)
+
+# brew installed openblas library on os x is hard to find and depends on the installed version.
+if(Openblas_LIBRARY STREQUAL "Openblas_LIBRARY-NOTFOUND")
+  file(GLOB Openblas_LIBRARY /usr/local/Cellar/openblas/*/lib/libopenblas.dylib)
+endif()
+
+if(NOT OPENBLAS_IGNORE_HEADERS)
+  find_path(Openblas_INCLUDE_DIR
+    NAMES openblas_config.h
+    PATHS ${Openblas_ROOT}/include
+      /usr/include
+      /usr/local/include
+      /usr/local/Cellar
+      /usr/local/opt/openblas/include
+)
+endif()
+
+if((Openblas_LIBRARY STREQUAL "Openblas_LIBRARY-NOTFOUND") OR (Openblas_INCLUDE_DIR STREQUAL "Openblas_INCLUDE_DIR-NOTFOUND"))
+  set(Openblas_ROOT "" CACHE PATH "Path to the root of a Openblas installation")
+  set(Openblas_FOUND 0)
+  message(WARNING "Openblas not found. Please try specifying Openblas_ROOT")
+else()
+  set(Openblas_FOUND 1)
+  set(Openblas_INCLUDE_DIRS ${Openblas_INCLUDE_DIR})
+  set(Openblas_LIBRARIES ${Openblas_LIBRARY})
+  if(CMAKE_COMPILER_IS_GNUCC)
+    set(Openblas_LIBRARIES ${Openblas_LIBRARIES} gfortran pthread)
+  endif()
+endif()
diff --git a/mav_control_rw/mav_nonlinear_mpc/include/mav_nonlinear_mpc/nonlinear_mpc.h b/mav_control_rw/mav_nonlinear_mpc/include/mav_nonlinear_mpc/nonlinear_mpc.h
new file mode 100644
index 0000000..8ebc4e0
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/include/mav_nonlinear_mpc/nonlinear_mpc.h
@@ -0,0 +1,75 @@
+#ifndef INCLUDE_MAV_NONLINEAR_MPC_NONLINEAR_MPC_H_
+#define INCLUDE_MAV_NONLINEAR_MPC_NONLINEAR_MPC_H_
+
+#include <ros/ros.h>
+#include <Eigen/Eigen>
+#include <stdio.h>
+#include <algorithm>
+#include "acado_common.h"
+#include "acado_auxiliary_functions.h"
+#include <std_srvs/Empty.h>
+#include <geometry_msgs/Twist.h>
+#include <geometry_msgs/PoseStamped.h>
+#include <gazebo_msgs/GetModelState.h>
+#include <sensor_msgs/LaserScan.h>
+
+ACADOvariables acadoVariables;
+ACADOworkspace acadoWorkspace;
+
+namespace mav_control {
+
+class NonlinearModelPredictiveControl
+{
+ public:
+  NonlinearModelPredictiveControl(ros::NodeHandle& nh, const ros::NodeHandle& private_nh);
+  ~NonlinearModelPredictiveControl();
+
+  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
+ private:
+
+  // constants
+  static constexpr double kGravity = 9.8066;
+  static constexpr int kDisturbanceSize = 3;
+
+  // variables
+  float distToGoal, angleToGoal, originalGoalDist;
+  float husky_x, husky_y, yaw_angle;
+  float target_x = 8.0;
+  float target_y = 0.0;
+  float SCAN_MAX_VALUE = 11;
+
+  // ros node handles
+  ros::NodeHandle nh_, private_nh_;
+
+  // solver matrices
+  Eigen::Matrix<double, ACADO_NY, ACADO_NY> W_;
+  Eigen::Matrix<double, ACADO_NYN, ACADO_NYN> WN_;
+  Eigen::Matrix<double, ACADO_N + 1, ACADO_NX> state_;
+  Eigen::Matrix<double, ACADO_N, ACADO_NU> input_;
+  Eigen::Matrix<double, ACADO_N, ACADO_NY> reference_;
+  Eigen::Matrix<double, 1, ACADO_NYN> referenceN_;
+  Eigen::Matrix<double, ACADO_N + 1, ACADO_NOD> acado_online_data_;
+
+  // commands
+  Eigen::Vector4d command_roll_pitch_yaw_thrust_;
+
+  // initilize solver
+  void initializeAcadoSolver(Eigen::VectorXd x0);
+
+  // solve continuous time Riccati equation
+  Eigen::MatrixXd solveCARE(Eigen::MatrixXd Q, Eigen::MatrixXd R);
+
+  void initializeSolver();
+
+  void updateWeightingMatrices();
+
+  void goalCallback(const geometry_msgs::PoseStamped::ConstPtr& msg);
+
+  void scanCallback(const sensor_msgs::LaserScan::ConstPtr& msg);
+
+  void printInformation();
+};
+
+}
+
+#endif /* INCLUDE_MAV_NONLINEAR_MPC_NONLINEAR_MPC_H_ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/include/mav_nonlinear_mpc/nonlinear_mpc_node.h b/mav_control_rw/mav_nonlinear_mpc/include/mav_nonlinear_mpc/nonlinear_mpc_node.h
new file mode 100644
index 0000000..3d8c55b
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/include/mav_nonlinear_mpc/nonlinear_mpc_node.h
@@ -0,0 +1,37 @@
+#ifndef INCLUDE_MAV_NONLINEAR_MPC_NONLINEAR_MPC_NODE_H_
+#define INCLUDE_MAV_NONLINEAR_MPC_NONLINEAR_MPC_NODE_H_
+
+#include <boost/bind.hpp>
+#include <Eigen/Eigen>
+#include <stdio.h>
+
+//ros
+#include <ros/ros.h>
+#include <ros/callback_queue.h>
+
+//ros msgs
+
+//dynamic reconfiguration
+#include <dynamic_reconfigure/server.h>
+#include <mav_nonlinear_mpc/NonLinearMPCConfig.h>
+
+#include <mav_nonlinear_mpc/nonlinear_mpc.h>
+
+namespace mav_control {
+
+class NonLinearModelPredictiveControllerNode {
+ public:
+  NonLinearModelPredictiveControllerNode(ros::NodeHandle& nh, const ros::NodeHandle& private_nh);
+  ~NonLinearModelPredictiveControllerNode();
+
+  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
+ private:
+  NonlinearModelPredictiveControl nonlinear_mpc_;
+
+  dynamic_reconfigure::Server<mav_nonlinear_mpc::NonLinearMPCConfig> controller_dyn_config_server_;
+};
+
+}
+
+
+#endif /* INCLUDE_MAV_NONLINEAR_MPC_NONLINEAR_MPC_NODE_H_ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/launch/mav_nonlinear_mpc.launch b/mav_control_rw/mav_nonlinear_mpc/launch/mav_nonlinear_mpc.launch
new file mode 100644
index 0000000..b286cac
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/launch/mav_nonlinear_mpc.launch
@@ -0,0 +1,14 @@
+<launch>
+  <arg name="mav_name" default="husky" />
+  <arg name="namespace" default="$(arg mav_name)"/>    
+  <group ns="$(arg namespace)">
+    <node name="mav_nonlinear_mpc" pkg="mav_nonlinear_mpc" type="nonlinear_mpc_node" respawn="true" clear_params="true" output="screen">
+      <remap from="odometry" to="ground_truth/odometry" />
+      <rosparam file="$(find mav_nonlinear_mpc)/resources/nonlinear_mpc_$(arg mav_name).yaml" />
+      <param name="use_rc_teleop" value="true"/>
+      <param name="verbose" value="true" />
+      <param name="reference_frame" value="world"/>
+      <param name="use_sim_time" value="true"/>
+    </node>
+  </group>
+</launch>
diff --git a/mav_control_rw/mav_nonlinear_mpc/launch/mav_nonlinear_mpc_sim.launch b/mav_control_rw/mav_nonlinear_mpc/launch/mav_nonlinear_mpc_sim.launch
new file mode 100644
index 0000000..3e496cb
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/launch/mav_nonlinear_mpc_sim.launch
@@ -0,0 +1,13 @@
+<launch>
+  <arg name="mav_name" default="husky" />
+  <arg name="namespace" default="$(arg mav_name)"/>
+  <group ns="$(arg namespace)">
+    <node name="mav_nonlinear_mpc" pkg="mav_nonlinear_mpc" type="nonlinear_mpc_node" respawn="true" clear_params="true" output="screen">
+      <remap from="odometry" to="ground_truth/odometry" />
+      <rosparam file="$(find mav_nonlinear_mpc)/resources/nonlinear_mpc_$(arg mav_name).yaml" />
+      <param name="use_rc_teleop" value="false"/>
+      <param name="verbose" value="true" />
+      <param name="reference_frame" value="world"/>
+    </node>
+  </group>
+</launch>
diff --git a/mav_control_rw/mav_nonlinear_mpc/package.xml b/mav_control_rw/mav_nonlinear_mpc/package.xml
new file mode 100644
index 0000000..cd6a522
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/package.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+<package format="2">
+  <name>mav_nonlinear_mpc</name>
+  <version>1.0.0</version>
+  <description>
+    Nonlinear model predictive controller for trajectory tracking of multirotor system
+  </description>
+
+  <maintainer email="mina.kamel@mavt.ethz.com">Mina Kamel</maintainer>
+
+  <license>BSD</license>
+
+  <buildtool_depend>catkin</buildtool_depend>
+  <buildtool_depend>catkin_simple</buildtool_depend>
+
+  <depend>std_msgs</depend>
+  <depend>cmake_modules</depend>
+  <depend>roscpp</depend>
+  <depend>dynamic_reconfigure</depend>
+  <depend>tf</depend>
+</package>
diff --git a/mav_control_rw/mav_nonlinear_mpc/resources/nonlinear_mpc_firefly.yaml b/mav_control_rw/mav_nonlinear_mpc/resources/nonlinear_mpc_firefly.yaml
new file mode 100644
index 0000000..3c6aa84
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/resources/nonlinear_mpc_firefly.yaml
@@ -0,0 +1,53 @@
+#==================================================================================================================
+#
+# Project:	Nonlinear MPC for Hexacopter trajectory tracking.
+#
+# function:	NMPC Position controller parameters.
+#
+# Author:	Mina Kamel	mina.kamel@ethz.ch
+#
+# Generated:	20-Dec-2015 02:37:59
+#
+#==================================================================================================================
+
+## Controller Parameters:
+mass: 1.56
+roll_time_constant: 0.257
+roll_gain: 0.75
+pitch_time_constant: 0.259
+pitch_gain: 0.78
+linear_drag_coefficients: [0.01, 0.01, 0]
+
+# dynamic config default values:
+q_x : 80
+q_y : 80
+q_z : 120
+
+q_vx : 80
+q_vy : 80
+q_vz : 100
+
+q_roll : 10
+q_pitch: 10
+
+r_roll  : 50
+r_pitch : 50
+r_thrust : 1
+
+roll_max: deg(25.0)
+pitch_max: deg(25.0)
+thrust_min: 5
+thrust_max: 20
+
+K_yaw: 1.8
+
+Ki_xy: 0.2
+Ki_z: 0.3
+position_error_integration_limit: 2
+antiwindup_ball: 0.4
+
+enable_offset_free : true
+enable_integrator : true
+
+sampling_time: 0.01    #IMPORTANT: set this equal to the rate of odometry msg
+prediction_sampling_time: 0.1
\ No newline at end of file
diff --git a/mav_control_rw/mav_nonlinear_mpc/resources/nonlinear_mpc_hummingbird.yaml b/mav_control_rw/mav_nonlinear_mpc/resources/nonlinear_mpc_hummingbird.yaml
new file mode 100644
index 0000000..c1def79
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/resources/nonlinear_mpc_hummingbird.yaml
@@ -0,0 +1,53 @@
+#==================================================================================================================
+#
+# Project:	Nonlinear MPC for Hexacopter trajectory tracking.
+#
+# function:	NMPC Position controller parameters.
+#
+# Author:	Mina Kamel	mina.kamel@ethz.ch
+#
+# Generated:	20-Dec-2015 02:37:59
+#
+#==================================================================================================================
+
+## Controller Parameters:
+mass: 0.68
+roll_time_constant: 0.2
+pitch_time_constant: 0.23
+roll_gain: 0.85
+pitch_gain: 0.86
+drag_coefficients: [ 0.010000 , 0.010000, 0.0000]
+
+# dynamic config default values:
+q_x : 80
+q_y : 80
+q_z : 120
+
+q_vx : 80
+q_vy : 80
+q_vz : 100
+
+q_roll : 10
+q_pitch: 10
+
+r_roll  : 50
+r_pitch : 50
+r_thrust : 1
+
+roll_max: deg(25.0)
+pitch_max: deg(25.0)
+thrust_min: 5
+thrust_max: 20
+
+K_yaw: 1.8
+
+Ki_xy: 0.2
+Ki_z: 0.3
+position_error_integration_limit: 2
+antiwindup_ball: 0.4
+
+enable_offset_free : true
+enable_integrator : true
+
+sampling_time: 0.01    #IMPORTANT: set this equal to the rate of odometry msg
+prediction_sampling_time: 0.1
diff --git a/mav_control_rw/mav_nonlinear_mpc/resources/nonlinear_mpc_husky.yaml b/mav_control_rw/mav_nonlinear_mpc/resources/nonlinear_mpc_husky.yaml
new file mode 100644
index 0000000..1f29463
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/resources/nonlinear_mpc_husky.yaml
@@ -0,0 +1,9 @@
+## Controller Parameters:
+mass: 1.56
+
+# dynamic config default values:
+thrust_min: 5
+thrust_max: 20
+
+sampling_time: 0.01    #IMPORTANT: set this equal to the rate of odometry msg
+prediction_sampling_time: 0.1
\ No newline at end of file
diff --git a/mav_control_rw/mav_nonlinear_mpc/resources/nonlinear_mpc_neo11.yaml b/mav_control_rw/mav_nonlinear_mpc/resources/nonlinear_mpc_neo11.yaml
new file mode 100644
index 0000000..1490df4
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/resources/nonlinear_mpc_neo11.yaml
@@ -0,0 +1,53 @@
+#==================================================================================================================
+#
+# Project:	Nonlinear MPC for Hexacopter trajectory tracking.
+#
+# function:	NMPC Position controller parameters.
+#
+# Author:	Mina Kamel	mina.kamel@ethz.ch
+#
+# Generated:	20-Dec-2015 02:37:59
+#
+#==================================================================================================================
+
+## Controller Parameters:
+mass: 3.5
+roll_time_constant: 0.257
+roll_gain: 0.75
+pitch_time_constant: 0.259
+pitch_gain: 0.78
+linear_drag_coefficients: [0.01, 0.01, 0]
+
+# dynamic config default values:
+q_x : 80
+q_y : 80
+q_z : 120
+
+q_vx : 80
+q_vy : 80
+q_vz : 100
+
+q_roll : 10
+q_pitch: 10
+
+r_roll  : 50
+r_pitch : 50
+r_thrust : 1
+
+roll_max: deg(25.0)
+pitch_max: deg(25.0)
+thrust_min: 5
+thrust_max: 20
+
+K_yaw: 1.8
+
+Ki_xy: 0.2
+Ki_z: 0.3
+position_error_integration_limit: 2
+antiwindup_ball: 0.4
+
+enable_offset_free : true
+enable_integrator : true
+
+sampling_time: 0.01    #IMPORTANT: set this equal to the rate of odometry msg
+prediction_sampling_time: 0.1
\ No newline at end of file
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CATKIN_IGNORE b/mav_control_rw/mav_nonlinear_mpc/solver/CATKIN_IGNORE
new file mode 100644
index 0000000..e69de29
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeCache.txt b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeCache.txt
new file mode 100644
index 0000000..7d29074
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeCache.txt
@@ -0,0 +1,1003 @@
+# This is the CMakeCache file.
+# For build in directory: /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+# It was generated by CMake: /usr/bin/cmake
+# You can edit this file to change values found and used by cmake.
+# If you do not want to change any of the values, simply exit the editor.
+# If you do want to change a value, simply edit, save, and exit the editor.
+# The syntax for the file is as follows:
+# KEY:TYPE=VALUE
+# KEY is the name of a variable in the cache.
+# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!.
+# VALUE is the current value for the KEY.
+
+########################
+# EXTERNAL cache entries
+########################
+
+//Path to a library.
+BLAS_Accelerate_LIBRARY:FILEPATH=BLAS_Accelerate_LIBRARY-NOTFOUND
+
+//Path to a library.
+BLAS_acml_LIBRARY:FILEPATH=BLAS_acml_LIBRARY-NOTFOUND
+
+//Path to a library.
+BLAS_acml_mp_LIBRARY:FILEPATH=BLAS_acml_mp_LIBRARY-NOTFOUND
+
+//Path to a library.
+BLAS_blas_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libblas.so
+
+//Path to a library.
+BLAS_blis_LIBRARY:FILEPATH=BLAS_blis_LIBRARY-NOTFOUND
+
+//Path to a library.
+BLAS_complib.sgimath_LIBRARY:FILEPATH=BLAS_complib.sgimath_LIBRARY-NOTFOUND
+
+//Path to a library.
+BLAS_cxml_LIBRARY:FILEPATH=BLAS_cxml_LIBRARY-NOTFOUND
+
+//Path to a library.
+BLAS_dxml_LIBRARY:FILEPATH=BLAS_dxml_LIBRARY-NOTFOUND
+
+//Path to a library.
+BLAS_essl_LIBRARY:FILEPATH=BLAS_essl_LIBRARY-NOTFOUND
+
+//Path to a library.
+BLAS_f77blas_LIBRARY:FILEPATH=BLAS_f77blas_LIBRARY-NOTFOUND
+
+//Path to a library.
+BLAS_goto2_LIBRARY:FILEPATH=BLAS_goto2_LIBRARY-NOTFOUND
+
+//Path to a library.
+BLAS_mkl_LIBRARY:FILEPATH=BLAS_mkl_LIBRARY-NOTFOUND
+
+//Path to a library.
+BLAS_mkl_em64t_LIBRARY:FILEPATH=BLAS_mkl_em64t_LIBRARY-NOTFOUND
+
+//Path to a library.
+BLAS_mkl_ia32_LIBRARY:FILEPATH=BLAS_mkl_ia32_LIBRARY-NOTFOUND
+
+//Path to a library.
+BLAS_mkl_intel_LIBRARY:FILEPATH=BLAS_mkl_intel_LIBRARY-NOTFOUND
+
+//Path to a library.
+BLAS_mkl_intel_lp64_LIBRARY:FILEPATH=BLAS_mkl_intel_lp64_LIBRARY-NOTFOUND
+
+//Path to a library.
+BLAS_openblas_LIBRARY:FILEPATH=BLAS_openblas_LIBRARY-NOTFOUND
+
+//Path to a library.
+BLAS_scsl_LIBRARY:FILEPATH=BLAS_scsl_LIBRARY-NOTFOUND
+
+//Path to a library.
+BLAS_sgemm_LIBRARY:FILEPATH=BLAS_sgemm_LIBRARY-NOTFOUND
+
+//Path to a library.
+BLAS_sunperf_LIBRARY:FILEPATH=BLAS_sunperf_LIBRARY-NOTFOUND
+
+//Path to a library.
+BLAS_vecLib_LIBRARY:FILEPATH=BLAS_vecLib_LIBRARY-NOTFOUND
+
+//Builds the googlemock subproject
+BUILD_GMOCK:BOOL=ON
+
+//Build dynamically-linked binaries
+BUILD_SHARED_LIBS:BOOL=ON
+
+//Catkin enable testing
+CATKIN_ENABLE_TESTING:BOOL=ON
+
+//Prefix to apply to package generated via gendebian
+CATKIN_PACKAGE_PREFIX:STRING=
+
+//Catkin skip testing
+CATKIN_SKIP_TESTING:BOOL=OFF
+
+//Replace the CMake install command with a custom implementation
+// using symlinks instead of copying resources
+CATKIN_SYMLINK_INSTALL:BOOL=OFF
+
+//Path to a program.
+CMAKE_ADDR2LINE:FILEPATH=/usr/bin/addr2line
+
+//Path to a program.
+CMAKE_AR:FILEPATH=/usr/bin/ar
+
+//Choose the type of build, options are: None Debug Release RelWithDebInfo
+// MinSizeRel ...
+CMAKE_BUILD_TYPE:STRING=
+
+//Enable/Disable color output during build.
+CMAKE_COLOR_MAKEFILE:BOOL=ON
+
+//CXX compiler
+CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++
+
+//A wrapper around 'ar' adding the appropriate '--plugin' option
+// for the GCC compiler
+CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-9
+
+//A wrapper around 'ranlib' adding the appropriate '--plugin' option
+// for the GCC compiler
+CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-9
+
+//Flags used by the CXX compiler during all build types.
+CMAKE_CXX_FLAGS:STRING=
+
+//Flags used by the CXX compiler during DEBUG builds.
+CMAKE_CXX_FLAGS_DEBUG:STRING=-g
+
+//Flags used by the CXX compiler during MINSIZEREL builds.
+CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
+
+//Flags used by the CXX compiler during RELEASE builds.
+CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
+
+//Flags used by the CXX compiler during RELWITHDEBINFO builds.
+CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
+
+//C compiler
+CMAKE_C_COMPILER:FILEPATH=/usr/bin/cc
+
+//A wrapper around 'ar' adding the appropriate '--plugin' option
+// for the GCC compiler
+CMAKE_C_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-9
+
+//A wrapper around 'ranlib' adding the appropriate '--plugin' option
+// for the GCC compiler
+CMAKE_C_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-9
+
+//Flags used by the C compiler during all build types.
+CMAKE_C_FLAGS:STRING=
+
+//Flags used by the C compiler during DEBUG builds.
+CMAKE_C_FLAGS_DEBUG:STRING=-g
+
+//Flags used by the C compiler during MINSIZEREL builds.
+CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
+
+//Flags used by the C compiler during RELEASE builds.
+CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
+
+//Flags used by the C compiler during RELWITHDEBINFO builds.
+CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
+
+//Path to a program.
+CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND
+
+//Flags used by the linker during all build types.
+CMAKE_EXE_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during DEBUG builds.
+CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during MINSIZEREL builds.
+CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during RELEASE builds.
+CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during RELWITHDEBINFO builds.
+CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//Enable/Disable output of compile commands during generation.
+CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF
+
+//User executables (bin)
+CMAKE_INSTALL_BINDIR:PATH=bin
+
+//Read-only architecture-independent data (DATAROOTDIR)
+CMAKE_INSTALL_DATADIR:PATH=
+
+//Read-only architecture-independent data root (share)
+CMAKE_INSTALL_DATAROOTDIR:PATH=share
+
+//Documentation root (DATAROOTDIR/doc/PROJECT_NAME)
+CMAKE_INSTALL_DOCDIR:PATH=
+
+//C header files (include)
+CMAKE_INSTALL_INCLUDEDIR:PATH=include
+
+//Info documentation (DATAROOTDIR/info)
+CMAKE_INSTALL_INFODIR:PATH=
+
+//Object code libraries (lib)
+CMAKE_INSTALL_LIBDIR:PATH=lib
+
+//Program executables (libexec)
+CMAKE_INSTALL_LIBEXECDIR:PATH=libexec
+
+//Locale-dependent data (DATAROOTDIR/locale)
+CMAKE_INSTALL_LOCALEDIR:PATH=
+
+//Modifiable single-machine data (var)
+CMAKE_INSTALL_LOCALSTATEDIR:PATH=var
+
+//Man documentation (DATAROOTDIR/man)
+CMAKE_INSTALL_MANDIR:PATH=
+
+//C header files for non-gcc (/usr/include)
+CMAKE_INSTALL_OLDINCLUDEDIR:PATH=/usr/include
+
+//Install path prefix, prepended onto install directories.
+CMAKE_INSTALL_PREFIX:PATH=/usr/local
+
+//Run-time variable data (LOCALSTATEDIR/run)
+CMAKE_INSTALL_RUNSTATEDIR:PATH=
+
+//System admin executables (sbin)
+CMAKE_INSTALL_SBINDIR:PATH=sbin
+
+//Modifiable architecture-independent data (com)
+CMAKE_INSTALL_SHAREDSTATEDIR:PATH=com
+
+//Read-only single-machine data (etc)
+CMAKE_INSTALL_SYSCONFDIR:PATH=etc
+
+//Path to a program.
+CMAKE_LINKER:FILEPATH=/usr/bin/ld
+
+//Path to a program.
+CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make
+
+//Flags used by the linker during the creation of modules during
+// all build types.
+CMAKE_MODULE_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during the creation of modules during
+// DEBUG builds.
+CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during the creation of modules during
+// MINSIZEREL builds.
+CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during the creation of modules during
+// RELEASE builds.
+CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during the creation of modules during
+// RELWITHDEBINFO builds.
+CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//Path to a program.
+CMAKE_NM:FILEPATH=/usr/bin/nm
+
+//Path to a program.
+CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy
+
+//Path to a program.
+CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump
+
+//Value Computed by CMake
+CMAKE_PROJECT_DESCRIPTION:STATIC=
+
+//Value Computed by CMake
+CMAKE_PROJECT_HOMEPAGE_URL:STATIC=
+
+//Value Computed by CMake
+CMAKE_PROJECT_NAME:STATIC=mav_nonlinear_mpc
+
+//Value Computed by CMake
+CMAKE_PROJECT_VERSION:STATIC=1.10.0
+
+//Value Computed by CMake
+CMAKE_PROJECT_VERSION_MAJOR:STATIC=1
+
+//Value Computed by CMake
+CMAKE_PROJECT_VERSION_MINOR:STATIC=10
+
+//Value Computed by CMake
+CMAKE_PROJECT_VERSION_PATCH:STATIC=0
+
+//Value Computed by CMake
+CMAKE_PROJECT_VERSION_TWEAK:STATIC=
+
+//Path to a program.
+CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib
+
+//Path to a program.
+CMAKE_READELF:FILEPATH=/usr/bin/readelf
+
+//Flags used by the linker during the creation of shared libraries
+// during all build types.
+CMAKE_SHARED_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during the creation of shared libraries
+// during DEBUG builds.
+CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during the creation of shared libraries
+// during MINSIZEREL builds.
+CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during the creation of shared libraries
+// during RELEASE builds.
+CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during the creation of shared libraries
+// during RELWITHDEBINFO builds.
+CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//If set, runtime paths are not added when installing shared libraries,
+// but are added when building.
+CMAKE_SKIP_INSTALL_RPATH:BOOL=NO
+
+//If set, runtime paths are not added when using shared libraries.
+CMAKE_SKIP_RPATH:BOOL=NO
+
+//Flags used by the linker during the creation of static libraries
+// during all build types.
+CMAKE_STATIC_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during the creation of static libraries
+// during DEBUG builds.
+CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during the creation of static libraries
+// during MINSIZEREL builds.
+CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during the creation of static libraries
+// during RELEASE builds.
+CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during the creation of static libraries
+// during RELWITHDEBINFO builds.
+CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//Path to a program.
+CMAKE_STRIP:FILEPATH=/usr/bin/strip
+
+//If this value is on, makefiles will be generated without the
+// .SILENT directive, and all commands will be echoed to the console
+// during the make.  This is useful for debugging only. With Visual
+// Studio IDE projects all commands are done without /nologo.
+CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE
+
+//Path to a program.
+DOXYGEN_EXECUTABLE:FILEPATH=/usr/bin/doxygen
+
+//Doxygen found
+DOXYGEN_FOUND:BOOL=TRUE
+
+//Path to a file.
+EIGEN_INCLUDE_DIR:PATH=/usr/include/eigen3
+
+//Path to a program.
+EMPY_EXECUTABLE:FILEPATH=EMPY_EXECUTABLE-NOTFOUND
+
+//Empy script
+EMPY_SCRIPT:STRING=/usr/lib/python3/dist-packages/em.py
+
+//Path to a library.
+GMOCK_LIBRARY:FILEPATH=GMOCK_LIBRARY-NOTFOUND
+
+//Path to a library.
+GMOCK_LIBRARY_DEBUG:FILEPATH=GMOCK_LIBRARY_DEBUG-NOTFOUND
+
+//Path to a library.
+GMOCK_MAIN_LIBRARY:FILEPATH=GMOCK_MAIN_LIBRARY-NOTFOUND
+
+//Path to a library.
+GMOCK_MAIN_LIBRARY_DEBUG:FILEPATH=GMOCK_MAIN_LIBRARY_DEBUG-NOTFOUND
+
+//The directory containing a CMake configuration file for GMock.
+GMock_DIR:PATH=GMock_DIR-NOTFOUND
+
+//Path to a file.
+GTEST_INCLUDE_DIR:PATH=/usr/include
+
+//Path to a library.
+GTEST_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libgtest.a
+
+//Path to a library.
+GTEST_LIBRARY_DEBUG:FILEPATH=GTEST_LIBRARY_DEBUG-NOTFOUND
+
+//Path to a library.
+GTEST_MAIN_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libgtest_main.a
+
+//Path to a library.
+GTEST_MAIN_LIBRARY_DEBUG:FILEPATH=GTEST_MAIN_LIBRARY_DEBUG-NOTFOUND
+
+//The directory containing a CMake configuration file for GTest.
+GTest_DIR:PATH=GTest_DIR-NOTFOUND
+
+//Enable installation of googletest. (Projects embedding googletest
+// may want to turn this OFF.)
+INSTALL_GTEST:BOOL=OFF
+
+//Path to a library.
+LAPACK_Accelerate_LIBRARY:FILEPATH=LAPACK_Accelerate_LIBRARY-NOTFOUND
+
+//Path to a library.
+LAPACK_flame_LIBRARY:FILEPATH=LAPACK_flame_LIBRARY-NOTFOUND
+
+//Path to a library.
+LAPACK_goto2_LIBRARY:FILEPATH=LAPACK_goto2_LIBRARY-NOTFOUND
+
+//Path to a library.
+LAPACK_lapack_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/liblapack.so
+
+//Path to a library.
+LAPACK_mkl_lapack_LIBRARY:FILEPATH=LAPACK_mkl_lapack_LIBRARY-NOTFOUND
+
+//Path to a library.
+LAPACK_openblas_LIBRARY:FILEPATH=LAPACK_openblas_LIBRARY-NOTFOUND
+
+//Path to a library.
+LAPACK_vecLib_LIBRARY:FILEPATH=LAPACK_vecLib_LIBRARY-NOTFOUND
+
+//lsb_release executable was found
+LSB_FOUND:BOOL=TRUE
+
+//Path to a program.
+LSB_RELEASE_EXECUTABLE:FILEPATH=/usr/bin/lsb_release
+
+//Path to a program.
+NOSETESTS:FILEPATH=/usr/bin/nosetests3
+
+//Path to a file.
+Openblas_INCLUDE_DIR:PATH=Openblas_INCLUDE_DIR-NOTFOUND
+
+//Path to a library.
+Openblas_LIBRARY:FILEPATH=Openblas_LIBRARY-NOTFOUND
+
+//Path to the root of a Openblas installation
+Openblas_ROOT:PATH=
+
+//pkg-config executable
+PKG_CONFIG_EXECUTABLE:FILEPATH=/usr/bin/pkg-config
+
+//Path to a program.
+PYTHON_EXECUTABLE:FILEPATH=/usr/bin/python3
+
+//Specify specific Python version to use ('major.minor' or 'major')
+PYTHON_VERSION:STRING=3
+
+//Location of Python module em
+PY_EM:STRING=/usr/lib/python3/dist-packages/em.py
+
+//Path to a library.
+RT_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/librt.so
+
+//Enable debian style python package layout
+SETUPTOOLS_DEB_LAYOUT:BOOL=ON
+
+//Name of the computer/site where compile is being run
+SITE:STRING=olympen1-112
+
+//LSB Distrib tag
+UBUNTU:BOOL=TRUE
+
+//LSB Distrib - codename tag
+UBUNTU_FOCAL:BOOL=TRUE
+
+//Path to a file.
+_gmock_INCLUDES:FILEPATH=/usr/src/googletest/googlemock/include/gmock/gmock.h
+
+//Path to a file.
+_gmock_SOURCES:FILEPATH=/usr/src/gmock/src/gmock.cc
+
+//Path to a file.
+_gtest_INCLUDES:FILEPATH=/usr/include/gtest/gtest.h
+
+//Path to a file.
+_gtest_SOURCES:FILEPATH=/usr/src/gtest/src/gtest.cc
+
+//The directory containing a CMake configuration file for actionlib.
+actionlib_DIR:PATH=/opt/ros/noetic/share/actionlib/cmake
+
+//The directory containing a CMake configuration file for actionlib_msgs.
+actionlib_msgs_DIR:PATH=/home/simhe502/catkin_ws/devel/share/actionlib_msgs/cmake
+
+//The directory containing a CMake configuration file for catkin.
+catkin_DIR:PATH=/opt/ros/noetic/share/catkin/cmake
+
+//The directory containing a CMake configuration file for catkin_simple.
+catkin_simple_DIR:PATH=/home/simhe502/catkin_ws/devel/share/catkin_simple/cmake
+
+//The directory containing a CMake configuration file for cmake_modules.
+cmake_modules_DIR:PATH=/opt/ros/noetic/share/cmake_modules/cmake
+
+//The directory containing a CMake configuration file for cpp_common.
+cpp_common_DIR:PATH=/opt/ros/noetic/share/cpp_common/cmake
+
+//The directory containing a CMake configuration file for dynamic_reconfigure.
+dynamic_reconfigure_DIR:PATH=/opt/ros/noetic/share/dynamic_reconfigure/cmake
+
+//The directory containing a CMake configuration file for gencpp.
+gencpp_DIR:PATH=/opt/ros/noetic/share/gencpp/cmake
+
+//The directory containing a CMake configuration file for geneus.
+geneus_DIR:PATH=/opt/ros/noetic/share/geneus/cmake
+
+//The directory containing a CMake configuration file for genlisp.
+genlisp_DIR:PATH=/opt/ros/noetic/share/genlisp/cmake
+
+//The directory containing a CMake configuration file for genmsg.
+genmsg_DIR:PATH=/opt/ros/noetic/share/genmsg/cmake
+
+//The directory containing a CMake configuration file for gennodejs.
+gennodejs_DIR:PATH=/opt/ros/noetic/share/gennodejs/cmake
+
+//The directory containing a CMake configuration file for genpy.
+genpy_DIR:PATH=/opt/ros/noetic/share/genpy/cmake
+
+//The directory containing a CMake configuration file for geometry_msgs.
+geometry_msgs_DIR:PATH=/home/simhe502/catkin_ws/devel/share/geometry_msgs/cmake
+
+//Value Computed by CMake
+gmock_BINARY_DIR:STATIC=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock
+
+//Dependencies for the target
+gmock_LIB_DEPENDS:STATIC=general;gtest;
+
+//Value Computed by CMake
+gmock_SOURCE_DIR:STATIC=/usr/src/googletest/googlemock
+
+//Build all of Google Mock's own tests.
+gmock_build_tests:BOOL=OFF
+
+//Dependencies for the target
+gmock_main_LIB_DEPENDS:STATIC=general;gmock;
+
+//Value Computed by CMake
+googletest-distribution_BINARY_DIR:STATIC=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest
+
+//Value Computed by CMake
+googletest-distribution_SOURCE_DIR:STATIC=/usr/src/googletest
+
+//Value Computed by CMake
+gtest_BINARY_DIR:STATIC=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest
+
+//Value Computed by CMake
+gtest_SOURCE_DIR:STATIC=/usr/src/googletest/googletest
+
+//Build gtest's sample programs.
+gtest_build_samples:BOOL=OFF
+
+//Build all of gtest's own tests.
+gtest_build_tests:BOOL=OFF
+
+//Disable uses of pthreads in gtest.
+gtest_disable_pthreads:BOOL=OFF
+
+//Use shared (DLL) run-time lib even when Google Test is built
+// as static lib.
+gtest_force_shared_crt:BOOL=OFF
+
+//Build gtest with internal symbols hidden in shared libraries.
+gtest_hide_internal_symbols:BOOL=OFF
+
+//Dependencies for the target
+gtest_main_LIB_DEPENDS:STATIC=general;gtest;
+
+//Path to a library.
+lib:FILEPATH=/opt/ros/noetic/lib/libtf2.so
+
+//Value Computed by CMake
+mav_nonlinear_mpc_BINARY_DIR:STATIC=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+//Value Computed by CMake
+mav_nonlinear_mpc_SOURCE_DIR:STATIC=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+//Dependencies for the target
+mav_nonlinear_mpc_lib_LIB_DEPENDS:STATIC=general;/opt/ros/noetic/lib/libdynamic_reconfigure_config_init_mutex.so;general;/opt/ros/noetic/lib/libtf.so;general;/opt/ros/noetic/lib/libtf2_ros.so;general;/opt/ros/noetic/lib/libactionlib.so;general;/opt/ros/noetic/lib/libmessage_filters.so;general;/opt/ros/noetic/lib/libroscpp.so;general;/usr/lib/x86_64-linux-gnu/libpthread.so;general;/usr/lib/x86_64-linux-gnu/libboost_chrono.so.1.71.0;general;/usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.71.0;general;/opt/ros/noetic/lib/libxmlrpcpp.so;general;/opt/ros/noetic/lib/libtf2.so;general;/opt/ros/noetic/lib/libroscpp_serialization.so;general;/opt/ros/noetic/lib/librosconsole.so;general;/opt/ros/noetic/lib/librosconsole_log4cxx.so;general;/opt/ros/noetic/lib/librosconsole_backend_interface.so;general;/usr/lib/x86_64-linux-gnu/liblog4cxx.so;general;/usr/lib/x86_64-linux-gnu/libboost_regex.so.1.71.0;general;/opt/ros/noetic/lib/librostime.so;general;/usr/lib/x86_64-linux-gnu/libboost_date_time.so.1.71.0;general;/opt/ros/noetic/lib/libcpp_common.so;general;/usr/lib/x86_64-linux-gnu/libboost_system.so.1.71.0;general;/usr/lib/x86_64-linux-gnu/libboost_thread.so.1.71.0;general;/usr/lib/x86_64-linux-gnu/libconsole_bridge.so.0.4;general;/opt/ros/noetic/lib/libdynamic_reconfigure_config_init_mutex.so;general;/opt/ros/noetic/lib/libtf.so;general;/opt/ros/noetic/lib/libtf2_ros.so;general;/opt/ros/noetic/lib/libactionlib.so;general;/opt/ros/noetic/lib/libmessage_filters.so;general;/opt/ros/noetic/lib/libroscpp.so;general;/usr/lib/x86_64-linux-gnu/libpthread.so;general;/usr/lib/x86_64-linux-gnu/libboost_chrono.so.1.71.0;general;/usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.71.0;general;/opt/ros/noetic/lib/libxmlrpcpp.so;general;/opt/ros/noetic/lib/libtf2.so;general;/opt/ros/noetic/lib/libroscpp_serialization.so;general;/opt/ros/noetic/lib/librosconsole.so;general;/opt/ros/noetic/lib/librosconsole_log4cxx.so;general;/opt/ros/noetic/lib/librosconsole_backend_interface.so;general;/usr/lib/x86_64-linux-gnu/liblog4cxx.so;general;/usr/lib/x86_64-linux-gnu/libboost_regex.so.1.71.0;general;/opt/ros/noetic/lib/librostime.so;general;/usr/lib/x86_64-linux-gnu/libboost_date_time.so.1.71.0;general;/opt/ros/noetic/lib/libcpp_common.so;general;/usr/lib/x86_64-linux-gnu/libboost_system.so.1.71.0;general;/usr/lib/x86_64-linux-gnu/libboost_thread.so.1.71.0;general;/usr/lib/x86_64-linux-gnu/libconsole_bridge.so.0.4;
+
+//The directory containing a CMake configuration file for message_filters.
+message_filters_DIR:PATH=/opt/ros/noetic/share/message_filters/cmake
+
+//The directory containing a CMake configuration file for message_generation.
+message_generation_DIR:PATH=/opt/ros/noetic/share/message_generation/cmake
+
+//The directory containing a CMake configuration file for message_runtime.
+message_runtime_DIR:PATH=/opt/ros/noetic/share/message_runtime/cmake
+
+//The directory containing a CMake configuration file for rosconsole.
+rosconsole_DIR:PATH=/opt/ros/noetic/share/rosconsole/cmake
+
+//The directory containing a CMake configuration file for roscpp.
+roscpp_DIR:PATH=/opt/ros/noetic/share/roscpp/cmake
+
+//The directory containing a CMake configuration file for roscpp_serialization.
+roscpp_serialization_DIR:PATH=/opt/ros/noetic/share/roscpp_serialization/cmake
+
+//The directory containing a CMake configuration file for roscpp_traits.
+roscpp_traits_DIR:PATH=/opt/ros/noetic/share/roscpp_traits/cmake
+
+//The directory containing a CMake configuration file for rosgraph.
+rosgraph_DIR:PATH=/opt/ros/noetic/share/rosgraph/cmake
+
+//The directory containing a CMake configuration file for rosgraph_msgs.
+rosgraph_msgs_DIR:PATH=/opt/ros/noetic/share/rosgraph_msgs/cmake
+
+//The directory containing a CMake configuration file for rospy.
+rospy_DIR:PATH=/opt/ros/noetic/share/rospy/cmake
+
+//The directory containing a CMake configuration file for rostime.
+rostime_DIR:PATH=/opt/ros/noetic/share/rostime/cmake
+
+//The directory containing a CMake configuration file for sensor_msgs.
+sensor_msgs_DIR:PATH=/home/simhe502/catkin_ws/devel/share/sensor_msgs/cmake
+
+//The directory containing a CMake configuration file for std_msgs.
+std_msgs_DIR:PATH=/opt/ros/noetic/share/std_msgs/cmake
+
+//The directory containing a CMake configuration file for tf2.
+tf2_DIR:PATH=/opt/ros/noetic/share/tf2/cmake
+
+//The directory containing a CMake configuration file for tf2_msgs.
+tf2_msgs_DIR:PATH=/opt/ros/noetic/share/tf2_msgs/cmake
+
+//The directory containing a CMake configuration file for tf2_py.
+tf2_py_DIR:PATH=/opt/ros/noetic/share/tf2_py/cmake
+
+//The directory containing a CMake configuration file for tf2_ros.
+tf2_ros_DIR:PATH=/opt/ros/noetic/share/tf2_ros/cmake
+
+//The directory containing a CMake configuration file for tf.
+tf_DIR:PATH=/opt/ros/noetic/share/tf/cmake
+
+//The directory containing a CMake configuration file for xmlrpcpp.
+xmlrpcpp_DIR:PATH=/opt/ros/noetic/share/xmlrpcpp/cmake
+
+
+########################
+# INTERNAL cache entries
+########################
+
+//ADVANCED property for variable: BLAS_Accelerate_LIBRARY
+BLAS_Accelerate_LIBRARY-ADVANCED:INTERNAL=1
+//Have function sgemm_
+BLAS_WORKS:INTERNAL=
+//ADVANCED property for variable: BLAS_acml_LIBRARY
+BLAS_acml_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: BLAS_acml_mp_LIBRARY
+BLAS_acml_mp_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: BLAS_blas_LIBRARY
+BLAS_blas_LIBRARY-ADVANCED:INTERNAL=1
+//Have function sgemm_
+BLAS_blas_WORKS:INTERNAL=1
+//ADVANCED property for variable: BLAS_blis_LIBRARY
+BLAS_blis_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: BLAS_complib.sgimath_LIBRARY
+BLAS_complib.sgimath_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: BLAS_cxml_LIBRARY
+BLAS_cxml_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: BLAS_dxml_LIBRARY
+BLAS_dxml_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: BLAS_essl_LIBRARY
+BLAS_essl_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: BLAS_f77blas_LIBRARY
+BLAS_f77blas_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: BLAS_goto2_LIBRARY
+BLAS_goto2_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: BLAS_mkl_LIBRARY
+BLAS_mkl_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: BLAS_mkl_em64t_LIBRARY
+BLAS_mkl_em64t_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: BLAS_mkl_ia32_LIBRARY
+BLAS_mkl_ia32_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: BLAS_mkl_intel_LIBRARY
+BLAS_mkl_intel_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: BLAS_mkl_intel_lp64_LIBRARY
+BLAS_mkl_intel_lp64_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: BLAS_openblas_LIBRARY
+BLAS_openblas_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: BLAS_scsl_LIBRARY
+BLAS_scsl_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: BLAS_sgemm_LIBRARY
+BLAS_sgemm_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: BLAS_sunperf_LIBRARY
+BLAS_sunperf_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: BLAS_vecLib_LIBRARY
+BLAS_vecLib_LIBRARY-ADVANCED:INTERNAL=1
+//catkin environment
+CATKIN_ENV:INTERNAL=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/env_cached.sh
+CATKIN_TEST_RESULTS_DIR:INTERNAL=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/test_results
+//ADVANCED property for variable: CMAKE_ADDR2LINE
+CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_AR
+CMAKE_AR-ADVANCED:INTERNAL=1
+//This is the directory where this CMakeCache.txt was created
+CMAKE_CACHEFILE_DIR:INTERNAL=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+//Major version of cmake used to create the current loaded cache
+CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3
+//Minor version of cmake used to create the current loaded cache
+CMAKE_CACHE_MINOR_VERSION:INTERNAL=16
+//Patch version of cmake used to create the current loaded cache
+CMAKE_CACHE_PATCH_VERSION:INTERNAL=3
+//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE
+CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1
+//Path to CMake executable.
+CMAKE_COMMAND:INTERNAL=/usr/bin/cmake
+//Path to cpack program executable.
+CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack
+//Path to ctest program executable.
+CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest
+//ADVANCED property for variable: CMAKE_CXX_COMPILER
+CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR
+CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB
+CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS
+CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG
+CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL
+CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE
+CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO
+CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_COMPILER
+CMAKE_C_COMPILER-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_COMPILER_AR
+CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB
+CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS
+CMAKE_C_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG
+CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL
+CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE
+CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO
+CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_DLLTOOL
+CMAKE_DLLTOOL-ADVANCED:INTERNAL=1
+//Path to cache edit program executable.
+CMAKE_EDIT_COMMAND:INTERNAL=/usr/bin/ccmake
+//Executable file format
+CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS
+CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG
+CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL
+CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE
+CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS
+CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1
+//Name of external makefile project generator.
+CMAKE_EXTRA_GENERATOR:INTERNAL=
+//Name of generator.
+CMAKE_GENERATOR:INTERNAL=Unix Makefiles
+//Generator instance identifier.
+CMAKE_GENERATOR_INSTANCE:INTERNAL=
+//Name of generator platform.
+CMAKE_GENERATOR_PLATFORM:INTERNAL=
+//Name of generator toolset.
+CMAKE_GENERATOR_TOOLSET:INTERNAL=
+//Test CMAKE_HAVE_LIBC_PTHREAD
+CMAKE_HAVE_LIBC_PTHREAD:INTERNAL=
+//Have library pthreads
+CMAKE_HAVE_PTHREADS_CREATE:INTERNAL=
+//Have library pthread
+CMAKE_HAVE_PTHREAD_CREATE:INTERNAL=1
+//Have include pthread.h
+CMAKE_HAVE_PTHREAD_H:INTERNAL=1
+//Source directory with the top level CMakeLists.txt file for this
+// project
+CMAKE_HOME_DIRECTORY:INTERNAL=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+//ADVANCED property for variable: CMAKE_INSTALL_BINDIR
+CMAKE_INSTALL_BINDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_DATADIR
+CMAKE_INSTALL_DATADIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_DATAROOTDIR
+CMAKE_INSTALL_DATAROOTDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_DOCDIR
+CMAKE_INSTALL_DOCDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_INCLUDEDIR
+CMAKE_INSTALL_INCLUDEDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_INFODIR
+CMAKE_INSTALL_INFODIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_LIBDIR
+CMAKE_INSTALL_LIBDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_LIBEXECDIR
+CMAKE_INSTALL_LIBEXECDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_LOCALEDIR
+CMAKE_INSTALL_LOCALEDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_LOCALSTATEDIR
+CMAKE_INSTALL_LOCALSTATEDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_MANDIR
+CMAKE_INSTALL_MANDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_OLDINCLUDEDIR
+CMAKE_INSTALL_OLDINCLUDEDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_RUNSTATEDIR
+CMAKE_INSTALL_RUNSTATEDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_SBINDIR
+CMAKE_INSTALL_SBINDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_SHAREDSTATEDIR
+CMAKE_INSTALL_SHAREDSTATEDIR-ADVANCED:INTERNAL=1
+//Install .so files without execute permission.
+CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_SYSCONFDIR
+CMAKE_INSTALL_SYSCONFDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_LINKER
+CMAKE_LINKER-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MAKE_PROGRAM
+CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS
+CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG
+CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL
+CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE
+CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_NM
+CMAKE_NM-ADVANCED:INTERNAL=1
+//number of local generators
+CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=4
+//ADVANCED property for variable: CMAKE_OBJCOPY
+CMAKE_OBJCOPY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_OBJDUMP
+CMAKE_OBJDUMP-ADVANCED:INTERNAL=1
+//Platform information initialized
+CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_RANLIB
+CMAKE_RANLIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_READELF
+CMAKE_READELF-ADVANCED:INTERNAL=1
+//Path to CMake installation.
+CMAKE_ROOT:INTERNAL=/usr/share/cmake-3.16
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS
+CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG
+CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL
+CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE
+CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH
+CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SKIP_RPATH
+CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS
+CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG
+CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL
+CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE
+CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STRIP
+CMAKE_STRIP-ADVANCED:INTERNAL=1
+//uname command
+CMAKE_UNAME:INTERNAL=/usr/bin/uname
+//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
+CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: EIGEN_INCLUDE_DIR
+EIGEN_INCLUDE_DIR-ADVANCED:INTERNAL=1
+//Details about finding BLAS
+FIND_PACKAGE_MESSAGE_DETAILS_BLAS:INTERNAL=[/usr/lib/x86_64-linux-gnu/libblas.so][v()]
+//Details about finding Eigen
+FIND_PACKAGE_MESSAGE_DETAILS_Eigen:INTERNAL=[/usr/include/eigen3][v()]
+//Details about finding PY_em
+FIND_PACKAGE_MESSAGE_DETAILS_PY_em:INTERNAL=[/usr/lib/python3/dist-packages/em.py][v()]
+//Details about finding PkgConfig
+FIND_PACKAGE_MESSAGE_DETAILS_PkgConfig:INTERNAL=[/usr/bin/pkg-config][v0.29.1()]
+//Details about finding PythonInterp
+FIND_PACKAGE_MESSAGE_DETAILS_PythonInterp:INTERNAL=[/usr/bin/python3][v3.8.10()]
+//Details about finding Threads
+FIND_PACKAGE_MESSAGE_DETAILS_Threads:INTERNAL=[TRUE][v()]
+GMOCK_FROM_SOURCE_FOUND:INTERNAL=TRUE
+GMOCK_FROM_SOURCE_INCLUDE_DIRS:INTERNAL=/usr/src/googletest/googlemock/include
+GMOCK_FROM_SOURCE_LIBRARIES:INTERNAL=gmock
+GMOCK_FROM_SOURCE_LIBRARY_DIRS:INTERNAL=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gmock
+GMOCK_FROM_SOURCE_MAIN_LIBRARIES:INTERNAL=gmock_main
+//ADVANCED property for variable: GMOCK_LIBRARY
+GMOCK_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: GMOCK_LIBRARY_DEBUG
+GMOCK_LIBRARY_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: GMOCK_MAIN_LIBRARY
+GMOCK_MAIN_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: GMOCK_MAIN_LIBRARY_DEBUG
+GMOCK_MAIN_LIBRARY_DEBUG-ADVANCED:INTERNAL=1
+GTEST_FROM_SOURCE_FOUND:INTERNAL=TRUE
+GTEST_FROM_SOURCE_INCLUDE_DIRS:INTERNAL=/usr/include
+GTEST_FROM_SOURCE_LIBRARIES:INTERNAL=gtest
+GTEST_FROM_SOURCE_LIBRARY_DIRS:INTERNAL=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest
+GTEST_FROM_SOURCE_MAIN_LIBRARIES:INTERNAL=gtest_main
+//ADVANCED property for variable: GTEST_INCLUDE_DIR
+GTEST_INCLUDE_DIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: GTEST_LIBRARY
+GTEST_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: GTEST_LIBRARY_DEBUG
+GTEST_LIBRARY_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: GTEST_MAIN_LIBRARY
+GTEST_MAIN_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: GTEST_MAIN_LIBRARY_DEBUG
+GTEST_MAIN_LIBRARY_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: LAPACK_Accelerate_LIBRARY
+LAPACK_Accelerate_LIBRARY-ADVANCED:INTERNAL=1
+//Have function cheev_
+LAPACK_WORKS:INTERNAL=
+//ADVANCED property for variable: LAPACK_flame_LIBRARY
+LAPACK_flame_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: LAPACK_goto2_LIBRARY
+LAPACK_goto2_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: LAPACK_lapack_LIBRARY
+LAPACK_lapack_LIBRARY-ADVANCED:INTERNAL=1
+//Have function cheev_
+LAPACK_lapack_WORKS:INTERNAL=1
+//ADVANCED property for variable: LAPACK_mkl_lapack_LIBRARY
+LAPACK_mkl_lapack_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: LAPACK_openblas_LIBRARY
+LAPACK_openblas_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: LAPACK_vecLib_LIBRARY
+LAPACK_vecLib_LIBRARY-ADVANCED:INTERNAL=1
+PC_EIGEN_CFLAGS:INTERNAL=-I/usr/include/eigen3
+PC_EIGEN_CFLAGS_I:INTERNAL=
+PC_EIGEN_CFLAGS_OTHER:INTERNAL=
+PC_EIGEN_FOUND:INTERNAL=1
+PC_EIGEN_INCLUDEDIR:INTERNAL=
+PC_EIGEN_INCLUDE_DIRS:INTERNAL=/usr/include/eigen3
+PC_EIGEN_LDFLAGS:INTERNAL=
+PC_EIGEN_LDFLAGS_OTHER:INTERNAL=
+PC_EIGEN_LIBDIR:INTERNAL=
+PC_EIGEN_LIBRARIES:INTERNAL=
+PC_EIGEN_LIBRARY_DIRS:INTERNAL=
+PC_EIGEN_LIBS:INTERNAL=
+PC_EIGEN_LIBS_L:INTERNAL=
+PC_EIGEN_LIBS_OTHER:INTERNAL=
+PC_EIGEN_LIBS_PATHS:INTERNAL=
+PC_EIGEN_MODULE_NAME:INTERNAL=eigen3
+PC_EIGEN_PREFIX:INTERNAL=/usr
+PC_EIGEN_STATIC_CFLAGS:INTERNAL=-I/usr/include/eigen3
+PC_EIGEN_STATIC_CFLAGS_I:INTERNAL=
+PC_EIGEN_STATIC_CFLAGS_OTHER:INTERNAL=
+PC_EIGEN_STATIC_INCLUDE_DIRS:INTERNAL=/usr/include/eigen3
+PC_EIGEN_STATIC_LDFLAGS:INTERNAL=
+PC_EIGEN_STATIC_LDFLAGS_OTHER:INTERNAL=
+PC_EIGEN_STATIC_LIBDIR:INTERNAL=
+PC_EIGEN_STATIC_LIBRARIES:INTERNAL=
+PC_EIGEN_STATIC_LIBRARY_DIRS:INTERNAL=
+PC_EIGEN_STATIC_LIBS:INTERNAL=
+PC_EIGEN_STATIC_LIBS_L:INTERNAL=
+PC_EIGEN_STATIC_LIBS_OTHER:INTERNAL=
+PC_EIGEN_STATIC_LIBS_PATHS:INTERNAL=
+PC_EIGEN_VERSION:INTERNAL=3.3.7
+PC_EIGEN_eigen3_INCLUDEDIR:INTERNAL=
+PC_EIGEN_eigen3_LIBDIR:INTERNAL=
+PC_EIGEN_eigen3_PREFIX:INTERNAL=
+PC_EIGEN_eigen3_VERSION:INTERNAL=
+//ADVANCED property for variable: PKG_CONFIG_EXECUTABLE
+PKG_CONFIG_EXECUTABLE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: PYTHON_EXECUTABLE
+PYTHON_EXECUTABLE-ADVANCED:INTERNAL=1
+//This needs to be in PYTHONPATH when 'setup.py install' is called.
+//  And it needs to match.  But setuptools won't tell us where
+// it will install things.
+PYTHON_INSTALL_DIR:INTERNAL=lib/python3/dist-packages
+//CMAKE_INSTALL_PREFIX during last run
+_GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX:INTERNAL=/usr/local
+__pkg_config_arguments_PC_EIGEN:INTERNAL=eigen3
+__pkg_config_checked_PC_EIGEN:INTERNAL=1
+//ADVANCED property for variable: gmock_build_tests
+gmock_build_tests-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: gtest_build_samples
+gtest_build_samples-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: gtest_build_tests
+gtest_build_tests-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: gtest_disable_pthreads
+gtest_disable_pthreads-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: gtest_force_shared_crt
+gtest_force_shared_crt-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: gtest_hide_internal_symbols
+gtest_hide_internal_symbols-ADVANCED:INTERNAL=1
+prefix_result:INTERNAL=
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/3.16.3/CMakeCCompiler.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/3.16.3/CMakeCCompiler.cmake
new file mode 100644
index 0000000..c5ece7b
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/3.16.3/CMakeCCompiler.cmake
@@ -0,0 +1,76 @@
+set(CMAKE_C_COMPILER "/usr/bin/cc")
+set(CMAKE_C_COMPILER_ARG1 "")
+set(CMAKE_C_COMPILER_ID "GNU")
+set(CMAKE_C_COMPILER_VERSION "9.4.0")
+set(CMAKE_C_COMPILER_VERSION_INTERNAL "")
+set(CMAKE_C_COMPILER_WRAPPER "")
+set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11")
+set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert")
+set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes")
+set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros")
+set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert")
+
+set(CMAKE_C_PLATFORM_ID "Linux")
+set(CMAKE_C_SIMULATE_ID "")
+set(CMAKE_C_COMPILER_FRONTEND_VARIANT "")
+set(CMAKE_C_SIMULATE_VERSION "")
+
+
+
+set(CMAKE_AR "/usr/bin/ar")
+set(CMAKE_C_COMPILER_AR "/usr/bin/gcc-ar-9")
+set(CMAKE_RANLIB "/usr/bin/ranlib")
+set(CMAKE_C_COMPILER_RANLIB "/usr/bin/gcc-ranlib-9")
+set(CMAKE_LINKER "/usr/bin/ld")
+set(CMAKE_MT "")
+set(CMAKE_COMPILER_IS_GNUCC 1)
+set(CMAKE_C_COMPILER_LOADED 1)
+set(CMAKE_C_COMPILER_WORKS TRUE)
+set(CMAKE_C_ABI_COMPILED TRUE)
+set(CMAKE_COMPILER_IS_MINGW )
+set(CMAKE_COMPILER_IS_CYGWIN )
+if(CMAKE_COMPILER_IS_CYGWIN)
+  set(CYGWIN 1)
+  set(UNIX 1)
+endif()
+
+set(CMAKE_C_COMPILER_ENV_VAR "CC")
+
+if(CMAKE_COMPILER_IS_MINGW)
+  set(MINGW 1)
+endif()
+set(CMAKE_C_COMPILER_ID_RUN 1)
+set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m)
+set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
+set(CMAKE_C_LINKER_PREFERENCE 10)
+
+# Save compiler ABI information.
+set(CMAKE_C_SIZEOF_DATA_PTR "8")
+set(CMAKE_C_COMPILER_ABI "ELF")
+set(CMAKE_C_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
+
+if(CMAKE_C_SIZEOF_DATA_PTR)
+  set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}")
+endif()
+
+if(CMAKE_C_COMPILER_ABI)
+  set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}")
+endif()
+
+if(CMAKE_C_LIBRARY_ARCHITECTURE)
+  set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
+endif()
+
+set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "")
+if(CMAKE_C_CL_SHOWINCLUDES_PREFIX)
+  set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}")
+endif()
+
+
+
+
+
+set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/9/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include")
+set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "gcc;gcc_s;c;gcc;gcc_s")
+set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/9;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib")
+set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/3.16.3/CMakeCXXCompiler.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/3.16.3/CMakeCXXCompiler.cmake
new file mode 100644
index 0000000..278ef39
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/3.16.3/CMakeCXXCompiler.cmake
@@ -0,0 +1,88 @@
+set(CMAKE_CXX_COMPILER "/usr/bin/c++")
+set(CMAKE_CXX_COMPILER_ARG1 "")
+set(CMAKE_CXX_COMPILER_ID "GNU")
+set(CMAKE_CXX_COMPILER_VERSION "9.4.0")
+set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "")
+set(CMAKE_CXX_COMPILER_WRAPPER "")
+set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14")
+set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20")
+set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters")
+set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates")
+set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates")
+set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17")
+set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20")
+
+set(CMAKE_CXX_PLATFORM_ID "Linux")
+set(CMAKE_CXX_SIMULATE_ID "")
+set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "")
+set(CMAKE_CXX_SIMULATE_VERSION "")
+
+
+
+set(CMAKE_AR "/usr/bin/ar")
+set(CMAKE_CXX_COMPILER_AR "/usr/bin/gcc-ar-9")
+set(CMAKE_RANLIB "/usr/bin/ranlib")
+set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/gcc-ranlib-9")
+set(CMAKE_LINKER "/usr/bin/ld")
+set(CMAKE_MT "")
+set(CMAKE_COMPILER_IS_GNUCXX 1)
+set(CMAKE_CXX_COMPILER_LOADED 1)
+set(CMAKE_CXX_COMPILER_WORKS TRUE)
+set(CMAKE_CXX_ABI_COMPILED TRUE)
+set(CMAKE_COMPILER_IS_MINGW )
+set(CMAKE_COMPILER_IS_CYGWIN )
+if(CMAKE_COMPILER_IS_CYGWIN)
+  set(CYGWIN 1)
+  set(UNIX 1)
+endif()
+
+set(CMAKE_CXX_COMPILER_ENV_VAR "CXX")
+
+if(CMAKE_COMPILER_IS_MINGW)
+  set(MINGW 1)
+endif()
+set(CMAKE_CXX_COMPILER_ID_RUN 1)
+set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;CPP)
+set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC)
+
+foreach (lang C OBJC OBJCXX)
+  if (CMAKE_${lang}_COMPILER_ID_RUN)
+    foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS)
+      list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension})
+    endforeach()
+  endif()
+endforeach()
+
+set(CMAKE_CXX_LINKER_PREFERENCE 30)
+set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1)
+
+# Save compiler ABI information.
+set(CMAKE_CXX_SIZEOF_DATA_PTR "8")
+set(CMAKE_CXX_COMPILER_ABI "ELF")
+set(CMAKE_CXX_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
+
+if(CMAKE_CXX_SIZEOF_DATA_PTR)
+  set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}")
+endif()
+
+if(CMAKE_CXX_COMPILER_ABI)
+  set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}")
+endif()
+
+if(CMAKE_CXX_LIBRARY_ARCHITECTURE)
+  set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
+endif()
+
+set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "")
+if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX)
+  set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}")
+endif()
+
+
+
+
+
+set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "/usr/include/c++/9;/usr/include/x86_64-linux-gnu/c++/9;/usr/include/c++/9/backward;/usr/lib/gcc/x86_64-linux-gnu/9/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include")
+set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc")
+set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/9;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib")
+set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/3.16.3/CMakeDetermineCompilerABI_C.bin b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/3.16.3/CMakeDetermineCompilerABI_C.bin
new file mode 100644
index 0000000000000000000000000000000000000000..35de1468eef863e60eec8592df6b83860a5cea2c
GIT binary patch
literal 16552
zcmb<-^>JfjWMqH=W(GS35YIsXBH{p{7&0uO3<d@U2L=lUUIqsSSq2#fHU<U;7O)sZ
z9;O~f-(Z4>!)Oi&mw_3oPXfeXU|>L}WuWR{G{{XLArK9+55&fX8`vSDFq#4C50E}q
zkQ9^;6Nk}XK?)cc7+^F^93%|3PXVNvfq?;y&HyQ3U|@jJ$ofEG^FbG)?}IHWtpE)d
z4JZxM2jYVCG3Y_mGuWZh2cY)BXjpiH+z7%J(C|d3(VWeIt}g<r51n>_S`VW^c7TL}
zpO&P6*y#4a__*u~fa!xOut1}2K!!6gFu-V#9U!5=rzI)iZ~<|Mz_4fzg4%~G9t1!E
z&cMI`qoKjepr4bOWM-nDlcJlGnO9n&TVY|QYi6QXoUdmDwjJaykR6~j<?a{Cz{J3C
z03-$tMsS`GVPF8KbC5iL^pVa)1DD4y^><FcAiZFp)a!^<AoU<KKz4%EfD8udhdK$w
z1?vad0TKfx?Fj-63=E25TpT>Cyc{eH4j?&B1_lOx1_lNv*Q;-`IGwNUdOWG-V(PhE
z9;@lxYrG#HxOMjNJfo!BZ*LSv$Yj^gs^JlNG;gN_>khC5I0#VqL!$;og%kq=gAj@c
zgj0)@H6S7oat{viOi-9Jh%*Sl3JQpFh61QK1Dg11u($++1e!QE0|SE+R4+1B1h!Wk
zR9GPkGxRVpFbIM&8`N{4H~=Y_4fYowLxCWO$H0&Zp%}`b;;`~iA1b~9>K=6Wt3%am
zLd|i9s@H*vKY)sZ;teDf0d<c6)IFjgK@iT#OiBhNH#3I#_~eSj__WNt#GK5kREGF?
zkW_qeNn%k+d~RZ99!w;;xD=!+lOf(S#5X=AwJ0?`v$!O+D8$z}CqFMWBrz!`l_4`P
zEkC|Evnn+|Ek327q=+FtH6^hmks&@FL_thth>uUt&Ci2y;^P_OJ^ka0OHwlP;!BHD
zQ;@C8%*!lch)>M}2__X6Lv%pw$7;K~kEfG!ypf)fo+-$Wpj^Yiz`zKGOkfhihL9j7
zFcv7EfcT|SnVbv^ObpjR90mpkSh)%-&lI5H`vY3u!o(jy4d8&LADB3df5RSPAgGK1
z<wppQf#Cs?I4BRo#9ttZgYqm)`~#9WENy}0ejtg%>;{RC;?WQo4S~@R7!85Z5Eu=C
z(GZ|_2z=(3`{mL6hQp(q^`<@pgGcLu5~lwbJerSi90oh(zv&`<28K`nRTt|sF!0MW
zfYg8bueuk^b727U4c~fpUX1hTeB{ym<U>G+PcLg5BLjm+FE2lsvOUPa!0=zRNS}e>
z%LI>J+nFGHdRZrdD9axuq8{C>ejs-1ffCOD5BTL9Ko%c{(jL9GnIOqt(<Bh3`Ol;C
zgU7*l_8td+Fncf_^SJo0M8u<;RTU)JdZ2{k|ARDsc^3u-n0}CZ8*D++45iwk9?iB)
zpccGG=hG4%k8WEweFlaXn*aa*f06S4|NmpGfAts`7-J9f%cJOjS^oe3e~>|;9-U7+
zYu|WumOeP{`Um99Zr3*+Gdy}lkMc1v@NZ)g;NN$E(e)2Z^f;R6pV-47V;sYMdTon!
z7#JMGJUg#BhI)2>bqsOr{1fWYtDB<3z!2=C`4<!?FXI3G|L<||FLQ~!;caMm_;h~q
z>3rwX`P}ip$bFCI!;Bu5cS~P^;ww7VF~%|0G0rjma9WxkzkCbGec<>3#U#jHkeMKr
zAU;@flo$<x(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC7fzc2cF(JSRor8gS*wfF=-wJ7d
zDB8dx79<B2PfW^;cJ*-s2{1}CTZ85ZLGvXq-v9p(nz#G${{R0O3=9k$AO8Ob&1-%9
z@c%z(p3LIo|Nj>l7#LQ3{QqA9I=KRx8wHumSQW&;SRueD&BM+yfsug$Bo3PMU-AC`
ze^5`I!G#?>bECq*z+l3_z)<l1|9`LmpMV>mgcm<|IY$G7y_A)fu?lz^5Trkbfq@|c
zrVeBY0|Nud%n}9$2Fnls|AXh`T=@jrn4Edp>Uh{e^D&_L?I{cl3<)3p{|C?gx$z0~
zGkNk!^f9~gDfF_q@@e$2y6_pav3c-WG_$+&IppzKIPw`d@@Y8nDLC;-IPnQM@o|7=
z78&j^Ffep{`2Qa^#|L%7C^Z@aqaiRF0;3@?8UmvsFd71*Aut*OqaiRF0(1=l*!now
zdN^oz47}zW<PaVZ0m9%;76St>h|R#j@B+H7P7=z8t-F(k@<Dwl5EHaM6hy<;-+}sF
zAU;g~>%af`ApQdAqB&R}X$F)5>Q92?!3$^^7#O&~90rC*P#Uz}6U3AN5ey6r@b!{V
zKGax-1JLz$pf$4~sRK}hVeU8p5@cXt0Ii(`F=6J(fjFQ(ER_EJAL3p{2FQ}>e^CAc
zsCoaPd{{Vsfby%L@;{+`n7g3HQjdbI52w&X*g8meXJ;z~jnJghypmD{OFa`k16{*X
zFwd~g$Ux7)M9)wYB2L&sW(G$1x_)HU%nVEnuyx|7;>--N_2;PKEDSYR0+5-3l>wHH
zP}Q?RHYFeng4bfRGr-arvJ^7|2Lmj=P{lbJVDXG9&cy&rPpIPD4B!C(WI?dKJPZoZ
z{DdsU%)rZFfK{B20k+;4RXsmEAEJs2Aoe97NiZ`AGQif?BMCDwGYBzMK-U|iiVMTn
z)1r!tFu?LNs<<cve18Ix1T%veJpUmHGcYq?uEz$+Gc!nFtOJLL!%7<v4}wAYjD_Lj
ze+Umjg32u>20n%YwD9C(0Ie40V_1MDt_T%}m4h&o%)#rC5$*xm2a<CGi(`gEF4P=Y
zxe8JX!j)k4nBfT;AH(MUHDL7u3>wgQ0l6Dw4#<9N>bHW`3o)dCJOWaPgt4i&VFZN(
zX8M7w1rf%G-z#AA#Tj7b0?hb_U~$ZNe+5>6>EFL#am;imzzACRjk*3`1}u)5eolei
zkD0%W7(x3H_!!XF)jKg_%@PdL!Qz<dFpd$jF93ZVem)~8OJlmT3~Vphb11}AsCxAM
z3yZ+^q9_G(HbU)%?JI(<83*m}5dx)WXuS&_lVo6EI1k--fW8l6HrPFgasxbe%D}*I
z0qh<`dInp{z`$?^svdox!b2SH{LP4cp9Mp5QAu%0X<C|IG6Q1EL3~MWd@^X$K{04!
zL4JICPJU8iPJBv9eo=9JVrd0Ka(-?>PHIVNik^jmnIU#X;LQy2iA6<;mGP;0B}J7C
zX+?>-sqrbLxw(}L@$pE!c+f@!6s69-iP@>n&iT0onK`LNj!vF>$&kGdiAk9Z@$qg!
zj=rw(u6{0{?G329L3<feiu2<$67y1WQW@f1BK;hFJ)Ifik(GgWUogbSyZeR4yLv#4
z^Kc1bh>s8Pb%q)2?&I&|=o9bn<`(Q45+CB|<l`ETynP}qGmqTe8fbe!92}6hR>V`V
znIj&tj{~x~1hkn1>t+treJQ9eV9+bB%q>YwV$drtDT2@$Fji(>Nor96gI->KNvd9Y
zUa4L|QGP*cQAs6|P*Q1TPKs`33RK9^$y2u^F`WUdJR`9<gF!E)GOxHY7ebd5L1fBO
zi;6Sz^H4bPMGSgHsX2)t4Gemqbi$xlkW&IC^wRT781za~D@qvjz;U5hln>el!=RU%
z0Zm>RDMbh#L_Z{*L3F^_DV2GNxtYlfdJyeN#l;MI$@#gtsd=DD2Uw<~fCja*L3IIa
z4+^gRk}xYkYGG^;t<1o{0BQ@v^uyX;FdACzfRutUtep(zFfcHfq3MUU(_l1ceg>u%
zM8nE45F3O&(e%UGb1)j+esule3=9n4{{PR1xgXZ<gVCTlACNuJW;dj<4ibRkL<R;1
zP~QQjAJ)Hs(KDa{1_~n(6Xt(dzW}sf4b%jM>4&u=VKl6N0<{j_pMvoVL2F=<+z)GS
z!f5d16$1l!KP^ZP%pMqB$H2e<>U+TWuy!eohJ_!x`$1-ba4&SfElfYG{R*c+ijeF_
z_y2Toy^nAoyqybeSAo(e)Ce$z9)EMu^uyZ2FdAwMSTBfx@nQ5LH2tu4GmM6*1L*}}
z7#~K1_78&M6_!3=?Q0ml6eJ1K2*ogcP%gtpH2Y!wVHgeTC&SdE`+qxBKP>!V^*xLR
z<u90C5RGpCel-2Cc0G&+&BcQB!7#f0XVLV-+W#>6156{7hQ&XW%W$26fdSMe1?2&d
z7_9#f+gFRO9>#~!kD+^1VftbHi67AY(J*x&vq2cfhtcn$X%nU&-tU0!lLobyK>9%G
zA4J3S!NPGF)c-L3u<?Nd(1sFpTOdd)7{m0#=pShM;q5yEuyS~IfbgJ$1uzaM??T5E
zVD`iIjS4{Z!|Z`+K}(Jd%;0u00|Qh!Oc?`AzcyS1!hq>Vrr~K1q6ADjzzl?D3{XA>
u3BlY0EB`>_BrvywH9`poXu=goGaP0wR2c)P8H-JSxCKN751IxvE&~7|tAnKg

literal 0
HcmV?d00001

diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/3.16.3/CMakeDetermineCompilerABI_CXX.bin b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/3.16.3/CMakeDetermineCompilerABI_CXX.bin
new file mode 100644
index 0000000000000000000000000000000000000000..9cba7ec766c0da3a854716392dd048bc86eb07ca
GIT binary patch
literal 16560
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

literal 0
HcmV?d00001

diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/3.16.3/CMakeSystem.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/3.16.3/CMakeSystem.cmake
new file mode 100644
index 0000000..3d4e5ed
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/3.16.3/CMakeSystem.cmake
@@ -0,0 +1,15 @@
+set(CMAKE_HOST_SYSTEM "Linux-5.4.0-132-generic")
+set(CMAKE_HOST_SYSTEM_NAME "Linux")
+set(CMAKE_HOST_SYSTEM_VERSION "5.4.0-132-generic")
+set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64")
+
+
+
+set(CMAKE_SYSTEM "Linux-5.4.0-132-generic")
+set(CMAKE_SYSTEM_NAME "Linux")
+set(CMAKE_SYSTEM_VERSION "5.4.0-132-generic")
+set(CMAKE_SYSTEM_PROCESSOR "x86_64")
+
+set(CMAKE_CROSSCOMPILING "FALSE")
+
+set(CMAKE_SYSTEM_LOADED 1)
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/3.16.3/CompilerIdC/CMakeCCompilerId.c b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/3.16.3/CompilerIdC/CMakeCCompilerId.c
new file mode 100644
index 0000000..d884b50
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/3.16.3/CompilerIdC/CMakeCCompilerId.c
@@ -0,0 +1,671 @@
+#ifdef __cplusplus
+# error "A C++ compiler has been selected for C."
+#endif
+
+#if defined(__18CXX)
+# define ID_VOID_MAIN
+#endif
+#if defined(__CLASSIC_C__)
+/* cv-qualifiers did not exist in K&R C */
+# define const
+# define volatile
+#endif
+
+
+/* Version number components: V=Version, R=Revision, P=Patch
+   Version date components:   YYYY=Year, MM=Month,   DD=Day  */
+
+#if defined(__INTEL_COMPILER) || defined(__ICC)
+# define COMPILER_ID "Intel"
+# if defined(_MSC_VER)
+#  define SIMULATE_ID "MSVC"
+# endif
+# if defined(__GNUC__)
+#  define SIMULATE_ID "GNU"
+# endif
+  /* __INTEL_COMPILER = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
+# if defined(__INTEL_COMPILER_UPDATE)
+#  define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
+# else
+#  define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER   % 10)
+# endif
+# if defined(__INTEL_COMPILER_BUILD_DATE)
+  /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
+#  define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
+# endif
+# if defined(_MSC_VER)
+   /* _MSC_VER = VVRR */
+#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+# if defined(__GNUC__)
+#  define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
+# elif defined(__GNUG__)
+#  define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
+# endif
+# if defined(__GNUC_MINOR__)
+#  define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
+# endif
+# if defined(__GNUC_PATCHLEVEL__)
+#  define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+# endif
+
+#elif defined(__PATHCC__)
+# define COMPILER_ID "PathScale"
+# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
+# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
+# if defined(__PATHCC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
+# endif
+
+#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
+# define COMPILER_ID "Embarcadero"
+# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
+# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
+# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__     & 0xFFFF)
+
+#elif defined(__BORLANDC__)
+# define COMPILER_ID "Borland"
+  /* __BORLANDC__ = 0xVRR */
+# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
+# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
+
+#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
+# define COMPILER_ID "Watcom"
+   /* __WATCOMC__ = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__WATCOMC__)
+# define COMPILER_ID "OpenWatcom"
+   /* __WATCOMC__ = VVRP + 1100 */
+# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__SUNPRO_C)
+# define COMPILER_ID "SunPro"
+# if __SUNPRO_C >= 0x5100
+   /* __SUNPRO_C = 0xVRRP */
+#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12)
+#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF)
+#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_C    & 0xF)
+# else
+   /* __SUNPRO_CC = 0xVRP */
+#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8)
+#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF)
+#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_C    & 0xF)
+# endif
+
+#elif defined(__HP_cc)
+# define COMPILER_ID "HP"
+  /* __HP_cc = VVRRPP */
+# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000)
+# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100)
+# define COMPILER_VERSION_PATCH DEC(__HP_cc     % 100)
+
+#elif defined(__DECC)
+# define COMPILER_ID "Compaq"
+  /* __DECC_VER = VVRRTPPPP */
+# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000)
+# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000  % 100)
+# define COMPILER_VERSION_PATCH DEC(__DECC_VER         % 10000)
+
+#elif defined(__IBMC__) && defined(__COMPILER_VER__)
+# define COMPILER_ID "zOS"
+  /* __IBMC__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMC__    % 10)
+
+#elif defined(__ibmxl__) && defined(__clang__)
+# define COMPILER_ID "XLClang"
+# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
+# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
+# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
+# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
+
+
+#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800
+# define COMPILER_ID "XL"
+  /* __IBMC__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMC__    % 10)
+
+#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800
+# define COMPILER_ID "VisualAge"
+  /* __IBMC__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMC__    % 10)
+
+#elif defined(__PGI)
+# define COMPILER_ID "PGI"
+# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
+# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
+# if defined(__PGIC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
+# endif
+
+#elif defined(_CRAYC)
+# define COMPILER_ID "Cray"
+# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
+# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
+
+#elif defined(__TI_COMPILER_VERSION__)
+# define COMPILER_ID "TI"
+  /* __TI_COMPILER_VERSION__ = VVVRRRPPP */
+# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
+# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000   % 1000)
+# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__        % 1000)
+
+#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version)
+# define COMPILER_ID "Fujitsu"
+
+#elif defined(__ghs__)
+# define COMPILER_ID "GHS"
+/* __GHS_VERSION_NUMBER = VVVVRP */
+# ifdef __GHS_VERSION_NUMBER
+# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100)
+# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER      % 10)
+# endif
+
+#elif defined(__TINYC__)
+# define COMPILER_ID "TinyCC"
+
+#elif defined(__BCC__)
+# define COMPILER_ID "Bruce"
+
+#elif defined(__SCO_VERSION__)
+# define COMPILER_ID "SCO"
+
+#elif defined(__ARMCC_VERSION) && !defined(__clang__)
+# define COMPILER_ID "ARMCC"
+#if __ARMCC_VERSION >= 1000000
+  /* __ARMCC_VERSION = VRRPPPP */
+  # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
+  # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
+  # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION     % 10000)
+#else
+  /* __ARMCC_VERSION = VRPPPP */
+  # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
+  # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
+  # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION    % 10000)
+#endif
+
+
+#elif defined(__clang__) && defined(__apple_build_version__)
+# define COMPILER_ID "AppleClang"
+# if defined(_MSC_VER)
+#  define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+   /* _MSC_VER = VVRR */
+#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
+
+#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION)
+# define COMPILER_ID "ARMClang"
+  # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000)
+  # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100)
+  # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION     % 10000)
+# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION)
+
+#elif defined(__clang__)
+# define COMPILER_ID "Clang"
+# if defined(_MSC_VER)
+#  define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+   /* _MSC_VER = VVRR */
+#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+
+#elif defined(__GNUC__)
+# define COMPILER_ID "GNU"
+# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
+# if defined(__GNUC_MINOR__)
+#  define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
+# endif
+# if defined(__GNUC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+# endif
+
+#elif defined(_MSC_VER)
+# define COMPILER_ID "MSVC"
+  /* _MSC_VER = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
+# if defined(_MSC_FULL_VER)
+#  if _MSC_VER >= 1400
+    /* _MSC_FULL_VER = VVRRPPPPP */
+#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
+#  else
+    /* _MSC_FULL_VER = VVRRPPPP */
+#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
+#  endif
+# endif
+# if defined(_MSC_BUILD)
+#  define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
+# endif
+
+#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
+# define COMPILER_ID "ADSP"
+#if defined(__VISUALDSPVERSION__)
+  /* __VISUALDSPVERSION__ = 0xVVRRPP00 */
+# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)
+# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)
+# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8  & 0xFF)
+#endif
+
+#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
+# define COMPILER_ID "IAR"
+# if defined(__VER__) && defined(__ICCARM__)
+#  define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
+#  define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
+#  define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
+#  define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
+# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__))
+#  define COMPILER_VERSION_MAJOR DEC((__VER__) / 100)
+#  define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100))
+#  define COMPILER_VERSION_PATCH DEC(__SUBVERSION__)
+#  define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
+# endif
+
+#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC)
+# define COMPILER_ID "SDCC"
+# if defined(__SDCC_VERSION_MAJOR)
+#  define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR)
+#  define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR)
+#  define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH)
+# else
+  /* SDCC = VRP */
+#  define COMPILER_VERSION_MAJOR DEC(SDCC/100)
+#  define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10)
+#  define COMPILER_VERSION_PATCH DEC(SDCC    % 10)
+# endif
+
+
+/* These compilers are either not known or too old to define an
+  identification macro.  Try to identify the platform and guess that
+  it is the native compiler.  */
+#elif defined(__hpux) || defined(__hpua)
+# define COMPILER_ID "HP"
+
+#else /* unknown compiler */
+# define COMPILER_ID ""
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+   getting matched.  Store it in a pointer rather than an array
+   because some compilers will just produce instructions to fill the
+   array rather than assigning a pointer to a static array.  */
+char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
+#ifdef SIMULATE_ID
+char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
+#endif
+
+#ifdef __QNXNTO__
+char const* qnxnto = "INFO" ":" "qnxnto[]";
+#endif
+
+#if defined(__CRAYXE) || defined(__CRAYXC)
+char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
+#endif
+
+#define STRINGIFY_HELPER(X) #X
+#define STRINGIFY(X) STRINGIFY_HELPER(X)
+
+/* Identify known platforms by name.  */
+#if defined(__linux) || defined(__linux__) || defined(linux)
+# define PLATFORM_ID "Linux"
+
+#elif defined(__CYGWIN__)
+# define PLATFORM_ID "Cygwin"
+
+#elif defined(__MINGW32__)
+# define PLATFORM_ID "MinGW"
+
+#elif defined(__APPLE__)
+# define PLATFORM_ID "Darwin"
+
+#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
+# define PLATFORM_ID "Windows"
+
+#elif defined(__FreeBSD__) || defined(__FreeBSD)
+# define PLATFORM_ID "FreeBSD"
+
+#elif defined(__NetBSD__) || defined(__NetBSD)
+# define PLATFORM_ID "NetBSD"
+
+#elif defined(__OpenBSD__) || defined(__OPENBSD)
+# define PLATFORM_ID "OpenBSD"
+
+#elif defined(__sun) || defined(sun)
+# define PLATFORM_ID "SunOS"
+
+#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
+# define PLATFORM_ID "AIX"
+
+#elif defined(__hpux) || defined(__hpux__)
+# define PLATFORM_ID "HP-UX"
+
+#elif defined(__HAIKU__)
+# define PLATFORM_ID "Haiku"
+
+#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
+# define PLATFORM_ID "BeOS"
+
+#elif defined(__QNX__) || defined(__QNXNTO__)
+# define PLATFORM_ID "QNX"
+
+#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
+# define PLATFORM_ID "Tru64"
+
+#elif defined(__riscos) || defined(__riscos__)
+# define PLATFORM_ID "RISCos"
+
+#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
+# define PLATFORM_ID "SINIX"
+
+#elif defined(__UNIX_SV__)
+# define PLATFORM_ID "UNIX_SV"
+
+#elif defined(__bsdos__)
+# define PLATFORM_ID "BSDOS"
+
+#elif defined(_MPRAS) || defined(MPRAS)
+# define PLATFORM_ID "MP-RAS"
+
+#elif defined(__osf) || defined(__osf__)
+# define PLATFORM_ID "OSF1"
+
+#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
+# define PLATFORM_ID "SCO_SV"
+
+#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
+# define PLATFORM_ID "ULTRIX"
+
+#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
+# define PLATFORM_ID "Xenix"
+
+#elif defined(__WATCOMC__)
+# if defined(__LINUX__)
+#  define PLATFORM_ID "Linux"
+
+# elif defined(__DOS__)
+#  define PLATFORM_ID "DOS"
+
+# elif defined(__OS2__)
+#  define PLATFORM_ID "OS2"
+
+# elif defined(__WINDOWS__)
+#  define PLATFORM_ID "Windows3x"
+
+# else /* unknown platform */
+#  define PLATFORM_ID
+# endif
+
+#elif defined(__INTEGRITY)
+# if defined(INT_178B)
+#  define PLATFORM_ID "Integrity178"
+
+# else /* regular Integrity */
+#  define PLATFORM_ID "Integrity"
+# endif
+
+#else /* unknown platform */
+# define PLATFORM_ID
+
+#endif
+
+/* For windows compilers MSVC and Intel we can determine
+   the architecture of the compiler being used.  This is because
+   the compilers do not have flags that can change the architecture,
+   but rather depend on which compiler is being used
+*/
+#if defined(_WIN32) && defined(_MSC_VER)
+# if defined(_M_IA64)
+#  define ARCHITECTURE_ID "IA64"
+
+# elif defined(_M_X64) || defined(_M_AMD64)
+#  define ARCHITECTURE_ID "x64"
+
+# elif defined(_M_IX86)
+#  define ARCHITECTURE_ID "X86"
+
+# elif defined(_M_ARM64)
+#  define ARCHITECTURE_ID "ARM64"
+
+# elif defined(_M_ARM)
+#  if _M_ARM == 4
+#   define ARCHITECTURE_ID "ARMV4I"
+#  elif _M_ARM == 5
+#   define ARCHITECTURE_ID "ARMV5I"
+#  else
+#   define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
+#  endif
+
+# elif defined(_M_MIPS)
+#  define ARCHITECTURE_ID "MIPS"
+
+# elif defined(_M_SH)
+#  define ARCHITECTURE_ID "SHx"
+
+# else /* unknown architecture */
+#  define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__WATCOMC__)
+# if defined(_M_I86)
+#  define ARCHITECTURE_ID "I86"
+
+# elif defined(_M_IX86)
+#  define ARCHITECTURE_ID "X86"
+
+# else /* unknown architecture */
+#  define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
+# if defined(__ICCARM__)
+#  define ARCHITECTURE_ID "ARM"
+
+# elif defined(__ICCRX__)
+#  define ARCHITECTURE_ID "RX"
+
+# elif defined(__ICCRH850__)
+#  define ARCHITECTURE_ID "RH850"
+
+# elif defined(__ICCRL78__)
+#  define ARCHITECTURE_ID "RL78"
+
+# elif defined(__ICCRISCV__)
+#  define ARCHITECTURE_ID "RISCV"
+
+# elif defined(__ICCAVR__)
+#  define ARCHITECTURE_ID "AVR"
+
+# elif defined(__ICC430__)
+#  define ARCHITECTURE_ID "MSP430"
+
+# elif defined(__ICCV850__)
+#  define ARCHITECTURE_ID "V850"
+
+# elif defined(__ICC8051__)
+#  define ARCHITECTURE_ID "8051"
+
+# else /* unknown architecture */
+#  define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__ghs__)
+# if defined(__PPC64__)
+#  define ARCHITECTURE_ID "PPC64"
+
+# elif defined(__ppc__)
+#  define ARCHITECTURE_ID "PPC"
+
+# elif defined(__ARM__)
+#  define ARCHITECTURE_ID "ARM"
+
+# elif defined(__x86_64__)
+#  define ARCHITECTURE_ID "x64"
+
+# elif defined(__i386__)
+#  define ARCHITECTURE_ID "X86"
+
+# else /* unknown architecture */
+#  define ARCHITECTURE_ID ""
+# endif
+#else
+#  define ARCHITECTURE_ID
+#endif
+
+/* Convert integer to decimal digit literals.  */
+#define DEC(n)                   \
+  ('0' + (((n) / 10000000)%10)), \
+  ('0' + (((n) / 1000000)%10)),  \
+  ('0' + (((n) / 100000)%10)),   \
+  ('0' + (((n) / 10000)%10)),    \
+  ('0' + (((n) / 1000)%10)),     \
+  ('0' + (((n) / 100)%10)),      \
+  ('0' + (((n) / 10)%10)),       \
+  ('0' +  ((n) % 10))
+
+/* Convert integer to hex digit literals.  */
+#define HEX(n)             \
+  ('0' + ((n)>>28 & 0xF)), \
+  ('0' + ((n)>>24 & 0xF)), \
+  ('0' + ((n)>>20 & 0xF)), \
+  ('0' + ((n)>>16 & 0xF)), \
+  ('0' + ((n)>>12 & 0xF)), \
+  ('0' + ((n)>>8  & 0xF)), \
+  ('0' + ((n)>>4  & 0xF)), \
+  ('0' + ((n)     & 0xF))
+
+/* Construct a string literal encoding the version number components. */
+#ifdef COMPILER_VERSION_MAJOR
+char const info_version[] = {
+  'I', 'N', 'F', 'O', ':',
+  'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
+  COMPILER_VERSION_MAJOR,
+# ifdef COMPILER_VERSION_MINOR
+  '.', COMPILER_VERSION_MINOR,
+#  ifdef COMPILER_VERSION_PATCH
+   '.', COMPILER_VERSION_PATCH,
+#   ifdef COMPILER_VERSION_TWEAK
+    '.', COMPILER_VERSION_TWEAK,
+#   endif
+#  endif
+# endif
+  ']','\0'};
+#endif
+
+/* Construct a string literal encoding the internal version number. */
+#ifdef COMPILER_VERSION_INTERNAL
+char const info_version_internal[] = {
+  'I', 'N', 'F', 'O', ':',
+  'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
+  'i','n','t','e','r','n','a','l','[',
+  COMPILER_VERSION_INTERNAL,']','\0'};
+#endif
+
+/* Construct a string literal encoding the version number components. */
+#ifdef SIMULATE_VERSION_MAJOR
+char const info_simulate_version[] = {
+  'I', 'N', 'F', 'O', ':',
+  's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
+  SIMULATE_VERSION_MAJOR,
+# ifdef SIMULATE_VERSION_MINOR
+  '.', SIMULATE_VERSION_MINOR,
+#  ifdef SIMULATE_VERSION_PATCH
+   '.', SIMULATE_VERSION_PATCH,
+#   ifdef SIMULATE_VERSION_TWEAK
+    '.', SIMULATE_VERSION_TWEAK,
+#   endif
+#  endif
+# endif
+  ']','\0'};
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+   getting matched.  Store it in a pointer rather than an array
+   because some compilers will just produce instructions to fill the
+   array rather than assigning a pointer to a static array.  */
+char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
+char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
+
+
+
+
+#if !defined(__STDC__)
+# if (defined(_MSC_VER) && !defined(__clang__)) \
+  || (defined(__ibmxl__) || defined(__IBMC__))
+#  define C_DIALECT "90"
+# else
+#  define C_DIALECT
+# endif
+#elif __STDC_VERSION__ >= 201000L
+# define C_DIALECT "11"
+#elif __STDC_VERSION__ >= 199901L
+# define C_DIALECT "99"
+#else
+# define C_DIALECT "90"
+#endif
+const char* info_language_dialect_default =
+  "INFO" ":" "dialect_default[" C_DIALECT "]";
+
+/*--------------------------------------------------------------------------*/
+
+#ifdef ID_VOID_MAIN
+void main() {}
+#else
+# if defined(__CLASSIC_C__)
+int main(argc, argv) int argc; char *argv[];
+# else
+int main(int argc, char* argv[])
+# endif
+{
+  int require = 0;
+  require += info_compiler[argc];
+  require += info_platform[argc];
+  require += info_arch[argc];
+#ifdef COMPILER_VERSION_MAJOR
+  require += info_version[argc];
+#endif
+#ifdef COMPILER_VERSION_INTERNAL
+  require += info_version_internal[argc];
+#endif
+#ifdef SIMULATE_ID
+  require += info_simulate[argc];
+#endif
+#ifdef SIMULATE_VERSION_MAJOR
+  require += info_simulate_version[argc];
+#endif
+#if defined(__CRAYXE) || defined(__CRAYXC)
+  require += info_cray[argc];
+#endif
+  require += info_language_dialect_default[argc];
+  (void)argv;
+  return require;
+}
+#endif
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/3.16.3/CompilerIdCXX/CMakeCXXCompilerId.cpp b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/3.16.3/CompilerIdCXX/CMakeCXXCompilerId.cpp
new file mode 100644
index 0000000..69cfdba
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/3.16.3/CompilerIdCXX/CMakeCXXCompilerId.cpp
@@ -0,0 +1,660 @@
+/* This source file must have a .cpp extension so that all C++ compilers
+   recognize the extension without flags.  Borland does not know .cxx for
+   example.  */
+#ifndef __cplusplus
+# error "A C compiler has been selected for C++."
+#endif
+
+
+/* Version number components: V=Version, R=Revision, P=Patch
+   Version date components:   YYYY=Year, MM=Month,   DD=Day  */
+
+#if defined(__COMO__)
+# define COMPILER_ID "Comeau"
+  /* __COMO_VERSION__ = VRR */
+# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100)
+# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100)
+
+#elif defined(__INTEL_COMPILER) || defined(__ICC)
+# define COMPILER_ID "Intel"
+# if defined(_MSC_VER)
+#  define SIMULATE_ID "MSVC"
+# endif
+# if defined(__GNUC__)
+#  define SIMULATE_ID "GNU"
+# endif
+  /* __INTEL_COMPILER = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
+# if defined(__INTEL_COMPILER_UPDATE)
+#  define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
+# else
+#  define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER   % 10)
+# endif
+# if defined(__INTEL_COMPILER_BUILD_DATE)
+  /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
+#  define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
+# endif
+# if defined(_MSC_VER)
+   /* _MSC_VER = VVRR */
+#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+# if defined(__GNUC__)
+#  define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
+# elif defined(__GNUG__)
+#  define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
+# endif
+# if defined(__GNUC_MINOR__)
+#  define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
+# endif
+# if defined(__GNUC_PATCHLEVEL__)
+#  define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+# endif
+
+#elif defined(__PATHCC__)
+# define COMPILER_ID "PathScale"
+# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
+# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
+# if defined(__PATHCC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
+# endif
+
+#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
+# define COMPILER_ID "Embarcadero"
+# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
+# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
+# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__     & 0xFFFF)
+
+#elif defined(__BORLANDC__)
+# define COMPILER_ID "Borland"
+  /* __BORLANDC__ = 0xVRR */
+# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
+# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
+
+#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
+# define COMPILER_ID "Watcom"
+   /* __WATCOMC__ = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__WATCOMC__)
+# define COMPILER_ID "OpenWatcom"
+   /* __WATCOMC__ = VVRP + 1100 */
+# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__SUNPRO_CC)
+# define COMPILER_ID "SunPro"
+# if __SUNPRO_CC >= 0x5100
+   /* __SUNPRO_CC = 0xVRRP */
+#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12)
+#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF)
+#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC    & 0xF)
+# else
+   /* __SUNPRO_CC = 0xVRP */
+#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8)
+#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF)
+#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC    & 0xF)
+# endif
+
+#elif defined(__HP_aCC)
+# define COMPILER_ID "HP"
+  /* __HP_aCC = VVRRPP */
+# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000)
+# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100)
+# define COMPILER_VERSION_PATCH DEC(__HP_aCC     % 100)
+
+#elif defined(__DECCXX)
+# define COMPILER_ID "Compaq"
+  /* __DECCXX_VER = VVRRTPPPP */
+# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000)
+# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000  % 100)
+# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER         % 10000)
+
+#elif defined(__IBMCPP__) && defined(__COMPILER_VER__)
+# define COMPILER_ID "zOS"
+  /* __IBMCPP__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMCPP__    % 10)
+
+#elif defined(__ibmxl__) && defined(__clang__)
+# define COMPILER_ID "XLClang"
+# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
+# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
+# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
+# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
+
+
+#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800
+# define COMPILER_ID "XL"
+  /* __IBMCPP__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMCPP__    % 10)
+
+#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800
+# define COMPILER_ID "VisualAge"
+  /* __IBMCPP__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMCPP__    % 10)
+
+#elif defined(__PGI)
+# define COMPILER_ID "PGI"
+# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
+# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
+# if defined(__PGIC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
+# endif
+
+#elif defined(_CRAYC)
+# define COMPILER_ID "Cray"
+# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
+# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
+
+#elif defined(__TI_COMPILER_VERSION__)
+# define COMPILER_ID "TI"
+  /* __TI_COMPILER_VERSION__ = VVVRRRPPP */
+# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
+# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000   % 1000)
+# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__        % 1000)
+
+#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version)
+# define COMPILER_ID "Fujitsu"
+
+#elif defined(__ghs__)
+# define COMPILER_ID "GHS"
+/* __GHS_VERSION_NUMBER = VVVVRP */
+# ifdef __GHS_VERSION_NUMBER
+# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100)
+# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER      % 10)
+# endif
+
+#elif defined(__SCO_VERSION__)
+# define COMPILER_ID "SCO"
+
+#elif defined(__ARMCC_VERSION) && !defined(__clang__)
+# define COMPILER_ID "ARMCC"
+#if __ARMCC_VERSION >= 1000000
+  /* __ARMCC_VERSION = VRRPPPP */
+  # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
+  # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
+  # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION     % 10000)
+#else
+  /* __ARMCC_VERSION = VRPPPP */
+  # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
+  # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
+  # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION    % 10000)
+#endif
+
+
+#elif defined(__clang__) && defined(__apple_build_version__)
+# define COMPILER_ID "AppleClang"
+# if defined(_MSC_VER)
+#  define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+   /* _MSC_VER = VVRR */
+#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
+
+#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION)
+# define COMPILER_ID "ARMClang"
+  # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000)
+  # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100)
+  # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION     % 10000)
+# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION)
+
+#elif defined(__clang__)
+# define COMPILER_ID "Clang"
+# if defined(_MSC_VER)
+#  define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+   /* _MSC_VER = VVRR */
+#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+
+#elif defined(__GNUC__) || defined(__GNUG__)
+# define COMPILER_ID "GNU"
+# if defined(__GNUC__)
+#  define COMPILER_VERSION_MAJOR DEC(__GNUC__)
+# else
+#  define COMPILER_VERSION_MAJOR DEC(__GNUG__)
+# endif
+# if defined(__GNUC_MINOR__)
+#  define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
+# endif
+# if defined(__GNUC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+# endif
+
+#elif defined(_MSC_VER)
+# define COMPILER_ID "MSVC"
+  /* _MSC_VER = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
+# if defined(_MSC_FULL_VER)
+#  if _MSC_VER >= 1400
+    /* _MSC_FULL_VER = VVRRPPPPP */
+#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
+#  else
+    /* _MSC_FULL_VER = VVRRPPPP */
+#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
+#  endif
+# endif
+# if defined(_MSC_BUILD)
+#  define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
+# endif
+
+#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
+# define COMPILER_ID "ADSP"
+#if defined(__VISUALDSPVERSION__)
+  /* __VISUALDSPVERSION__ = 0xVVRRPP00 */
+# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)
+# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)
+# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8  & 0xFF)
+#endif
+
+#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
+# define COMPILER_ID "IAR"
+# if defined(__VER__) && defined(__ICCARM__)
+#  define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
+#  define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
+#  define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
+#  define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
+# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__))
+#  define COMPILER_VERSION_MAJOR DEC((__VER__) / 100)
+#  define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100))
+#  define COMPILER_VERSION_PATCH DEC(__SUBVERSION__)
+#  define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
+# endif
+
+
+/* These compilers are either not known or too old to define an
+  identification macro.  Try to identify the platform and guess that
+  it is the native compiler.  */
+#elif defined(__hpux) || defined(__hpua)
+# define COMPILER_ID "HP"
+
+#else /* unknown compiler */
+# define COMPILER_ID ""
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+   getting matched.  Store it in a pointer rather than an array
+   because some compilers will just produce instructions to fill the
+   array rather than assigning a pointer to a static array.  */
+char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
+#ifdef SIMULATE_ID
+char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
+#endif
+
+#ifdef __QNXNTO__
+char const* qnxnto = "INFO" ":" "qnxnto[]";
+#endif
+
+#if defined(__CRAYXE) || defined(__CRAYXC)
+char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
+#endif
+
+#define STRINGIFY_HELPER(X) #X
+#define STRINGIFY(X) STRINGIFY_HELPER(X)
+
+/* Identify known platforms by name.  */
+#if defined(__linux) || defined(__linux__) || defined(linux)
+# define PLATFORM_ID "Linux"
+
+#elif defined(__CYGWIN__)
+# define PLATFORM_ID "Cygwin"
+
+#elif defined(__MINGW32__)
+# define PLATFORM_ID "MinGW"
+
+#elif defined(__APPLE__)
+# define PLATFORM_ID "Darwin"
+
+#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
+# define PLATFORM_ID "Windows"
+
+#elif defined(__FreeBSD__) || defined(__FreeBSD)
+# define PLATFORM_ID "FreeBSD"
+
+#elif defined(__NetBSD__) || defined(__NetBSD)
+# define PLATFORM_ID "NetBSD"
+
+#elif defined(__OpenBSD__) || defined(__OPENBSD)
+# define PLATFORM_ID "OpenBSD"
+
+#elif defined(__sun) || defined(sun)
+# define PLATFORM_ID "SunOS"
+
+#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
+# define PLATFORM_ID "AIX"
+
+#elif defined(__hpux) || defined(__hpux__)
+# define PLATFORM_ID "HP-UX"
+
+#elif defined(__HAIKU__)
+# define PLATFORM_ID "Haiku"
+
+#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
+# define PLATFORM_ID "BeOS"
+
+#elif defined(__QNX__) || defined(__QNXNTO__)
+# define PLATFORM_ID "QNX"
+
+#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
+# define PLATFORM_ID "Tru64"
+
+#elif defined(__riscos) || defined(__riscos__)
+# define PLATFORM_ID "RISCos"
+
+#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
+# define PLATFORM_ID "SINIX"
+
+#elif defined(__UNIX_SV__)
+# define PLATFORM_ID "UNIX_SV"
+
+#elif defined(__bsdos__)
+# define PLATFORM_ID "BSDOS"
+
+#elif defined(_MPRAS) || defined(MPRAS)
+# define PLATFORM_ID "MP-RAS"
+
+#elif defined(__osf) || defined(__osf__)
+# define PLATFORM_ID "OSF1"
+
+#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
+# define PLATFORM_ID "SCO_SV"
+
+#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
+# define PLATFORM_ID "ULTRIX"
+
+#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
+# define PLATFORM_ID "Xenix"
+
+#elif defined(__WATCOMC__)
+# if defined(__LINUX__)
+#  define PLATFORM_ID "Linux"
+
+# elif defined(__DOS__)
+#  define PLATFORM_ID "DOS"
+
+# elif defined(__OS2__)
+#  define PLATFORM_ID "OS2"
+
+# elif defined(__WINDOWS__)
+#  define PLATFORM_ID "Windows3x"
+
+# else /* unknown platform */
+#  define PLATFORM_ID
+# endif
+
+#elif defined(__INTEGRITY)
+# if defined(INT_178B)
+#  define PLATFORM_ID "Integrity178"
+
+# else /* regular Integrity */
+#  define PLATFORM_ID "Integrity"
+# endif
+
+#else /* unknown platform */
+# define PLATFORM_ID
+
+#endif
+
+/* For windows compilers MSVC and Intel we can determine
+   the architecture of the compiler being used.  This is because
+   the compilers do not have flags that can change the architecture,
+   but rather depend on which compiler is being used
+*/
+#if defined(_WIN32) && defined(_MSC_VER)
+# if defined(_M_IA64)
+#  define ARCHITECTURE_ID "IA64"
+
+# elif defined(_M_X64) || defined(_M_AMD64)
+#  define ARCHITECTURE_ID "x64"
+
+# elif defined(_M_IX86)
+#  define ARCHITECTURE_ID "X86"
+
+# elif defined(_M_ARM64)
+#  define ARCHITECTURE_ID "ARM64"
+
+# elif defined(_M_ARM)
+#  if _M_ARM == 4
+#   define ARCHITECTURE_ID "ARMV4I"
+#  elif _M_ARM == 5
+#   define ARCHITECTURE_ID "ARMV5I"
+#  else
+#   define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
+#  endif
+
+# elif defined(_M_MIPS)
+#  define ARCHITECTURE_ID "MIPS"
+
+# elif defined(_M_SH)
+#  define ARCHITECTURE_ID "SHx"
+
+# else /* unknown architecture */
+#  define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__WATCOMC__)
+# if defined(_M_I86)
+#  define ARCHITECTURE_ID "I86"
+
+# elif defined(_M_IX86)
+#  define ARCHITECTURE_ID "X86"
+
+# else /* unknown architecture */
+#  define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
+# if defined(__ICCARM__)
+#  define ARCHITECTURE_ID "ARM"
+
+# elif defined(__ICCRX__)
+#  define ARCHITECTURE_ID "RX"
+
+# elif defined(__ICCRH850__)
+#  define ARCHITECTURE_ID "RH850"
+
+# elif defined(__ICCRL78__)
+#  define ARCHITECTURE_ID "RL78"
+
+# elif defined(__ICCRISCV__)
+#  define ARCHITECTURE_ID "RISCV"
+
+# elif defined(__ICCAVR__)
+#  define ARCHITECTURE_ID "AVR"
+
+# elif defined(__ICC430__)
+#  define ARCHITECTURE_ID "MSP430"
+
+# elif defined(__ICCV850__)
+#  define ARCHITECTURE_ID "V850"
+
+# elif defined(__ICC8051__)
+#  define ARCHITECTURE_ID "8051"
+
+# else /* unknown architecture */
+#  define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__ghs__)
+# if defined(__PPC64__)
+#  define ARCHITECTURE_ID "PPC64"
+
+# elif defined(__ppc__)
+#  define ARCHITECTURE_ID "PPC"
+
+# elif defined(__ARM__)
+#  define ARCHITECTURE_ID "ARM"
+
+# elif defined(__x86_64__)
+#  define ARCHITECTURE_ID "x64"
+
+# elif defined(__i386__)
+#  define ARCHITECTURE_ID "X86"
+
+# else /* unknown architecture */
+#  define ARCHITECTURE_ID ""
+# endif
+#else
+#  define ARCHITECTURE_ID
+#endif
+
+/* Convert integer to decimal digit literals.  */
+#define DEC(n)                   \
+  ('0' + (((n) / 10000000)%10)), \
+  ('0' + (((n) / 1000000)%10)),  \
+  ('0' + (((n) / 100000)%10)),   \
+  ('0' + (((n) / 10000)%10)),    \
+  ('0' + (((n) / 1000)%10)),     \
+  ('0' + (((n) / 100)%10)),      \
+  ('0' + (((n) / 10)%10)),       \
+  ('0' +  ((n) % 10))
+
+/* Convert integer to hex digit literals.  */
+#define HEX(n)             \
+  ('0' + ((n)>>28 & 0xF)), \
+  ('0' + ((n)>>24 & 0xF)), \
+  ('0' + ((n)>>20 & 0xF)), \
+  ('0' + ((n)>>16 & 0xF)), \
+  ('0' + ((n)>>12 & 0xF)), \
+  ('0' + ((n)>>8  & 0xF)), \
+  ('0' + ((n)>>4  & 0xF)), \
+  ('0' + ((n)     & 0xF))
+
+/* Construct a string literal encoding the version number components. */
+#ifdef COMPILER_VERSION_MAJOR
+char const info_version[] = {
+  'I', 'N', 'F', 'O', ':',
+  'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
+  COMPILER_VERSION_MAJOR,
+# ifdef COMPILER_VERSION_MINOR
+  '.', COMPILER_VERSION_MINOR,
+#  ifdef COMPILER_VERSION_PATCH
+   '.', COMPILER_VERSION_PATCH,
+#   ifdef COMPILER_VERSION_TWEAK
+    '.', COMPILER_VERSION_TWEAK,
+#   endif
+#  endif
+# endif
+  ']','\0'};
+#endif
+
+/* Construct a string literal encoding the internal version number. */
+#ifdef COMPILER_VERSION_INTERNAL
+char const info_version_internal[] = {
+  'I', 'N', 'F', 'O', ':',
+  'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
+  'i','n','t','e','r','n','a','l','[',
+  COMPILER_VERSION_INTERNAL,']','\0'};
+#endif
+
+/* Construct a string literal encoding the version number components. */
+#ifdef SIMULATE_VERSION_MAJOR
+char const info_simulate_version[] = {
+  'I', 'N', 'F', 'O', ':',
+  's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
+  SIMULATE_VERSION_MAJOR,
+# ifdef SIMULATE_VERSION_MINOR
+  '.', SIMULATE_VERSION_MINOR,
+#  ifdef SIMULATE_VERSION_PATCH
+   '.', SIMULATE_VERSION_PATCH,
+#   ifdef SIMULATE_VERSION_TWEAK
+    '.', SIMULATE_VERSION_TWEAK,
+#   endif
+#  endif
+# endif
+  ']','\0'};
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+   getting matched.  Store it in a pointer rather than an array
+   because some compilers will just produce instructions to fill the
+   array rather than assigning a pointer to a static array.  */
+char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
+char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
+
+
+
+
+#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) && _MSVC_LANG < 201403L
+#  if defined(__INTEL_CXX11_MODE__)
+#    if defined(__cpp_aggregate_nsdmi)
+#      define CXX_STD 201402L
+#    else
+#      define CXX_STD 201103L
+#    endif
+#  else
+#    define CXX_STD 199711L
+#  endif
+#elif defined(_MSC_VER) && defined(_MSVC_LANG)
+#  define CXX_STD _MSVC_LANG
+#else
+#  define CXX_STD __cplusplus
+#endif
+
+const char* info_language_dialect_default = "INFO" ":" "dialect_default["
+#if CXX_STD > 201703L
+  "20"
+#elif CXX_STD >= 201703L
+  "17"
+#elif CXX_STD >= 201402L
+  "14"
+#elif CXX_STD >= 201103L
+  "11"
+#else
+  "98"
+#endif
+"]";
+
+/*--------------------------------------------------------------------------*/
+
+int main(int argc, char* argv[])
+{
+  int require = 0;
+  require += info_compiler[argc];
+  require += info_platform[argc];
+#ifdef COMPILER_VERSION_MAJOR
+  require += info_version[argc];
+#endif
+#ifdef COMPILER_VERSION_INTERNAL
+  require += info_version_internal[argc];
+#endif
+#ifdef SIMULATE_ID
+  require += info_simulate[argc];
+#endif
+#ifdef SIMULATE_VERSION_MAJOR
+  require += info_simulate_version[argc];
+#endif
+#if defined(__CRAYXE) || defined(__CRAYXC)
+  require += info_cray[argc];
+#endif
+  require += info_language_dialect_default[argc];
+  (void)argv;
+  return require;
+}
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeDirectoryInformation.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeDirectoryInformation.cmake
new file mode 100644
index 0000000..b963b51
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeDirectoryInformation.cmake
@@ -0,0 +1,16 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Relative path conversion top directories.
+set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc")
+set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver")
+
+# Force unix paths in dependencies.
+set(CMAKE_FORCE_UNIX_PATHS 1)
+
+
+# The C and CXX include file regular expressions for this directory.
+set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
+set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
+set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
+set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeError.log b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeError.log
new file mode 100644
index 0000000..cd151c8
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeError.log
@@ -0,0 +1,96 @@
+Determining if the function sgemm_ exists failed with the following output:
+Change Dir: /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeTmp
+
+Run Build Command(s):/usr/bin/make cmTC_5fc07/fast && /usr/bin/make -f CMakeFiles/cmTC_5fc07.dir/build.make CMakeFiles/cmTC_5fc07.dir/build
+make[1]: Entering directory '/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_5fc07.dir/CheckFunctionExists.c.o
+/usr/bin/cc   -DCHECK_FUNCTION_EXISTS=sgemm_   -o CMakeFiles/cmTC_5fc07.dir/CheckFunctionExists.c.o   -c /usr/share/cmake-3.16/Modules/CheckFunctionExists.c
+Linking C executable cmTC_5fc07
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_5fc07.dir/link.txt --verbose=1
+/usr/bin/cc  -DCHECK_FUNCTION_EXISTS=sgemm_    -rdynamic CMakeFiles/cmTC_5fc07.dir/CheckFunctionExists.c.o  -o cmTC_5fc07 
+/usr/bin/ld: CMakeFiles/cmTC_5fc07.dir/CheckFunctionExists.c.o: in function `main':
+CheckFunctionExists.c:(.text+0x14): undefined reference to `sgemm_'
+collect2: error: ld returned 1 exit status
+make[1]: *** [CMakeFiles/cmTC_5fc07.dir/build.make:87: cmTC_5fc07] Error 1
+make[1]: Leaving directory '/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeTmp'
+make: *** [Makefile:121: cmTC_5fc07/fast] Error 2
+
+
+
+Performing C SOURCE FILE Test CMAKE_HAVE_LIBC_PTHREAD failed with the following output:
+Change Dir: /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeTmp
+
+Run Build Command(s):/usr/bin/make cmTC_b5523/fast && /usr/bin/make -f CMakeFiles/cmTC_b5523.dir/build.make CMakeFiles/cmTC_b5523.dir/build
+make[1]: Entering directory '/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_b5523.dir/src.c.o
+/usr/bin/cc   -DCMAKE_HAVE_LIBC_PTHREAD   -o CMakeFiles/cmTC_b5523.dir/src.c.o   -c /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeTmp/src.c
+Linking C executable cmTC_b5523
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_b5523.dir/link.txt --verbose=1
+/usr/bin/cc  -DCMAKE_HAVE_LIBC_PTHREAD    -rdynamic CMakeFiles/cmTC_b5523.dir/src.c.o  -o cmTC_b5523 
+/usr/bin/ld: CMakeFiles/cmTC_b5523.dir/src.c.o: in function `main':
+src.c:(.text+0x46): undefined reference to `pthread_create'
+/usr/bin/ld: src.c:(.text+0x52): undefined reference to `pthread_detach'
+/usr/bin/ld: src.c:(.text+0x63): undefined reference to `pthread_join'
+collect2: error: ld returned 1 exit status
+make[1]: *** [CMakeFiles/cmTC_b5523.dir/build.make:87: cmTC_b5523] Error 1
+make[1]: Leaving directory '/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeTmp'
+make: *** [Makefile:121: cmTC_b5523/fast] Error 2
+
+
+Source file was:
+#include <pthread.h>
+
+void* test_func(void* data)
+{
+  return data;
+}
+
+int main(void)
+{
+  pthread_t thread;
+  pthread_create(&thread, NULL, test_func, NULL);
+  pthread_detach(thread);
+  pthread_join(thread, NULL);
+  pthread_atfork(NULL, NULL, NULL);
+  pthread_exit(NULL);
+
+  return 0;
+}
+
+Determining if the function pthread_create exists in the pthreads failed with the following output:
+Change Dir: /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeTmp
+
+Run Build Command(s):/usr/bin/make cmTC_34996/fast && /usr/bin/make -f CMakeFiles/cmTC_34996.dir/build.make CMakeFiles/cmTC_34996.dir/build
+make[1]: Entering directory '/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_34996.dir/CheckFunctionExists.c.o
+/usr/bin/cc   -DCHECK_FUNCTION_EXISTS=pthread_create   -o CMakeFiles/cmTC_34996.dir/CheckFunctionExists.c.o   -c /usr/share/cmake-3.16/Modules/CheckFunctionExists.c
+Linking C executable cmTC_34996
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_34996.dir/link.txt --verbose=1
+/usr/bin/cc  -DCHECK_FUNCTION_EXISTS=pthread_create    -rdynamic CMakeFiles/cmTC_34996.dir/CheckFunctionExists.c.o  -o cmTC_34996  -lpthreads 
+/usr/bin/ld: cannot find -lpthreads
+collect2: error: ld returned 1 exit status
+make[1]: *** [CMakeFiles/cmTC_34996.dir/build.make:87: cmTC_34996] Error 1
+make[1]: Leaving directory '/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeTmp'
+make: *** [Makefile:121: cmTC_34996/fast] Error 2
+
+
+
+Determining if the function cheev_ exists failed with the following output:
+Change Dir: /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeTmp
+
+Run Build Command(s):/usr/bin/make cmTC_20d4a/fast && /usr/bin/make -f CMakeFiles/cmTC_20d4a.dir/build.make CMakeFiles/cmTC_20d4a.dir/build
+make[1]: Entering directory '/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_20d4a.dir/CheckFunctionExists.c.o
+/usr/bin/cc   -DCHECK_FUNCTION_EXISTS=cheev_   -o CMakeFiles/cmTC_20d4a.dir/CheckFunctionExists.c.o   -c /usr/share/cmake-3.16/Modules/CheckFunctionExists.c
+Linking C executable cmTC_20d4a
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_20d4a.dir/link.txt --verbose=1
+/usr/bin/cc  -DCHECK_FUNCTION_EXISTS=cheev_    -rdynamic CMakeFiles/cmTC_20d4a.dir/CheckFunctionExists.c.o  -o cmTC_20d4a  /usr/lib/x86_64-linux-gnu/libblas.so 
+/usr/bin/ld: CMakeFiles/cmTC_20d4a.dir/CheckFunctionExists.c.o: in function `main':
+CheckFunctionExists.c:(.text+0x14): undefined reference to `cheev_'
+collect2: error: ld returned 1 exit status
+make[1]: *** [CMakeFiles/cmTC_20d4a.dir/build.make:88: cmTC_20d4a] Error 1
+make[1]: Leaving directory '/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeTmp'
+make: *** [Makefile:121: cmTC_20d4a/fast] Error 2
+
+
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeOutput.log b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeOutput.log
new file mode 100644
index 0000000..46fbd30
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeOutput.log
@@ -0,0 +1,519 @@
+The system is: Linux - 5.4.0-132-generic - x86_64
+Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded.
+Compiler: /usr/bin/cc 
+Build flags: 
+Id flags:  
+
+The output was:
+0
+
+
+Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out"
+
+The C compiler identification is GNU, found in "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/3.16.3/CompilerIdC/a.out"
+
+Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded.
+Compiler: /usr/bin/c++ 
+Build flags: 
+Id flags:  
+
+The output was:
+0
+
+
+Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out"
+
+The CXX compiler identification is GNU, found in "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/3.16.3/CompilerIdCXX/a.out"
+
+Determining if the C compiler works passed with the following output:
+Change Dir: /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeTmp
+
+Run Build Command(s):/usr/bin/make cmTC_b8dd2/fast && /usr/bin/make -f CMakeFiles/cmTC_b8dd2.dir/build.make CMakeFiles/cmTC_b8dd2.dir/build
+make[1]: Entering directory '/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_b8dd2.dir/testCCompiler.c.o
+/usr/bin/cc    -o CMakeFiles/cmTC_b8dd2.dir/testCCompiler.c.o   -c /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeTmp/testCCompiler.c
+Linking C executable cmTC_b8dd2
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_b8dd2.dir/link.txt --verbose=1
+/usr/bin/cc      -rdynamic CMakeFiles/cmTC_b8dd2.dir/testCCompiler.c.o  -o cmTC_b8dd2 
+make[1]: Leaving directory '/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeTmp'
+
+
+
+Detecting C compiler ABI info compiled with the following output:
+Change Dir: /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeTmp
+
+Run Build Command(s):/usr/bin/make cmTC_186e1/fast && /usr/bin/make -f CMakeFiles/cmTC_186e1.dir/build.make CMakeFiles/cmTC_186e1.dir/build
+make[1]: Entering directory '/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_186e1.dir/CMakeCCompilerABI.c.o
+/usr/bin/cc   -v -o CMakeFiles/cmTC_186e1.dir/CMakeCCompilerABI.c.o   -c /usr/share/cmake-3.16/Modules/CMakeCCompilerABI.c
+Using built-in specs.
+COLLECT_GCC=/usr/bin/cc
+OFFLOAD_TARGET_NAMES=nvptx-none:hsa
+OFFLOAD_TARGET_DEFAULT=1
+Target: x86_64-linux-gnu
+Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.1' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-Av3uEd/gcc-9-9.4.0/debian/tmp-nvptx/usr,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
+Thread model: posix
+gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1) 
+COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_186e1.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64'
+ /usr/lib/gcc/x86_64-linux-gnu/9/cc1 -quiet -v -imultiarch x86_64-linux-gnu /usr/share/cmake-3.16/Modules/CMakeCCompilerABI.c -quiet -dumpbase CMakeCCompilerABI.c -mtune=generic -march=x86-64 -auxbase-strip CMakeFiles/cmTC_186e1.dir/CMakeCCompilerABI.c.o -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccXqHJTm.s
+GNU C17 (Ubuntu 9.4.0-1ubuntu1~20.04.1) version 9.4.0 (x86_64-linux-gnu)
+	compiled by GNU C version 9.4.0, GMP version 6.2.0, MPFR version 4.0.2, MPC version 1.1.0, isl version isl-0.22.1-GMP
+
+GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
+ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
+ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/include-fixed"
+ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/../../../../x86_64-linux-gnu/include"
+#include "..." search starts here:
+#include <...> search starts here:
+ /usr/lib/gcc/x86_64-linux-gnu/9/include
+ /usr/local/include
+ /usr/include/x86_64-linux-gnu
+ /usr/include
+End of search list.
+GNU C17 (Ubuntu 9.4.0-1ubuntu1~20.04.1) version 9.4.0 (x86_64-linux-gnu)
+	compiled by GNU C version 9.4.0, GMP version 6.2.0, MPFR version 4.0.2, MPC version 1.1.0, isl version isl-0.22.1-GMP
+
+GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
+Compiler executable checksum: c0c95c0b4209efec1c1892d5ff24030b
+COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_186e1.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64'
+ as -v --64 -o CMakeFiles/cmTC_186e1.dir/CMakeCCompilerABI.c.o /tmp/ccXqHJTm.s
+GNU assembler version 2.34 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.34
+COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/
+LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/
+COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_186e1.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64'
+Linking C executable cmTC_186e1
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_186e1.dir/link.txt --verbose=1
+/usr/bin/cc     -v -rdynamic CMakeFiles/cmTC_186e1.dir/CMakeCCompilerABI.c.o  -o cmTC_186e1 
+Using built-in specs.
+COLLECT_GCC=/usr/bin/cc
+COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper
+OFFLOAD_TARGET_NAMES=nvptx-none:hsa
+OFFLOAD_TARGET_DEFAULT=1
+Target: x86_64-linux-gnu
+Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.1' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-Av3uEd/gcc-9-9.4.0/debian/tmp-nvptx/usr,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
+Thread model: posix
+gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1) 
+COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/
+LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/
+COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_186e1' '-mtune=generic' '-march=x86-64'
+ /usr/lib/gcc/x86_64-linux-gnu/9/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper -plugin-opt=-fresolution=/tmp/ccTA3ooN.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_186e1 /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/9 -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/9/../../.. CMakeFiles/cmTC_186e1.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o
+COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_186e1' '-mtune=generic' '-march=x86-64'
+make[1]: Leaving directory '/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeTmp'
+
+
+
+Parsed C implicit include dir info from above output: rv=done
+  found start of include info
+  found start of implicit include info
+    add: [/usr/lib/gcc/x86_64-linux-gnu/9/include]
+    add: [/usr/local/include]
+    add: [/usr/include/x86_64-linux-gnu]
+    add: [/usr/include]
+  end of search list found
+  collapse include dir [/usr/lib/gcc/x86_64-linux-gnu/9/include] ==> [/usr/lib/gcc/x86_64-linux-gnu/9/include]
+  collapse include dir [/usr/local/include] ==> [/usr/local/include]
+  collapse include dir [/usr/include/x86_64-linux-gnu] ==> [/usr/include/x86_64-linux-gnu]
+  collapse include dir [/usr/include] ==> [/usr/include]
+  implicit include dirs: [/usr/lib/gcc/x86_64-linux-gnu/9/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include]
+
+
+Parsed C implicit link information from above output:
+  link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)]
+  ignore line: [Change Dir: /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeTmp]
+  ignore line: []
+  ignore line: [Run Build Command(s):/usr/bin/make cmTC_186e1/fast && /usr/bin/make -f CMakeFiles/cmTC_186e1.dir/build.make CMakeFiles/cmTC_186e1.dir/build]
+  ignore line: [make[1]: Entering directory '/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeTmp']
+  ignore line: [Building C object CMakeFiles/cmTC_186e1.dir/CMakeCCompilerABI.c.o]
+  ignore line: [/usr/bin/cc   -v -o CMakeFiles/cmTC_186e1.dir/CMakeCCompilerABI.c.o   -c /usr/share/cmake-3.16/Modules/CMakeCCompilerABI.c]
+  ignore line: [Using built-in specs.]
+  ignore line: [COLLECT_GCC=/usr/bin/cc]
+  ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:hsa]
+  ignore line: [OFFLOAD_TARGET_DEFAULT=1]
+  ignore line: [Target: x86_64-linux-gnu]
+  ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.1' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-Av3uEd/gcc-9-9.4.0/debian/tmp-nvptx/usr hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu]
+  ignore line: [Thread model: posix]
+  ignore line: [gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1) ]
+  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_186e1.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64']
+  ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/9/cc1 -quiet -v -imultiarch x86_64-linux-gnu /usr/share/cmake-3.16/Modules/CMakeCCompilerABI.c -quiet -dumpbase CMakeCCompilerABI.c -mtune=generic -march=x86-64 -auxbase-strip CMakeFiles/cmTC_186e1.dir/CMakeCCompilerABI.c.o -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccXqHJTm.s]
+  ignore line: [GNU C17 (Ubuntu 9.4.0-1ubuntu1~20.04.1) version 9.4.0 (x86_64-linux-gnu)]
+  ignore line: [	compiled by GNU C version 9.4.0  GMP version 6.2.0  MPFR version 4.0.2  MPC version 1.1.0  isl version isl-0.22.1-GMP]
+  ignore line: []
+  ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
+  ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"]
+  ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/include-fixed"]
+  ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/../../../../x86_64-linux-gnu/include"]
+  ignore line: [#include "..." search starts here:]
+  ignore line: [#include <...> search starts here:]
+  ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/9/include]
+  ignore line: [ /usr/local/include]
+  ignore line: [ /usr/include/x86_64-linux-gnu]
+  ignore line: [ /usr/include]
+  ignore line: [End of search list.]
+  ignore line: [GNU C17 (Ubuntu 9.4.0-1ubuntu1~20.04.1) version 9.4.0 (x86_64-linux-gnu)]
+  ignore line: [	compiled by GNU C version 9.4.0  GMP version 6.2.0  MPFR version 4.0.2  MPC version 1.1.0  isl version isl-0.22.1-GMP]
+  ignore line: []
+  ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
+  ignore line: [Compiler executable checksum: c0c95c0b4209efec1c1892d5ff24030b]
+  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_186e1.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64']
+  ignore line: [ as -v --64 -o CMakeFiles/cmTC_186e1.dir/CMakeCCompilerABI.c.o /tmp/ccXqHJTm.s]
+  ignore line: [GNU assembler version 2.34 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.34]
+  ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/]
+  ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/]
+  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_186e1.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64']
+  ignore line: [Linking C executable cmTC_186e1]
+  ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_186e1.dir/link.txt --verbose=1]
+  ignore line: [/usr/bin/cc     -v -rdynamic CMakeFiles/cmTC_186e1.dir/CMakeCCompilerABI.c.o  -o cmTC_186e1 ]
+  ignore line: [Using built-in specs.]
+  ignore line: [COLLECT_GCC=/usr/bin/cc]
+  ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper]
+  ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:hsa]
+  ignore line: [OFFLOAD_TARGET_DEFAULT=1]
+  ignore line: [Target: x86_64-linux-gnu]
+  ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.1' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-Av3uEd/gcc-9-9.4.0/debian/tmp-nvptx/usr hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu]
+  ignore line: [Thread model: posix]
+  ignore line: [gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1) ]
+  ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/]
+  ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/]
+  ignore line: [COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_186e1' '-mtune=generic' '-march=x86-64']
+  link line: [ /usr/lib/gcc/x86_64-linux-gnu/9/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper -plugin-opt=-fresolution=/tmp/ccTA3ooN.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_186e1 /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/9 -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/9/../../.. CMakeFiles/cmTC_186e1.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o]
+    arg [/usr/lib/gcc/x86_64-linux-gnu/9/collect2] ==> ignore
+    arg [-plugin] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so] ==> ignore
+    arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper] ==> ignore
+    arg [-plugin-opt=-fresolution=/tmp/ccTA3ooN.res] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
+    arg [-plugin-opt=-pass-through=-lc] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
+    arg [--build-id] ==> ignore
+    arg [--eh-frame-hdr] ==> ignore
+    arg [-m] ==> ignore
+    arg [elf_x86_64] ==> ignore
+    arg [--hash-style=gnu] ==> ignore
+    arg [--as-needed] ==> ignore
+    arg [-export-dynamic] ==> ignore
+    arg [-dynamic-linker] ==> ignore
+    arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
+    arg [-pie] ==> ignore
+    arg [-znow] ==> ignore
+    arg [-zrelro] ==> ignore
+    arg [-o] ==> ignore
+    arg [cmTC_186e1] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o] ==> ignore
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/9] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9]
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu]
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib]
+    arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu]
+    arg [-L/lib/../lib] ==> dir [/lib/../lib]
+    arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu]
+    arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/9/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../..]
+    arg [CMakeFiles/cmTC_186e1.dir/CMakeCCompilerABI.c.o] ==> ignore
+    arg [-lgcc] ==> lib [gcc]
+    arg [--push-state] ==> ignore
+    arg [--as-needed] ==> ignore
+    arg [-lgcc_s] ==> lib [gcc_s]
+    arg [--pop-state] ==> ignore
+    arg [-lc] ==> lib [c]
+    arg [-lgcc] ==> lib [gcc]
+    arg [--push-state] ==> ignore
+    arg [--as-needed] ==> ignore
+    arg [-lgcc_s] ==> lib [gcc_s]
+    arg [--pop-state] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o] ==> ignore
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9] ==> [/usr/lib/gcc/x86_64-linux-gnu/9]
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib] ==> [/usr/lib]
+  collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu]
+  collapse library dir [/lib/../lib] ==> [/lib]
+  collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
+  collapse library dir [/usr/lib/../lib] ==> [/usr/lib]
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../..] ==> [/usr/lib]
+  implicit libs: [gcc;gcc_s;c;gcc;gcc_s]
+  implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/9;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib]
+  implicit fwks: []
+
+
+Determining if the CXX compiler works passed with the following output:
+Change Dir: /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeTmp
+
+Run Build Command(s):/usr/bin/make cmTC_b4472/fast && /usr/bin/make -f CMakeFiles/cmTC_b4472.dir/build.make CMakeFiles/cmTC_b4472.dir/build
+make[1]: Entering directory '/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeTmp'
+Building CXX object CMakeFiles/cmTC_b4472.dir/testCXXCompiler.cxx.o
+/usr/bin/c++     -o CMakeFiles/cmTC_b4472.dir/testCXXCompiler.cxx.o -c /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeTmp/testCXXCompiler.cxx
+Linking CXX executable cmTC_b4472
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_b4472.dir/link.txt --verbose=1
+/usr/bin/c++       -rdynamic CMakeFiles/cmTC_b4472.dir/testCXXCompiler.cxx.o  -o cmTC_b4472 
+make[1]: Leaving directory '/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeTmp'
+
+
+
+Detecting CXX compiler ABI info compiled with the following output:
+Change Dir: /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeTmp
+
+Run Build Command(s):/usr/bin/make cmTC_98b64/fast && /usr/bin/make -f CMakeFiles/cmTC_98b64.dir/build.make CMakeFiles/cmTC_98b64.dir/build
+make[1]: Entering directory '/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeTmp'
+Building CXX object CMakeFiles/cmTC_98b64.dir/CMakeCXXCompilerABI.cpp.o
+/usr/bin/c++    -v -o CMakeFiles/cmTC_98b64.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.16/Modules/CMakeCXXCompilerABI.cpp
+Using built-in specs.
+COLLECT_GCC=/usr/bin/c++
+OFFLOAD_TARGET_NAMES=nvptx-none:hsa
+OFFLOAD_TARGET_DEFAULT=1
+Target: x86_64-linux-gnu
+Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.1' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-Av3uEd/gcc-9-9.4.0/debian/tmp-nvptx/usr,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
+Thread model: posix
+gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1) 
+COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_98b64.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
+ /usr/lib/gcc/x86_64-linux-gnu/9/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/share/cmake-3.16/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpbase CMakeCXXCompilerABI.cpp -mtune=generic -march=x86-64 -auxbase-strip CMakeFiles/cmTC_98b64.dir/CMakeCXXCompilerABI.cpp.o -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/cc3XPvqk.s
+GNU C++14 (Ubuntu 9.4.0-1ubuntu1~20.04.1) version 9.4.0 (x86_64-linux-gnu)
+	compiled by GNU C version 9.4.0, GMP version 6.2.0, MPFR version 4.0.2, MPC version 1.1.0, isl version isl-0.22.1-GMP
+
+GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
+ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/9"
+ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
+ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/include-fixed"
+ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/../../../../x86_64-linux-gnu/include"
+#include "..." search starts here:
+#include <...> search starts here:
+ /usr/include/c++/9
+ /usr/include/x86_64-linux-gnu/c++/9
+ /usr/include/c++/9/backward
+ /usr/lib/gcc/x86_64-linux-gnu/9/include
+ /usr/local/include
+ /usr/include/x86_64-linux-gnu
+ /usr/include
+End of search list.
+GNU C++14 (Ubuntu 9.4.0-1ubuntu1~20.04.1) version 9.4.0 (x86_64-linux-gnu)
+	compiled by GNU C version 9.4.0, GMP version 6.2.0, MPFR version 4.0.2, MPC version 1.1.0, isl version isl-0.22.1-GMP
+
+GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
+Compiler executable checksum: 65fe925b83d3956b533de4aaba7dace0
+COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_98b64.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
+ as -v --64 -o CMakeFiles/cmTC_98b64.dir/CMakeCXXCompilerABI.cpp.o /tmp/cc3XPvqk.s
+GNU assembler version 2.34 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.34
+COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/
+LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/
+COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_98b64.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
+Linking CXX executable cmTC_98b64
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_98b64.dir/link.txt --verbose=1
+/usr/bin/c++      -v -rdynamic CMakeFiles/cmTC_98b64.dir/CMakeCXXCompilerABI.cpp.o  -o cmTC_98b64 
+Using built-in specs.
+COLLECT_GCC=/usr/bin/c++
+COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper
+OFFLOAD_TARGET_NAMES=nvptx-none:hsa
+OFFLOAD_TARGET_DEFAULT=1
+Target: x86_64-linux-gnu
+Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.1' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-Av3uEd/gcc-9-9.4.0/debian/tmp-nvptx/usr,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
+Thread model: posix
+gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1) 
+COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/
+LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/
+COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_98b64' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
+ /usr/lib/gcc/x86_64-linux-gnu/9/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper -plugin-opt=-fresolution=/tmp/cca7u5HO.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_98b64 /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/9 -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/9/../../.. CMakeFiles/cmTC_98b64.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o
+COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_98b64' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
+make[1]: Leaving directory '/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeTmp'
+
+
+
+Parsed CXX implicit include dir info from above output: rv=done
+  found start of include info
+  found start of implicit include info
+    add: [/usr/include/c++/9]
+    add: [/usr/include/x86_64-linux-gnu/c++/9]
+    add: [/usr/include/c++/9/backward]
+    add: [/usr/lib/gcc/x86_64-linux-gnu/9/include]
+    add: [/usr/local/include]
+    add: [/usr/include/x86_64-linux-gnu]
+    add: [/usr/include]
+  end of search list found
+  collapse include dir [/usr/include/c++/9] ==> [/usr/include/c++/9]
+  collapse include dir [/usr/include/x86_64-linux-gnu/c++/9] ==> [/usr/include/x86_64-linux-gnu/c++/9]
+  collapse include dir [/usr/include/c++/9/backward] ==> [/usr/include/c++/9/backward]
+  collapse include dir [/usr/lib/gcc/x86_64-linux-gnu/9/include] ==> [/usr/lib/gcc/x86_64-linux-gnu/9/include]
+  collapse include dir [/usr/local/include] ==> [/usr/local/include]
+  collapse include dir [/usr/include/x86_64-linux-gnu] ==> [/usr/include/x86_64-linux-gnu]
+  collapse include dir [/usr/include] ==> [/usr/include]
+  implicit include dirs: [/usr/include/c++/9;/usr/include/x86_64-linux-gnu/c++/9;/usr/include/c++/9/backward;/usr/lib/gcc/x86_64-linux-gnu/9/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include]
+
+
+Parsed CXX implicit link information from above output:
+  link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)]
+  ignore line: [Change Dir: /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeTmp]
+  ignore line: []
+  ignore line: [Run Build Command(s):/usr/bin/make cmTC_98b64/fast && /usr/bin/make -f CMakeFiles/cmTC_98b64.dir/build.make CMakeFiles/cmTC_98b64.dir/build]
+  ignore line: [make[1]: Entering directory '/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeTmp']
+  ignore line: [Building CXX object CMakeFiles/cmTC_98b64.dir/CMakeCXXCompilerABI.cpp.o]
+  ignore line: [/usr/bin/c++    -v -o CMakeFiles/cmTC_98b64.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.16/Modules/CMakeCXXCompilerABI.cpp]
+  ignore line: [Using built-in specs.]
+  ignore line: [COLLECT_GCC=/usr/bin/c++]
+  ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:hsa]
+  ignore line: [OFFLOAD_TARGET_DEFAULT=1]
+  ignore line: [Target: x86_64-linux-gnu]
+  ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.1' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-Av3uEd/gcc-9-9.4.0/debian/tmp-nvptx/usr hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu]
+  ignore line: [Thread model: posix]
+  ignore line: [gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1) ]
+  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_98b64.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64']
+  ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/9/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/share/cmake-3.16/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpbase CMakeCXXCompilerABI.cpp -mtune=generic -march=x86-64 -auxbase-strip CMakeFiles/cmTC_98b64.dir/CMakeCXXCompilerABI.cpp.o -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/cc3XPvqk.s]
+  ignore line: [GNU C++14 (Ubuntu 9.4.0-1ubuntu1~20.04.1) version 9.4.0 (x86_64-linux-gnu)]
+  ignore line: [	compiled by GNU C version 9.4.0  GMP version 6.2.0  MPFR version 4.0.2  MPC version 1.1.0  isl version isl-0.22.1-GMP]
+  ignore line: []
+  ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
+  ignore line: [ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/9"]
+  ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"]
+  ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/include-fixed"]
+  ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/../../../../x86_64-linux-gnu/include"]
+  ignore line: [#include "..." search starts here:]
+  ignore line: [#include <...> search starts here:]
+  ignore line: [ /usr/include/c++/9]
+  ignore line: [ /usr/include/x86_64-linux-gnu/c++/9]
+  ignore line: [ /usr/include/c++/9/backward]
+  ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/9/include]
+  ignore line: [ /usr/local/include]
+  ignore line: [ /usr/include/x86_64-linux-gnu]
+  ignore line: [ /usr/include]
+  ignore line: [End of search list.]
+  ignore line: [GNU C++14 (Ubuntu 9.4.0-1ubuntu1~20.04.1) version 9.4.0 (x86_64-linux-gnu)]
+  ignore line: [	compiled by GNU C version 9.4.0  GMP version 6.2.0  MPFR version 4.0.2  MPC version 1.1.0  isl version isl-0.22.1-GMP]
+  ignore line: []
+  ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
+  ignore line: [Compiler executable checksum: 65fe925b83d3956b533de4aaba7dace0]
+  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_98b64.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64']
+  ignore line: [ as -v --64 -o CMakeFiles/cmTC_98b64.dir/CMakeCXXCompilerABI.cpp.o /tmp/cc3XPvqk.s]
+  ignore line: [GNU assembler version 2.34 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.34]
+  ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/]
+  ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/]
+  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_98b64.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64']
+  ignore line: [Linking CXX executable cmTC_98b64]
+  ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_98b64.dir/link.txt --verbose=1]
+  ignore line: [/usr/bin/c++      -v -rdynamic CMakeFiles/cmTC_98b64.dir/CMakeCXXCompilerABI.cpp.o  -o cmTC_98b64 ]
+  ignore line: [Using built-in specs.]
+  ignore line: [COLLECT_GCC=/usr/bin/c++]
+  ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper]
+  ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:hsa]
+  ignore line: [OFFLOAD_TARGET_DEFAULT=1]
+  ignore line: [Target: x86_64-linux-gnu]
+  ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.1' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-Av3uEd/gcc-9-9.4.0/debian/tmp-nvptx/usr hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu]
+  ignore line: [Thread model: posix]
+  ignore line: [gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1) ]
+  ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/]
+  ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/]
+  ignore line: [COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_98b64' '-shared-libgcc' '-mtune=generic' '-march=x86-64']
+  link line: [ /usr/lib/gcc/x86_64-linux-gnu/9/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper -plugin-opt=-fresolution=/tmp/cca7u5HO.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_98b64 /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/9 -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/9/../../.. CMakeFiles/cmTC_98b64.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o]
+    arg [/usr/lib/gcc/x86_64-linux-gnu/9/collect2] ==> ignore
+    arg [-plugin] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so] ==> ignore
+    arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper] ==> ignore
+    arg [-plugin-opt=-fresolution=/tmp/cca7u5HO.res] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
+    arg [-plugin-opt=-pass-through=-lc] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
+    arg [--build-id] ==> ignore
+    arg [--eh-frame-hdr] ==> ignore
+    arg [-m] ==> ignore
+    arg [elf_x86_64] ==> ignore
+    arg [--hash-style=gnu] ==> ignore
+    arg [--as-needed] ==> ignore
+    arg [-export-dynamic] ==> ignore
+    arg [-dynamic-linker] ==> ignore
+    arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
+    arg [-pie] ==> ignore
+    arg [-znow] ==> ignore
+    arg [-zrelro] ==> ignore
+    arg [-o] ==> ignore
+    arg [cmTC_98b64] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o] ==> ignore
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/9] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9]
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu]
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib]
+    arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu]
+    arg [-L/lib/../lib] ==> dir [/lib/../lib]
+    arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu]
+    arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/9/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../..]
+    arg [CMakeFiles/cmTC_98b64.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore
+    arg [-lstdc++] ==> lib [stdc++]
+    arg [-lm] ==> lib [m]
+    arg [-lgcc_s] ==> lib [gcc_s]
+    arg [-lgcc] ==> lib [gcc]
+    arg [-lc] ==> lib [c]
+    arg [-lgcc_s] ==> lib [gcc_s]
+    arg [-lgcc] ==> lib [gcc]
+    arg [/usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o] ==> ignore
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9] ==> [/usr/lib/gcc/x86_64-linux-gnu/9]
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib] ==> [/usr/lib]
+  collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu]
+  collapse library dir [/lib/../lib] ==> [/lib]
+  collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
+  collapse library dir [/usr/lib/../lib] ==> [/usr/lib]
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../..] ==> [/usr/lib]
+  implicit libs: [stdc++;m;gcc_s;gcc;c;gcc_s;gcc]
+  implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/9;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib]
+  implicit fwks: []
+
+
+Determining if the include file pthread.h exists passed with the following output:
+Change Dir: /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeTmp
+
+Run Build Command(s):/usr/bin/make cmTC_78f5d/fast && /usr/bin/make -f CMakeFiles/cmTC_78f5d.dir/build.make CMakeFiles/cmTC_78f5d.dir/build
+make[1]: Entering directory '/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_78f5d.dir/CheckIncludeFile.c.o
+/usr/bin/cc    -o CMakeFiles/cmTC_78f5d.dir/CheckIncludeFile.c.o   -c /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeTmp/CheckIncludeFile.c
+Linking C executable cmTC_78f5d
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_78f5d.dir/link.txt --verbose=1
+/usr/bin/cc      -rdynamic CMakeFiles/cmTC_78f5d.dir/CheckIncludeFile.c.o  -o cmTC_78f5d 
+make[1]: Leaving directory '/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeTmp'
+
+
+
+Determining if the function pthread_create exists in the pthread passed with the following output:
+Change Dir: /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeTmp
+
+Run Build Command(s):/usr/bin/make cmTC_0afaa/fast && /usr/bin/make -f CMakeFiles/cmTC_0afaa.dir/build.make CMakeFiles/cmTC_0afaa.dir/build
+make[1]: Entering directory '/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_0afaa.dir/CheckFunctionExists.c.o
+/usr/bin/cc   -DCHECK_FUNCTION_EXISTS=pthread_create   -o CMakeFiles/cmTC_0afaa.dir/CheckFunctionExists.c.o   -c /usr/share/cmake-3.16/Modules/CheckFunctionExists.c
+Linking C executable cmTC_0afaa
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_0afaa.dir/link.txt --verbose=1
+/usr/bin/cc  -DCHECK_FUNCTION_EXISTS=pthread_create    -rdynamic CMakeFiles/cmTC_0afaa.dir/CheckFunctionExists.c.o  -o cmTC_0afaa  -lpthread 
+make[1]: Leaving directory '/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeTmp'
+
+
+
+Determining if the function sgemm_ exists passed with the following output:
+Change Dir: /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeTmp
+
+Run Build Command(s):/usr/bin/make cmTC_13bb0/fast && /usr/bin/make -f CMakeFiles/cmTC_13bb0.dir/build.make CMakeFiles/cmTC_13bb0.dir/build
+make[1]: Entering directory '/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_13bb0.dir/CheckFunctionExists.c.o
+/usr/bin/cc   -DCHECK_FUNCTION_EXISTS=sgemm_   -o CMakeFiles/cmTC_13bb0.dir/CheckFunctionExists.c.o   -c /usr/share/cmake-3.16/Modules/CheckFunctionExists.c
+Linking C executable cmTC_13bb0
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_13bb0.dir/link.txt --verbose=1
+/usr/bin/cc  -DCHECK_FUNCTION_EXISTS=sgemm_    -rdynamic CMakeFiles/cmTC_13bb0.dir/CheckFunctionExists.c.o  -o cmTC_13bb0  /usr/lib/x86_64-linux-gnu/libblas.so 
+make[1]: Leaving directory '/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeTmp'
+
+
+
+Determining if the function cheev_ exists passed with the following output:
+Change Dir: /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeTmp
+
+Run Build Command(s):/usr/bin/make cmTC_092c0/fast && /usr/bin/make -f CMakeFiles/cmTC_092c0.dir/build.make CMakeFiles/cmTC_092c0.dir/build
+make[1]: Entering directory '/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_092c0.dir/CheckFunctionExists.c.o
+/usr/bin/cc   -DCHECK_FUNCTION_EXISTS=cheev_   -o CMakeFiles/cmTC_092c0.dir/CheckFunctionExists.c.o   -c /usr/share/cmake-3.16/Modules/CheckFunctionExists.c
+Linking C executable cmTC_092c0
+/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_092c0.dir/link.txt --verbose=1
+/usr/bin/cc  -DCHECK_FUNCTION_EXISTS=cheev_    -rdynamic CMakeFiles/cmTC_092c0.dir/CheckFunctionExists.c.o  -o cmTC_092c0  /usr/lib/x86_64-linux-gnu/liblapack.so /usr/lib/x86_64-linux-gnu/libblas.so 
+make[1]: Leaving directory '/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeTmp'
+
+
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeRuleHashes.txt b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeRuleHashes.txt
new file mode 100644
index 0000000..b113470
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/CMakeRuleHashes.txt
@@ -0,0 +1,4 @@
+# Hashes of file build rules.
+2bda9e7c7d8ef3cc51a03f8cdf09928a CMakeFiles/clean_test_results
+5bb97a6b8b5fbcc1245e1b642028c294 CMakeFiles/mav_nonlinear_mpc_gencfg
+da5141821d5e3d306243845553ae4759 devel/include/mav_nonlinear_mpc/NonLinearMPCConfig.h
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/Makefile.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/Makefile.cmake
new file mode 100644
index 0000000..375a146
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/Makefile.cmake
@@ -0,0 +1,324 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# The generator used is:
+set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles")
+
+# The top level Makefile was generated from the following files:
+set(CMAKE_MAKEFILE_DEPENDS
+  "CMakeCache.txt"
+  "/home/simhe502/catkin_ws/devel/share/actionlib_msgs/cmake/actionlib_msgs-extras.cmake"
+  "/home/simhe502/catkin_ws/devel/share/actionlib_msgs/cmake/actionlib_msgs-msg-extras.cmake"
+  "/home/simhe502/catkin_ws/devel/share/actionlib_msgs/cmake/actionlib_msgsConfig-version.cmake"
+  "/home/simhe502/catkin_ws/devel/share/actionlib_msgs/cmake/actionlib_msgsConfig.cmake"
+  "/home/simhe502/catkin_ws/devel/share/catkin_simple/cmake/catkin_simple-extras.cmake"
+  "/home/simhe502/catkin_ws/devel/share/catkin_simple/cmake/catkin_simpleConfig-version.cmake"
+  "/home/simhe502/catkin_ws/devel/share/catkin_simple/cmake/catkin_simpleConfig.cmake"
+  "/home/simhe502/catkin_ws/devel/share/geometry_msgs/cmake/geometry_msgs-msg-extras.cmake"
+  "/home/simhe502/catkin_ws/devel/share/geometry_msgs/cmake/geometry_msgsConfig-version.cmake"
+  "/home/simhe502/catkin_ws/devel/share/geometry_msgs/cmake/geometry_msgsConfig.cmake"
+  "/home/simhe502/catkin_ws/devel/share/sensor_msgs/cmake/sensor_msgs-msg-extras.cmake"
+  "/home/simhe502/catkin_ws/devel/share/sensor_msgs/cmake/sensor_msgsConfig-version.cmake"
+  "/home/simhe502/catkin_ws/devel/share/sensor_msgs/cmake/sensor_msgsConfig.cmake"
+  "../CMakeLists.txt"
+  "../cmake/FindOpenBLAS.cmake"
+  "../package.xml"
+  "CMakeFiles/3.16.3/CMakeCCompiler.cmake"
+  "CMakeFiles/3.16.3/CMakeCXXCompiler.cmake"
+  "CMakeFiles/3.16.3/CMakeSystem.cmake"
+  "catkin/catkin_generated/version/package.cmake"
+  "catkin_generated/installspace/_setup_util.py"
+  "catkin_generated/ordered_paths.cmake"
+  "catkin_generated/package.cmake"
+  "/opt/ros/noetic/share/actionlib/cmake/actionlib-msg-extras.cmake"
+  "/opt/ros/noetic/share/actionlib/cmake/actionlibConfig-version.cmake"
+  "/opt/ros/noetic/share/actionlib/cmake/actionlibConfig.cmake"
+  "/opt/ros/noetic/share/catkin/cmake/all.cmake"
+  "/opt/ros/noetic/share/catkin/cmake/assert.cmake"
+  "/opt/ros/noetic/share/catkin/cmake/atomic_configure_file.cmake"
+  "/opt/ros/noetic/share/catkin/cmake/catkinConfig-version.cmake"
+  "/opt/ros/noetic/share/catkin/cmake/catkinConfig.cmake"
+  "/opt/ros/noetic/share/catkin/cmake/catkin_add_env_hooks.cmake"
+  "/opt/ros/noetic/share/catkin/cmake/catkin_destinations.cmake"
+  "/opt/ros/noetic/share/catkin/cmake/catkin_download.cmake"
+  "/opt/ros/noetic/share/catkin/cmake/catkin_generate_environment.cmake"
+  "/opt/ros/noetic/share/catkin/cmake/catkin_install_python.cmake"
+  "/opt/ros/noetic/share/catkin/cmake/catkin_libraries.cmake"
+  "/opt/ros/noetic/share/catkin/cmake/catkin_metapackage.cmake"
+  "/opt/ros/noetic/share/catkin/cmake/catkin_package.cmake"
+  "/opt/ros/noetic/share/catkin/cmake/catkin_package_xml.cmake"
+  "/opt/ros/noetic/share/catkin/cmake/catkin_python_setup.cmake"
+  "/opt/ros/noetic/share/catkin/cmake/catkin_symlink_install.cmake"
+  "/opt/ros/noetic/share/catkin/cmake/catkin_workspace.cmake"
+  "/opt/ros/noetic/share/catkin/cmake/custom_install.cmake"
+  "/opt/ros/noetic/share/catkin/cmake/debug_message.cmake"
+  "/opt/ros/noetic/share/catkin/cmake/em/pkg.pc.em"
+  "/opt/ros/noetic/share/catkin/cmake/em_expand.cmake"
+  "/opt/ros/noetic/share/catkin/cmake/empy.cmake"
+  "/opt/ros/noetic/share/catkin/cmake/find_program_required.cmake"
+  "/opt/ros/noetic/share/catkin/cmake/interrogate_setup_dot_py.py"
+  "/opt/ros/noetic/share/catkin/cmake/legacy.cmake"
+  "/opt/ros/noetic/share/catkin/cmake/list_append_deduplicate.cmake"
+  "/opt/ros/noetic/share/catkin/cmake/list_append_unique.cmake"
+  "/opt/ros/noetic/share/catkin/cmake/list_insert_in_workspace_order.cmake"
+  "/opt/ros/noetic/share/catkin/cmake/platform/lsb.cmake"
+  "/opt/ros/noetic/share/catkin/cmake/platform/ubuntu.cmake"
+  "/opt/ros/noetic/share/catkin/cmake/platform/windows.cmake"
+  "/opt/ros/noetic/share/catkin/cmake/python.cmake"
+  "/opt/ros/noetic/share/catkin/cmake/safe_execute_process.cmake"
+  "/opt/ros/noetic/share/catkin/cmake/stamp.cmake"
+  "/opt/ros/noetic/share/catkin/cmake/string_starts_with.cmake"
+  "/opt/ros/noetic/share/catkin/cmake/templates/_setup_util.py.in"
+  "/opt/ros/noetic/share/catkin/cmake/templates/env.sh.in"
+  "/opt/ros/noetic/share/catkin/cmake/templates/generate_cached_setup.py.in"
+  "/opt/ros/noetic/share/catkin/cmake/templates/local_setup.bash.in"
+  "/opt/ros/noetic/share/catkin/cmake/templates/local_setup.sh.in"
+  "/opt/ros/noetic/share/catkin/cmake/templates/local_setup.zsh.in"
+  "/opt/ros/noetic/share/catkin/cmake/templates/pkg.context.pc.in"
+  "/opt/ros/noetic/share/catkin/cmake/templates/pkgConfig-version.cmake.in"
+  "/opt/ros/noetic/share/catkin/cmake/templates/pkgConfig.cmake.in"
+  "/opt/ros/noetic/share/catkin/cmake/templates/rosinstall.in"
+  "/opt/ros/noetic/share/catkin/cmake/templates/setup.bash.in"
+  "/opt/ros/noetic/share/catkin/cmake/templates/setup.sh.in"
+  "/opt/ros/noetic/share/catkin/cmake/templates/setup.zsh.in"
+  "/opt/ros/noetic/share/catkin/cmake/test/catkin_download_test_data.cmake"
+  "/opt/ros/noetic/share/catkin/cmake/test/gtest.cmake"
+  "/opt/ros/noetic/share/catkin/cmake/test/nosetests.cmake"
+  "/opt/ros/noetic/share/catkin/cmake/test/tests.cmake"
+  "/opt/ros/noetic/share/catkin/cmake/tools/doxygen.cmake"
+  "/opt/ros/noetic/share/catkin/cmake/tools/libraries.cmake"
+  "/opt/ros/noetic/share/catkin/cmake/tools/rt.cmake"
+  "/opt/ros/noetic/share/catkin/package.xml"
+  "/opt/ros/noetic/share/cmake_modules/cmake/Modules/FindEigen.cmake"
+  "/opt/ros/noetic/share/cmake_modules/cmake/cmake_modules-extras.cmake"
+  "/opt/ros/noetic/share/cmake_modules/cmake/cmake_modulesConfig-version.cmake"
+  "/opt/ros/noetic/share/cmake_modules/cmake/cmake_modulesConfig.cmake"
+  "/opt/ros/noetic/share/cpp_common/cmake/cpp_commonConfig-version.cmake"
+  "/opt/ros/noetic/share/cpp_common/cmake/cpp_commonConfig.cmake"
+  "/opt/ros/noetic/share/dynamic_reconfigure/cmake/dynamic_reconfigure-extras.cmake"
+  "/opt/ros/noetic/share/dynamic_reconfigure/cmake/dynamic_reconfigure-macros.cmake"
+  "/opt/ros/noetic/share/dynamic_reconfigure/cmake/dynamic_reconfigure-msg-extras.cmake"
+  "/opt/ros/noetic/share/dynamic_reconfigure/cmake/dynamic_reconfigureConfig-version.cmake"
+  "/opt/ros/noetic/share/dynamic_reconfigure/cmake/dynamic_reconfigureConfig.cmake"
+  "/opt/ros/noetic/share/dynamic_reconfigure/cmake/setup_custom_pythonpath.sh.in"
+  "/opt/ros/noetic/share/gencpp/cmake/gencpp-extras.cmake"
+  "/opt/ros/noetic/share/gencpp/cmake/gencppConfig-version.cmake"
+  "/opt/ros/noetic/share/gencpp/cmake/gencppConfig.cmake"
+  "/opt/ros/noetic/share/geneus/cmake/geneus-extras.cmake"
+  "/opt/ros/noetic/share/geneus/cmake/geneusConfig-version.cmake"
+  "/opt/ros/noetic/share/geneus/cmake/geneusConfig.cmake"
+  "/opt/ros/noetic/share/genlisp/cmake/genlisp-extras.cmake"
+  "/opt/ros/noetic/share/genlisp/cmake/genlispConfig-version.cmake"
+  "/opt/ros/noetic/share/genlisp/cmake/genlispConfig.cmake"
+  "/opt/ros/noetic/share/genmsg/cmake/genmsg-extras.cmake"
+  "/opt/ros/noetic/share/genmsg/cmake/genmsgConfig-version.cmake"
+  "/opt/ros/noetic/share/genmsg/cmake/genmsgConfig.cmake"
+  "/opt/ros/noetic/share/gennodejs/cmake/gennodejs-extras.cmake"
+  "/opt/ros/noetic/share/gennodejs/cmake/gennodejsConfig-version.cmake"
+  "/opt/ros/noetic/share/gennodejs/cmake/gennodejsConfig.cmake"
+  "/opt/ros/noetic/share/genpy/cmake/genpy-extras.cmake"
+  "/opt/ros/noetic/share/genpy/cmake/genpyConfig-version.cmake"
+  "/opt/ros/noetic/share/genpy/cmake/genpyConfig.cmake"
+  "/opt/ros/noetic/share/message_filters/cmake/message_filtersConfig-version.cmake"
+  "/opt/ros/noetic/share/message_filters/cmake/message_filtersConfig.cmake"
+  "/opt/ros/noetic/share/message_generation/cmake/message_generationConfig-version.cmake"
+  "/opt/ros/noetic/share/message_generation/cmake/message_generationConfig.cmake"
+  "/opt/ros/noetic/share/message_runtime/cmake/message_runtimeConfig-version.cmake"
+  "/opt/ros/noetic/share/message_runtime/cmake/message_runtimeConfig.cmake"
+  "/opt/ros/noetic/share/rosconsole/cmake/rosconsole-extras.cmake"
+  "/opt/ros/noetic/share/rosconsole/cmake/rosconsoleConfig-version.cmake"
+  "/opt/ros/noetic/share/rosconsole/cmake/rosconsoleConfig.cmake"
+  "/opt/ros/noetic/share/roscpp/cmake/roscpp-msg-extras.cmake"
+  "/opt/ros/noetic/share/roscpp/cmake/roscppConfig-version.cmake"
+  "/opt/ros/noetic/share/roscpp/cmake/roscppConfig.cmake"
+  "/opt/ros/noetic/share/roscpp_serialization/cmake/roscpp_serializationConfig-version.cmake"
+  "/opt/ros/noetic/share/roscpp_serialization/cmake/roscpp_serializationConfig.cmake"
+  "/opt/ros/noetic/share/roscpp_traits/cmake/roscpp_traitsConfig-version.cmake"
+  "/opt/ros/noetic/share/roscpp_traits/cmake/roscpp_traitsConfig.cmake"
+  "/opt/ros/noetic/share/rosgraph/cmake/rosgraphConfig-version.cmake"
+  "/opt/ros/noetic/share/rosgraph/cmake/rosgraphConfig.cmake"
+  "/opt/ros/noetic/share/rosgraph_msgs/cmake/rosgraph_msgs-msg-extras.cmake"
+  "/opt/ros/noetic/share/rosgraph_msgs/cmake/rosgraph_msgsConfig-version.cmake"
+  "/opt/ros/noetic/share/rosgraph_msgs/cmake/rosgraph_msgsConfig.cmake"
+  "/opt/ros/noetic/share/rospy/cmake/rospyConfig-version.cmake"
+  "/opt/ros/noetic/share/rospy/cmake/rospyConfig.cmake"
+  "/opt/ros/noetic/share/rostime/cmake/rostimeConfig-version.cmake"
+  "/opt/ros/noetic/share/rostime/cmake/rostimeConfig.cmake"
+  "/opt/ros/noetic/share/std_msgs/cmake/std_msgs-msg-extras.cmake"
+  "/opt/ros/noetic/share/std_msgs/cmake/std_msgsConfig-version.cmake"
+  "/opt/ros/noetic/share/std_msgs/cmake/std_msgsConfig.cmake"
+  "/opt/ros/noetic/share/tf/cmake/tf-msg-extras.cmake"
+  "/opt/ros/noetic/share/tf/cmake/tfConfig-version.cmake"
+  "/opt/ros/noetic/share/tf/cmake/tfConfig.cmake"
+  "/opt/ros/noetic/share/tf2/cmake/tf2Config-version.cmake"
+  "/opt/ros/noetic/share/tf2/cmake/tf2Config.cmake"
+  "/opt/ros/noetic/share/tf2_msgs/cmake/tf2_msgs-msg-extras.cmake"
+  "/opt/ros/noetic/share/tf2_msgs/cmake/tf2_msgsConfig-version.cmake"
+  "/opt/ros/noetic/share/tf2_msgs/cmake/tf2_msgsConfig.cmake"
+  "/opt/ros/noetic/share/tf2_py/cmake/tf2_pyConfig-version.cmake"
+  "/opt/ros/noetic/share/tf2_py/cmake/tf2_pyConfig.cmake"
+  "/opt/ros/noetic/share/tf2_ros/cmake/tf2_rosConfig-version.cmake"
+  "/opt/ros/noetic/share/tf2_ros/cmake/tf2_rosConfig.cmake"
+  "/opt/ros/noetic/share/xmlrpcpp/cmake/xmlrpcpp-extras.cmake"
+  "/opt/ros/noetic/share/xmlrpcpp/cmake/xmlrpcppConfig-version.cmake"
+  "/opt/ros/noetic/share/xmlrpcpp/cmake/xmlrpcppConfig.cmake"
+  "/usr/share/cmake-3.16/Modules/CMakeCInformation.cmake"
+  "/usr/share/cmake-3.16/Modules/CMakeCXXInformation.cmake"
+  "/usr/share/cmake-3.16/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake"
+  "/usr/share/cmake-3.16/Modules/CMakeCommonLanguageInclude.cmake"
+  "/usr/share/cmake-3.16/Modules/CMakeDependentOption.cmake"
+  "/usr/share/cmake-3.16/Modules/CMakeGenericSystem.cmake"
+  "/usr/share/cmake-3.16/Modules/CMakeInitializeConfigs.cmake"
+  "/usr/share/cmake-3.16/Modules/CMakeLanguageInformation.cmake"
+  "/usr/share/cmake-3.16/Modules/CMakeParseArguments.cmake"
+  "/usr/share/cmake-3.16/Modules/CMakePushCheckState.cmake"
+  "/usr/share/cmake-3.16/Modules/CMakeSystemSpecificInformation.cmake"
+  "/usr/share/cmake-3.16/Modules/CMakeSystemSpecificInitialize.cmake"
+  "/usr/share/cmake-3.16/Modules/CheckCSourceCompiles.cmake"
+  "/usr/share/cmake-3.16/Modules/CheckFortranFunctionExists.cmake"
+  "/usr/share/cmake-3.16/Modules/CheckFunctionExists.cmake"
+  "/usr/share/cmake-3.16/Modules/CheckIncludeFile.cmake"
+  "/usr/share/cmake-3.16/Modules/CheckLibraryExists.cmake"
+  "/usr/share/cmake-3.16/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
+  "/usr/share/cmake-3.16/Modules/Compiler/GNU-C.cmake"
+  "/usr/share/cmake-3.16/Modules/Compiler/GNU-CXX.cmake"
+  "/usr/share/cmake-3.16/Modules/Compiler/GNU.cmake"
+  "/usr/share/cmake-3.16/Modules/DartConfiguration.tcl.in"
+  "/usr/share/cmake-3.16/Modules/FindBLAS.cmake"
+  "/usr/share/cmake-3.16/Modules/FindGTest.cmake"
+  "/usr/share/cmake-3.16/Modules/FindLAPACK.cmake"
+  "/usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake"
+  "/usr/share/cmake-3.16/Modules/FindPackageMessage.cmake"
+  "/usr/share/cmake-3.16/Modules/FindPkgConfig.cmake"
+  "/usr/share/cmake-3.16/Modules/FindPythonInterp.cmake"
+  "/usr/share/cmake-3.16/Modules/FindThreads.cmake"
+  "/usr/share/cmake-3.16/Modules/GNUInstallDirs.cmake"
+  "/usr/share/cmake-3.16/Modules/GoogleTest.cmake"
+  "/usr/share/cmake-3.16/Modules/Internal/CMakeCheckCompilerFlag.cmake"
+  "/usr/share/cmake-3.16/Modules/Platform/Linux-GNU-C.cmake"
+  "/usr/share/cmake-3.16/Modules/Platform/Linux-GNU-CXX.cmake"
+  "/usr/share/cmake-3.16/Modules/Platform/Linux-GNU.cmake"
+  "/usr/share/cmake-3.16/Modules/Platform/Linux.cmake"
+  "/usr/share/cmake-3.16/Modules/Platform/UnixPaths.cmake"
+  "/usr/src/googletest/CMakeLists.txt"
+  "/usr/src/googletest/googlemock/CMakeLists.txt"
+  "/usr/src/googletest/googletest/CMakeLists.txt"
+  "/usr/src/googletest/googletest/cmake/internal_utils.cmake"
+  )
+
+# The corresponding makefile is:
+set(CMAKE_MAKEFILE_OUTPUTS
+  "Makefile"
+  "CMakeFiles/cmake.check_cache"
+  )
+
+# Byproducts of CMake generate step:
+set(CMAKE_MAKEFILE_PRODUCTS
+  "CTestConfiguration.ini"
+  "catkin_generated/stamps/mav_nonlinear_mpc/package.xml.stamp"
+  "atomic_configure/_setup_util.py"
+  "atomic_configure/env.sh"
+  "atomic_configure/setup.bash"
+  "atomic_configure/local_setup.bash"
+  "atomic_configure/setup.sh"
+  "atomic_configure/local_setup.sh"
+  "atomic_configure/setup.zsh"
+  "atomic_configure/local_setup.zsh"
+  "atomic_configure/.rosinstall"
+  "catkin_generated/installspace/_setup_util.py"
+  "catkin_generated/stamps/mav_nonlinear_mpc/_setup_util.py.stamp"
+  "catkin_generated/installspace/env.sh"
+  "catkin_generated/installspace/setup.bash"
+  "catkin_generated/installspace/local_setup.bash"
+  "catkin_generated/installspace/setup.sh"
+  "catkin_generated/installspace/local_setup.sh"
+  "catkin_generated/installspace/setup.zsh"
+  "catkin_generated/installspace/local_setup.zsh"
+  "catkin_generated/installspace/.rosinstall"
+  "catkin_generated/generate_cached_setup.py"
+  "catkin_generated/env_cached.sh"
+  "catkin_generated/stamps/mav_nonlinear_mpc/interrogate_setup_dot_py.py.stamp"
+  "catkin_generated/stamps/mav_nonlinear_mpc/package.xml.stamp"
+  "setup_custom_pythonpath.sh"
+  "catkin_generated/pkg.develspace.context.pc.py"
+  "catkin_generated/stamps/mav_nonlinear_mpc/pkg.pc.em.stamp"
+  "devel/share/mav_nonlinear_mpc/cmake/mav_nonlinear_mpcConfig.cmake"
+  "devel/share/mav_nonlinear_mpc/cmake/mav_nonlinear_mpcConfig-version.cmake"
+  "catkin_generated/pkg.installspace.context.pc.py"
+  "catkin_generated/stamps/mav_nonlinear_mpc/pkg.pc.em.stamp"
+  "catkin_generated/installspace/mav_nonlinear_mpcConfig.cmake"
+  "catkin_generated/installspace/mav_nonlinear_mpcConfig-version.cmake"
+  "CMakeFiles/CMakeDirectoryInformation.cmake"
+  "gtest/CMakeFiles/CMakeDirectoryInformation.cmake"
+  "gtest/googlemock/CMakeFiles/CMakeDirectoryInformation.cmake"
+  "gtest/googletest/CMakeFiles/CMakeDirectoryInformation.cmake"
+  )
+
+# Dependency information for all targets:
+set(CMAKE_DEPEND_INFO_FILES
+  "CMakeFiles/nonlinear_mpc_node.dir/DependInfo.cmake"
+  "CMakeFiles/mav_nonlinear_mpc_lib.dir/DependInfo.cmake"
+  "CMakeFiles/dynamic_reconfigure_gencfg.dir/DependInfo.cmake"
+  "CMakeFiles/std_msgs_generate_messages_lisp.dir/DependInfo.cmake"
+  "CMakeFiles/sensor_msgs_generate_messages_cpp.dir/DependInfo.cmake"
+  "CMakeFiles/mav_nonlinear_mpc_gencfg.dir/DependInfo.cmake"
+  "CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/DependInfo.cmake"
+  "CMakeFiles/actionlib_generate_messages_cpp.dir/DependInfo.cmake"
+  "CMakeFiles/actionlib_msgs_generate_messages_py.dir/DependInfo.cmake"
+  "CMakeFiles/tf_generate_messages_cpp.dir/DependInfo.cmake"
+  "CMakeFiles/geometry_msgs_generate_messages_lisp.dir/DependInfo.cmake"
+  "CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/DependInfo.cmake"
+  "CMakeFiles/actionlib_msgs_generate_messages_eus.dir/DependInfo.cmake"
+  "CMakeFiles/roscpp_generate_messages_py.dir/DependInfo.cmake"
+  "CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/DependInfo.cmake"
+  "CMakeFiles/tf_generate_messages_lisp.dir/DependInfo.cmake"
+  "CMakeFiles/rosgraph_msgs_generate_messages_py.dir/DependInfo.cmake"
+  "CMakeFiles/download_extra_data.dir/DependInfo.cmake"
+  "CMakeFiles/doxygen.dir/DependInfo.cmake"
+  "CMakeFiles/roscpp_generate_messages_lisp.dir/DependInfo.cmake"
+  "CMakeFiles/_catkin_empty_exported_target.dir/DependInfo.cmake"
+  "CMakeFiles/clean_test_results.dir/DependInfo.cmake"
+  "CMakeFiles/actionlib_generate_messages_lisp.dir/DependInfo.cmake"
+  "CMakeFiles/roscpp_generate_messages_eus.dir/DependInfo.cmake"
+  "CMakeFiles/tests.dir/DependInfo.cmake"
+  "CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/DependInfo.cmake"
+  "CMakeFiles/roscpp_generate_messages_cpp.dir/DependInfo.cmake"
+  "CMakeFiles/std_msgs_generate_messages_cpp.dir/DependInfo.cmake"
+  "CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/DependInfo.cmake"
+  "CMakeFiles/tf_generate_messages_eus.dir/DependInfo.cmake"
+  "CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/DependInfo.cmake"
+  "CMakeFiles/tf2_msgs_generate_messages_cpp.dir/DependInfo.cmake"
+  "CMakeFiles/roscpp_generate_messages_nodejs.dir/DependInfo.cmake"
+  "CMakeFiles/mav_nonlinear_mpc_package.dir/DependInfo.cmake"
+  "CMakeFiles/run_tests.dir/DependInfo.cmake"
+  "CMakeFiles/std_msgs_generate_messages_nodejs.dir/DependInfo.cmake"
+  "CMakeFiles/geometry_msgs_generate_messages_eus.dir/DependInfo.cmake"
+  "CMakeFiles/std_msgs_generate_messages_py.dir/DependInfo.cmake"
+  "CMakeFiles/tf_generate_messages_nodejs.dir/DependInfo.cmake"
+  "CMakeFiles/geometry_msgs_generate_messages_cpp.dir/DependInfo.cmake"
+  "CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/DependInfo.cmake"
+  "CMakeFiles/tf2_msgs_generate_messages_py.dir/DependInfo.cmake"
+  "CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/DependInfo.cmake"
+  "CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/DependInfo.cmake"
+  "CMakeFiles/geometry_msgs_generate_messages_py.dir/DependInfo.cmake"
+  "CMakeFiles/tf2_msgs_generate_messages_eus.dir/DependInfo.cmake"
+  "CMakeFiles/sensor_msgs_generate_messages_py.dir/DependInfo.cmake"
+  "CMakeFiles/sensor_msgs_generate_messages_eus.dir/DependInfo.cmake"
+  "CMakeFiles/sensor_msgs_generate_messages_lisp.dir/DependInfo.cmake"
+  "CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/DependInfo.cmake"
+  "CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/DependInfo.cmake"
+  "CMakeFiles/actionlib_generate_messages_eus.dir/DependInfo.cmake"
+  "CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/DependInfo.cmake"
+  "CMakeFiles/actionlib_generate_messages_nodejs.dir/DependInfo.cmake"
+  "CMakeFiles/actionlib_generate_messages_py.dir/DependInfo.cmake"
+  "CMakeFiles/tf_generate_messages_py.dir/DependInfo.cmake"
+  "CMakeFiles/std_msgs_generate_messages_eus.dir/DependInfo.cmake"
+  "CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/DependInfo.cmake"
+  "CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/DependInfo.cmake"
+  "CMakeFiles/tf2_msgs_generate_messages_lisp.dir/DependInfo.cmake"
+  "CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/DependInfo.cmake"
+  "gtest/googlemock/CMakeFiles/gmock_main.dir/DependInfo.cmake"
+  "gtest/googlemock/CMakeFiles/gmock.dir/DependInfo.cmake"
+  "gtest/googletest/CMakeFiles/gtest_main.dir/DependInfo.cmake"
+  "gtest/googletest/CMakeFiles/gtest.dir/DependInfo.cmake"
+  )
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/Makefile2 b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/Makefile2
new file mode 100644
index 0000000..fe0483e
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/Makefile2
@@ -0,0 +1,2060 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Default target executed when no arguments are given to make.
+default_target: all
+
+.PHONY : default_target
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+#=============================================================================
+# Directory level rules for the build root directory
+
+# The main recursive "all" target.
+all: CMakeFiles/nonlinear_mpc_node.dir/all
+all: CMakeFiles/mav_nonlinear_mpc_lib.dir/all
+all: CMakeFiles/mav_nonlinear_mpc_gencfg.dir/all
+all: gtest/all
+
+.PHONY : all
+
+# The main recursive "preinstall" target.
+preinstall: gtest/preinstall
+
+.PHONY : preinstall
+
+# The main recursive "clean" target.
+clean: CMakeFiles/nonlinear_mpc_node.dir/clean
+clean: CMakeFiles/mav_nonlinear_mpc_lib.dir/clean
+clean: CMakeFiles/dynamic_reconfigure_gencfg.dir/clean
+clean: CMakeFiles/std_msgs_generate_messages_lisp.dir/clean
+clean: CMakeFiles/sensor_msgs_generate_messages_cpp.dir/clean
+clean: CMakeFiles/mav_nonlinear_mpc_gencfg.dir/clean
+clean: CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/clean
+clean: CMakeFiles/actionlib_generate_messages_cpp.dir/clean
+clean: CMakeFiles/actionlib_msgs_generate_messages_py.dir/clean
+clean: CMakeFiles/tf_generate_messages_cpp.dir/clean
+clean: CMakeFiles/geometry_msgs_generate_messages_lisp.dir/clean
+clean: CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/clean
+clean: CMakeFiles/actionlib_msgs_generate_messages_eus.dir/clean
+clean: CMakeFiles/roscpp_generate_messages_py.dir/clean
+clean: CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/clean
+clean: CMakeFiles/tf_generate_messages_lisp.dir/clean
+clean: CMakeFiles/rosgraph_msgs_generate_messages_py.dir/clean
+clean: CMakeFiles/download_extra_data.dir/clean
+clean: CMakeFiles/doxygen.dir/clean
+clean: CMakeFiles/roscpp_generate_messages_lisp.dir/clean
+clean: CMakeFiles/_catkin_empty_exported_target.dir/clean
+clean: CMakeFiles/clean_test_results.dir/clean
+clean: CMakeFiles/actionlib_generate_messages_lisp.dir/clean
+clean: CMakeFiles/roscpp_generate_messages_eus.dir/clean
+clean: CMakeFiles/tests.dir/clean
+clean: CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/clean
+clean: CMakeFiles/roscpp_generate_messages_cpp.dir/clean
+clean: CMakeFiles/std_msgs_generate_messages_cpp.dir/clean
+clean: CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/clean
+clean: CMakeFiles/tf_generate_messages_eus.dir/clean
+clean: CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/clean
+clean: CMakeFiles/tf2_msgs_generate_messages_cpp.dir/clean
+clean: CMakeFiles/roscpp_generate_messages_nodejs.dir/clean
+clean: CMakeFiles/mav_nonlinear_mpc_package.dir/clean
+clean: CMakeFiles/run_tests.dir/clean
+clean: CMakeFiles/std_msgs_generate_messages_nodejs.dir/clean
+clean: CMakeFiles/geometry_msgs_generate_messages_eus.dir/clean
+clean: CMakeFiles/std_msgs_generate_messages_py.dir/clean
+clean: CMakeFiles/tf_generate_messages_nodejs.dir/clean
+clean: CMakeFiles/geometry_msgs_generate_messages_cpp.dir/clean
+clean: CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/clean
+clean: CMakeFiles/tf2_msgs_generate_messages_py.dir/clean
+clean: CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/clean
+clean: CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/clean
+clean: CMakeFiles/geometry_msgs_generate_messages_py.dir/clean
+clean: CMakeFiles/tf2_msgs_generate_messages_eus.dir/clean
+clean: CMakeFiles/sensor_msgs_generate_messages_py.dir/clean
+clean: CMakeFiles/sensor_msgs_generate_messages_eus.dir/clean
+clean: CMakeFiles/sensor_msgs_generate_messages_lisp.dir/clean
+clean: CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/clean
+clean: CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/clean
+clean: CMakeFiles/actionlib_generate_messages_eus.dir/clean
+clean: CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/clean
+clean: CMakeFiles/actionlib_generate_messages_nodejs.dir/clean
+clean: CMakeFiles/actionlib_generate_messages_py.dir/clean
+clean: CMakeFiles/tf_generate_messages_py.dir/clean
+clean: CMakeFiles/std_msgs_generate_messages_eus.dir/clean
+clean: CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/clean
+clean: CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/clean
+clean: CMakeFiles/tf2_msgs_generate_messages_lisp.dir/clean
+clean: CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/clean
+clean: gtest/clean
+
+.PHONY : clean
+
+#=============================================================================
+# Directory level rules for directory gtest
+
+# Recursive "all" directory target.
+gtest/all: gtest/googlemock/all
+
+.PHONY : gtest/all
+
+# Recursive "preinstall" directory target.
+gtest/preinstall: gtest/googlemock/preinstall
+
+.PHONY : gtest/preinstall
+
+# Recursive "clean" directory target.
+gtest/clean: gtest/googlemock/clean
+
+.PHONY : gtest/clean
+
+#=============================================================================
+# Directory level rules for directory gtest/googlemock
+
+# Recursive "all" directory target.
+gtest/googlemock/all: gtest/googletest/all
+
+.PHONY : gtest/googlemock/all
+
+# Recursive "preinstall" directory target.
+gtest/googlemock/preinstall: gtest/googletest/preinstall
+
+.PHONY : gtest/googlemock/preinstall
+
+# Recursive "clean" directory target.
+gtest/googlemock/clean: gtest/googlemock/CMakeFiles/gmock_main.dir/clean
+gtest/googlemock/clean: gtest/googlemock/CMakeFiles/gmock.dir/clean
+gtest/googlemock/clean: gtest/googletest/clean
+
+.PHONY : gtest/googlemock/clean
+
+#=============================================================================
+# Directory level rules for directory gtest/googletest
+
+# Recursive "all" directory target.
+gtest/googletest/all:
+
+.PHONY : gtest/googletest/all
+
+# Recursive "preinstall" directory target.
+gtest/googletest/preinstall:
+
+.PHONY : gtest/googletest/preinstall
+
+# Recursive "clean" directory target.
+gtest/googletest/clean: gtest/googletest/CMakeFiles/gtest_main.dir/clean
+gtest/googletest/clean: gtest/googletest/CMakeFiles/gtest.dir/clean
+
+.PHONY : gtest/googletest/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/nonlinear_mpc_node.dir
+
+# All Build rule for target.
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/mav_nonlinear_mpc_lib.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/dynamic_reconfigure_gencfg.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/std_msgs_generate_messages_lisp.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/sensor_msgs_generate_messages_cpp.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/mav_nonlinear_mpc_gencfg.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/actionlib_generate_messages_cpp.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/actionlib_msgs_generate_messages_py.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/tf_generate_messages_cpp.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/geometry_msgs_generate_messages_lisp.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/actionlib_msgs_generate_messages_eus.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/roscpp_generate_messages_py.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/tf_generate_messages_lisp.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/rosgraph_msgs_generate_messages_py.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/roscpp_generate_messages_lisp.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/actionlib_generate_messages_lisp.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/roscpp_generate_messages_eus.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/roscpp_generate_messages_cpp.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/std_msgs_generate_messages_cpp.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/tf_generate_messages_eus.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/tf2_msgs_generate_messages_cpp.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/roscpp_generate_messages_nodejs.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/std_msgs_generate_messages_nodejs.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/geometry_msgs_generate_messages_eus.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/std_msgs_generate_messages_py.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/tf_generate_messages_nodejs.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/geometry_msgs_generate_messages_cpp.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/tf2_msgs_generate_messages_py.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/geometry_msgs_generate_messages_py.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/tf2_msgs_generate_messages_eus.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/sensor_msgs_generate_messages_py.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/sensor_msgs_generate_messages_eus.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/sensor_msgs_generate_messages_lisp.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/actionlib_generate_messages_eus.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/actionlib_generate_messages_nodejs.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/actionlib_generate_messages_py.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/tf_generate_messages_py.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/std_msgs_generate_messages_eus.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/tf2_msgs_generate_messages_lisp.dir/all
+CMakeFiles/nonlinear_mpc_node.dir/all: CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/all
+	$(MAKE) -f CMakeFiles/nonlinear_mpc_node.dir/build.make CMakeFiles/nonlinear_mpc_node.dir/depend
+	$(MAKE) -f CMakeFiles/nonlinear_mpc_node.dir/build.make CMakeFiles/nonlinear_mpc_node.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num=26,27 "Built target nonlinear_mpc_node"
+.PHONY : CMakeFiles/nonlinear_mpc_node.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/nonlinear_mpc_node.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 19
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/nonlinear_mpc_node.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/nonlinear_mpc_node.dir/rule
+
+# Convenience name for target.
+nonlinear_mpc_node: CMakeFiles/nonlinear_mpc_node.dir/rule
+
+.PHONY : nonlinear_mpc_node
+
+# clean rule for target.
+CMakeFiles/nonlinear_mpc_node.dir/clean:
+	$(MAKE) -f CMakeFiles/nonlinear_mpc_node.dir/build.make CMakeFiles/nonlinear_mpc_node.dir/clean
+.PHONY : CMakeFiles/nonlinear_mpc_node.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/mav_nonlinear_mpc_lib.dir
+
+# All Build rule for target.
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/dynamic_reconfigure_gencfg.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/std_msgs_generate_messages_lisp.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/sensor_msgs_generate_messages_cpp.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/mav_nonlinear_mpc_gencfg.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/actionlib_generate_messages_cpp.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/actionlib_msgs_generate_messages_py.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/tf_generate_messages_cpp.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/geometry_msgs_generate_messages_lisp.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/actionlib_msgs_generate_messages_eus.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/roscpp_generate_messages_py.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/tf_generate_messages_lisp.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/rosgraph_msgs_generate_messages_py.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/roscpp_generate_messages_lisp.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/actionlib_generate_messages_lisp.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/roscpp_generate_messages_eus.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/roscpp_generate_messages_cpp.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/std_msgs_generate_messages_cpp.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/tf_generate_messages_eus.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/tf2_msgs_generate_messages_cpp.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/roscpp_generate_messages_nodejs.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/std_msgs_generate_messages_nodejs.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/geometry_msgs_generate_messages_eus.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/std_msgs_generate_messages_py.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/tf_generate_messages_nodejs.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/geometry_msgs_generate_messages_cpp.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/tf2_msgs_generate_messages_py.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/geometry_msgs_generate_messages_py.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/tf2_msgs_generate_messages_eus.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/sensor_msgs_generate_messages_py.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/sensor_msgs_generate_messages_eus.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/sensor_msgs_generate_messages_lisp.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/actionlib_generate_messages_eus.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/actionlib_generate_messages_nodejs.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/actionlib_generate_messages_py.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/tf_generate_messages_py.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/std_msgs_generate_messages_eus.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/tf2_msgs_generate_messages_lisp.dir/all
+CMakeFiles/mav_nonlinear_mpc_lib.dir/all: CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/all
+	$(MAKE) -f CMakeFiles/mav_nonlinear_mpc_lib.dir/build.make CMakeFiles/mav_nonlinear_mpc_lib.dir/depend
+	$(MAKE) -f CMakeFiles/mav_nonlinear_mpc_lib.dir/build.make CMakeFiles/mav_nonlinear_mpc_lib.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num=10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25 "Built target mav_nonlinear_mpc_lib"
+.PHONY : CMakeFiles/mav_nonlinear_mpc_lib.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/mav_nonlinear_mpc_lib.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 17
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/mav_nonlinear_mpc_lib.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/mav_nonlinear_mpc_lib.dir/rule
+
+# Convenience name for target.
+mav_nonlinear_mpc_lib: CMakeFiles/mav_nonlinear_mpc_lib.dir/rule
+
+.PHONY : mav_nonlinear_mpc_lib
+
+# clean rule for target.
+CMakeFiles/mav_nonlinear_mpc_lib.dir/clean:
+	$(MAKE) -f CMakeFiles/mav_nonlinear_mpc_lib.dir/build.make CMakeFiles/mav_nonlinear_mpc_lib.dir/clean
+.PHONY : CMakeFiles/mav_nonlinear_mpc_lib.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/dynamic_reconfigure_gencfg.dir
+
+# All Build rule for target.
+CMakeFiles/dynamic_reconfigure_gencfg.dir/all:
+	$(MAKE) -f CMakeFiles/dynamic_reconfigure_gencfg.dir/build.make CMakeFiles/dynamic_reconfigure_gencfg.dir/depend
+	$(MAKE) -f CMakeFiles/dynamic_reconfigure_gencfg.dir/build.make CMakeFiles/dynamic_reconfigure_gencfg.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target dynamic_reconfigure_gencfg"
+.PHONY : CMakeFiles/dynamic_reconfigure_gencfg.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/dynamic_reconfigure_gencfg.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/dynamic_reconfigure_gencfg.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/dynamic_reconfigure_gencfg.dir/rule
+
+# Convenience name for target.
+dynamic_reconfigure_gencfg: CMakeFiles/dynamic_reconfigure_gencfg.dir/rule
+
+.PHONY : dynamic_reconfigure_gencfg
+
+# clean rule for target.
+CMakeFiles/dynamic_reconfigure_gencfg.dir/clean:
+	$(MAKE) -f CMakeFiles/dynamic_reconfigure_gencfg.dir/build.make CMakeFiles/dynamic_reconfigure_gencfg.dir/clean
+.PHONY : CMakeFiles/dynamic_reconfigure_gencfg.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/std_msgs_generate_messages_lisp.dir
+
+# All Build rule for target.
+CMakeFiles/std_msgs_generate_messages_lisp.dir/all:
+	$(MAKE) -f CMakeFiles/std_msgs_generate_messages_lisp.dir/build.make CMakeFiles/std_msgs_generate_messages_lisp.dir/depend
+	$(MAKE) -f CMakeFiles/std_msgs_generate_messages_lisp.dir/build.make CMakeFiles/std_msgs_generate_messages_lisp.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target std_msgs_generate_messages_lisp"
+.PHONY : CMakeFiles/std_msgs_generate_messages_lisp.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/std_msgs_generate_messages_lisp.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/std_msgs_generate_messages_lisp.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/std_msgs_generate_messages_lisp.dir/rule
+
+# Convenience name for target.
+std_msgs_generate_messages_lisp: CMakeFiles/std_msgs_generate_messages_lisp.dir/rule
+
+.PHONY : std_msgs_generate_messages_lisp
+
+# clean rule for target.
+CMakeFiles/std_msgs_generate_messages_lisp.dir/clean:
+	$(MAKE) -f CMakeFiles/std_msgs_generate_messages_lisp.dir/build.make CMakeFiles/std_msgs_generate_messages_lisp.dir/clean
+.PHONY : CMakeFiles/std_msgs_generate_messages_lisp.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/sensor_msgs_generate_messages_cpp.dir
+
+# All Build rule for target.
+CMakeFiles/sensor_msgs_generate_messages_cpp.dir/all:
+	$(MAKE) -f CMakeFiles/sensor_msgs_generate_messages_cpp.dir/build.make CMakeFiles/sensor_msgs_generate_messages_cpp.dir/depend
+	$(MAKE) -f CMakeFiles/sensor_msgs_generate_messages_cpp.dir/build.make CMakeFiles/sensor_msgs_generate_messages_cpp.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target sensor_msgs_generate_messages_cpp"
+.PHONY : CMakeFiles/sensor_msgs_generate_messages_cpp.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/sensor_msgs_generate_messages_cpp.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/sensor_msgs_generate_messages_cpp.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/sensor_msgs_generate_messages_cpp.dir/rule
+
+# Convenience name for target.
+sensor_msgs_generate_messages_cpp: CMakeFiles/sensor_msgs_generate_messages_cpp.dir/rule
+
+.PHONY : sensor_msgs_generate_messages_cpp
+
+# clean rule for target.
+CMakeFiles/sensor_msgs_generate_messages_cpp.dir/clean:
+	$(MAKE) -f CMakeFiles/sensor_msgs_generate_messages_cpp.dir/build.make CMakeFiles/sensor_msgs_generate_messages_cpp.dir/clean
+.PHONY : CMakeFiles/sensor_msgs_generate_messages_cpp.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/mav_nonlinear_mpc_gencfg.dir
+
+# All Build rule for target.
+CMakeFiles/mav_nonlinear_mpc_gencfg.dir/all:
+	$(MAKE) -f CMakeFiles/mav_nonlinear_mpc_gencfg.dir/build.make CMakeFiles/mav_nonlinear_mpc_gencfg.dir/depend
+	$(MAKE) -f CMakeFiles/mav_nonlinear_mpc_gencfg.dir/build.make CMakeFiles/mav_nonlinear_mpc_gencfg.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num=9 "Built target mav_nonlinear_mpc_gencfg"
+.PHONY : CMakeFiles/mav_nonlinear_mpc_gencfg.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/mav_nonlinear_mpc_gencfg.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 1
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/mav_nonlinear_mpc_gencfg.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/mav_nonlinear_mpc_gencfg.dir/rule
+
+# Convenience name for target.
+mav_nonlinear_mpc_gencfg: CMakeFiles/mav_nonlinear_mpc_gencfg.dir/rule
+
+.PHONY : mav_nonlinear_mpc_gencfg
+
+# clean rule for target.
+CMakeFiles/mav_nonlinear_mpc_gencfg.dir/clean:
+	$(MAKE) -f CMakeFiles/mav_nonlinear_mpc_gencfg.dir/build.make CMakeFiles/mav_nonlinear_mpc_gencfg.dir/clean
+.PHONY : CMakeFiles/mav_nonlinear_mpc_gencfg.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir
+
+# All Build rule for target.
+CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/all:
+	$(MAKE) -f CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/build.make CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/depend
+	$(MAKE) -f CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/build.make CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target rosgraph_msgs_generate_messages_nodejs"
+.PHONY : CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/rule
+
+# Convenience name for target.
+rosgraph_msgs_generate_messages_nodejs: CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/rule
+
+.PHONY : rosgraph_msgs_generate_messages_nodejs
+
+# clean rule for target.
+CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/clean:
+	$(MAKE) -f CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/build.make CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/clean
+.PHONY : CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/actionlib_generate_messages_cpp.dir
+
+# All Build rule for target.
+CMakeFiles/actionlib_generate_messages_cpp.dir/all:
+	$(MAKE) -f CMakeFiles/actionlib_generate_messages_cpp.dir/build.make CMakeFiles/actionlib_generate_messages_cpp.dir/depend
+	$(MAKE) -f CMakeFiles/actionlib_generate_messages_cpp.dir/build.make CMakeFiles/actionlib_generate_messages_cpp.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target actionlib_generate_messages_cpp"
+.PHONY : CMakeFiles/actionlib_generate_messages_cpp.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/actionlib_generate_messages_cpp.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/actionlib_generate_messages_cpp.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/actionlib_generate_messages_cpp.dir/rule
+
+# Convenience name for target.
+actionlib_generate_messages_cpp: CMakeFiles/actionlib_generate_messages_cpp.dir/rule
+
+.PHONY : actionlib_generate_messages_cpp
+
+# clean rule for target.
+CMakeFiles/actionlib_generate_messages_cpp.dir/clean:
+	$(MAKE) -f CMakeFiles/actionlib_generate_messages_cpp.dir/build.make CMakeFiles/actionlib_generate_messages_cpp.dir/clean
+.PHONY : CMakeFiles/actionlib_generate_messages_cpp.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/actionlib_msgs_generate_messages_py.dir
+
+# All Build rule for target.
+CMakeFiles/actionlib_msgs_generate_messages_py.dir/all:
+	$(MAKE) -f CMakeFiles/actionlib_msgs_generate_messages_py.dir/build.make CMakeFiles/actionlib_msgs_generate_messages_py.dir/depend
+	$(MAKE) -f CMakeFiles/actionlib_msgs_generate_messages_py.dir/build.make CMakeFiles/actionlib_msgs_generate_messages_py.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target actionlib_msgs_generate_messages_py"
+.PHONY : CMakeFiles/actionlib_msgs_generate_messages_py.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/actionlib_msgs_generate_messages_py.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/actionlib_msgs_generate_messages_py.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/actionlib_msgs_generate_messages_py.dir/rule
+
+# Convenience name for target.
+actionlib_msgs_generate_messages_py: CMakeFiles/actionlib_msgs_generate_messages_py.dir/rule
+
+.PHONY : actionlib_msgs_generate_messages_py
+
+# clean rule for target.
+CMakeFiles/actionlib_msgs_generate_messages_py.dir/clean:
+	$(MAKE) -f CMakeFiles/actionlib_msgs_generate_messages_py.dir/build.make CMakeFiles/actionlib_msgs_generate_messages_py.dir/clean
+.PHONY : CMakeFiles/actionlib_msgs_generate_messages_py.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/tf_generate_messages_cpp.dir
+
+# All Build rule for target.
+CMakeFiles/tf_generate_messages_cpp.dir/all:
+	$(MAKE) -f CMakeFiles/tf_generate_messages_cpp.dir/build.make CMakeFiles/tf_generate_messages_cpp.dir/depend
+	$(MAKE) -f CMakeFiles/tf_generate_messages_cpp.dir/build.make CMakeFiles/tf_generate_messages_cpp.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target tf_generate_messages_cpp"
+.PHONY : CMakeFiles/tf_generate_messages_cpp.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/tf_generate_messages_cpp.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/tf_generate_messages_cpp.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/tf_generate_messages_cpp.dir/rule
+
+# Convenience name for target.
+tf_generate_messages_cpp: CMakeFiles/tf_generate_messages_cpp.dir/rule
+
+.PHONY : tf_generate_messages_cpp
+
+# clean rule for target.
+CMakeFiles/tf_generate_messages_cpp.dir/clean:
+	$(MAKE) -f CMakeFiles/tf_generate_messages_cpp.dir/build.make CMakeFiles/tf_generate_messages_cpp.dir/clean
+.PHONY : CMakeFiles/tf_generate_messages_cpp.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/geometry_msgs_generate_messages_lisp.dir
+
+# All Build rule for target.
+CMakeFiles/geometry_msgs_generate_messages_lisp.dir/all:
+	$(MAKE) -f CMakeFiles/geometry_msgs_generate_messages_lisp.dir/build.make CMakeFiles/geometry_msgs_generate_messages_lisp.dir/depend
+	$(MAKE) -f CMakeFiles/geometry_msgs_generate_messages_lisp.dir/build.make CMakeFiles/geometry_msgs_generate_messages_lisp.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target geometry_msgs_generate_messages_lisp"
+.PHONY : CMakeFiles/geometry_msgs_generate_messages_lisp.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/geometry_msgs_generate_messages_lisp.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/geometry_msgs_generate_messages_lisp.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/geometry_msgs_generate_messages_lisp.dir/rule
+
+# Convenience name for target.
+geometry_msgs_generate_messages_lisp: CMakeFiles/geometry_msgs_generate_messages_lisp.dir/rule
+
+.PHONY : geometry_msgs_generate_messages_lisp
+
+# clean rule for target.
+CMakeFiles/geometry_msgs_generate_messages_lisp.dir/clean:
+	$(MAKE) -f CMakeFiles/geometry_msgs_generate_messages_lisp.dir/build.make CMakeFiles/geometry_msgs_generate_messages_lisp.dir/clean
+.PHONY : CMakeFiles/geometry_msgs_generate_messages_lisp.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/dynamic_reconfigure_generate_messages_py.dir
+
+# All Build rule for target.
+CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/all:
+	$(MAKE) -f CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/build.make CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/depend
+	$(MAKE) -f CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/build.make CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target dynamic_reconfigure_generate_messages_py"
+.PHONY : CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/rule
+
+# Convenience name for target.
+dynamic_reconfigure_generate_messages_py: CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/rule
+
+.PHONY : dynamic_reconfigure_generate_messages_py
+
+# clean rule for target.
+CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/clean:
+	$(MAKE) -f CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/build.make CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/clean
+.PHONY : CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/actionlib_msgs_generate_messages_eus.dir
+
+# All Build rule for target.
+CMakeFiles/actionlib_msgs_generate_messages_eus.dir/all:
+	$(MAKE) -f CMakeFiles/actionlib_msgs_generate_messages_eus.dir/build.make CMakeFiles/actionlib_msgs_generate_messages_eus.dir/depend
+	$(MAKE) -f CMakeFiles/actionlib_msgs_generate_messages_eus.dir/build.make CMakeFiles/actionlib_msgs_generate_messages_eus.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target actionlib_msgs_generate_messages_eus"
+.PHONY : CMakeFiles/actionlib_msgs_generate_messages_eus.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/actionlib_msgs_generate_messages_eus.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/actionlib_msgs_generate_messages_eus.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/actionlib_msgs_generate_messages_eus.dir/rule
+
+# Convenience name for target.
+actionlib_msgs_generate_messages_eus: CMakeFiles/actionlib_msgs_generate_messages_eus.dir/rule
+
+.PHONY : actionlib_msgs_generate_messages_eus
+
+# clean rule for target.
+CMakeFiles/actionlib_msgs_generate_messages_eus.dir/clean:
+	$(MAKE) -f CMakeFiles/actionlib_msgs_generate_messages_eus.dir/build.make CMakeFiles/actionlib_msgs_generate_messages_eus.dir/clean
+.PHONY : CMakeFiles/actionlib_msgs_generate_messages_eus.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/roscpp_generate_messages_py.dir
+
+# All Build rule for target.
+CMakeFiles/roscpp_generate_messages_py.dir/all:
+	$(MAKE) -f CMakeFiles/roscpp_generate_messages_py.dir/build.make CMakeFiles/roscpp_generate_messages_py.dir/depend
+	$(MAKE) -f CMakeFiles/roscpp_generate_messages_py.dir/build.make CMakeFiles/roscpp_generate_messages_py.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target roscpp_generate_messages_py"
+.PHONY : CMakeFiles/roscpp_generate_messages_py.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/roscpp_generate_messages_py.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/roscpp_generate_messages_py.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/roscpp_generate_messages_py.dir/rule
+
+# Convenience name for target.
+roscpp_generate_messages_py: CMakeFiles/roscpp_generate_messages_py.dir/rule
+
+.PHONY : roscpp_generate_messages_py
+
+# clean rule for target.
+CMakeFiles/roscpp_generate_messages_py.dir/clean:
+	$(MAKE) -f CMakeFiles/roscpp_generate_messages_py.dir/build.make CMakeFiles/roscpp_generate_messages_py.dir/clean
+.PHONY : CMakeFiles/roscpp_generate_messages_py.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir
+
+# All Build rule for target.
+CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/all:
+	$(MAKE) -f CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/build.make CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/depend
+	$(MAKE) -f CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/build.make CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target dynamic_reconfigure_generate_messages_cpp"
+.PHONY : CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/rule
+
+# Convenience name for target.
+dynamic_reconfigure_generate_messages_cpp: CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/rule
+
+.PHONY : dynamic_reconfigure_generate_messages_cpp
+
+# clean rule for target.
+CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/clean:
+	$(MAKE) -f CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/build.make CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/clean
+.PHONY : CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/tf_generate_messages_lisp.dir
+
+# All Build rule for target.
+CMakeFiles/tf_generate_messages_lisp.dir/all:
+	$(MAKE) -f CMakeFiles/tf_generate_messages_lisp.dir/build.make CMakeFiles/tf_generate_messages_lisp.dir/depend
+	$(MAKE) -f CMakeFiles/tf_generate_messages_lisp.dir/build.make CMakeFiles/tf_generate_messages_lisp.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target tf_generate_messages_lisp"
+.PHONY : CMakeFiles/tf_generate_messages_lisp.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/tf_generate_messages_lisp.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/tf_generate_messages_lisp.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/tf_generate_messages_lisp.dir/rule
+
+# Convenience name for target.
+tf_generate_messages_lisp: CMakeFiles/tf_generate_messages_lisp.dir/rule
+
+.PHONY : tf_generate_messages_lisp
+
+# clean rule for target.
+CMakeFiles/tf_generate_messages_lisp.dir/clean:
+	$(MAKE) -f CMakeFiles/tf_generate_messages_lisp.dir/build.make CMakeFiles/tf_generate_messages_lisp.dir/clean
+.PHONY : CMakeFiles/tf_generate_messages_lisp.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/rosgraph_msgs_generate_messages_py.dir
+
+# All Build rule for target.
+CMakeFiles/rosgraph_msgs_generate_messages_py.dir/all:
+	$(MAKE) -f CMakeFiles/rosgraph_msgs_generate_messages_py.dir/build.make CMakeFiles/rosgraph_msgs_generate_messages_py.dir/depend
+	$(MAKE) -f CMakeFiles/rosgraph_msgs_generate_messages_py.dir/build.make CMakeFiles/rosgraph_msgs_generate_messages_py.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target rosgraph_msgs_generate_messages_py"
+.PHONY : CMakeFiles/rosgraph_msgs_generate_messages_py.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/rosgraph_msgs_generate_messages_py.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/rosgraph_msgs_generate_messages_py.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/rosgraph_msgs_generate_messages_py.dir/rule
+
+# Convenience name for target.
+rosgraph_msgs_generate_messages_py: CMakeFiles/rosgraph_msgs_generate_messages_py.dir/rule
+
+.PHONY : rosgraph_msgs_generate_messages_py
+
+# clean rule for target.
+CMakeFiles/rosgraph_msgs_generate_messages_py.dir/clean:
+	$(MAKE) -f CMakeFiles/rosgraph_msgs_generate_messages_py.dir/build.make CMakeFiles/rosgraph_msgs_generate_messages_py.dir/clean
+.PHONY : CMakeFiles/rosgraph_msgs_generate_messages_py.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/download_extra_data.dir
+
+# All Build rule for target.
+CMakeFiles/download_extra_data.dir/all:
+	$(MAKE) -f CMakeFiles/download_extra_data.dir/build.make CMakeFiles/download_extra_data.dir/depend
+	$(MAKE) -f CMakeFiles/download_extra_data.dir/build.make CMakeFiles/download_extra_data.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target download_extra_data"
+.PHONY : CMakeFiles/download_extra_data.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/download_extra_data.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/download_extra_data.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/download_extra_data.dir/rule
+
+# Convenience name for target.
+download_extra_data: CMakeFiles/download_extra_data.dir/rule
+
+.PHONY : download_extra_data
+
+# clean rule for target.
+CMakeFiles/download_extra_data.dir/clean:
+	$(MAKE) -f CMakeFiles/download_extra_data.dir/build.make CMakeFiles/download_extra_data.dir/clean
+.PHONY : CMakeFiles/download_extra_data.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/doxygen.dir
+
+# All Build rule for target.
+CMakeFiles/doxygen.dir/all:
+	$(MAKE) -f CMakeFiles/doxygen.dir/build.make CMakeFiles/doxygen.dir/depend
+	$(MAKE) -f CMakeFiles/doxygen.dir/build.make CMakeFiles/doxygen.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target doxygen"
+.PHONY : CMakeFiles/doxygen.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/doxygen.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/doxygen.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/doxygen.dir/rule
+
+# Convenience name for target.
+doxygen: CMakeFiles/doxygen.dir/rule
+
+.PHONY : doxygen
+
+# clean rule for target.
+CMakeFiles/doxygen.dir/clean:
+	$(MAKE) -f CMakeFiles/doxygen.dir/build.make CMakeFiles/doxygen.dir/clean
+.PHONY : CMakeFiles/doxygen.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/roscpp_generate_messages_lisp.dir
+
+# All Build rule for target.
+CMakeFiles/roscpp_generate_messages_lisp.dir/all:
+	$(MAKE) -f CMakeFiles/roscpp_generate_messages_lisp.dir/build.make CMakeFiles/roscpp_generate_messages_lisp.dir/depend
+	$(MAKE) -f CMakeFiles/roscpp_generate_messages_lisp.dir/build.make CMakeFiles/roscpp_generate_messages_lisp.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target roscpp_generate_messages_lisp"
+.PHONY : CMakeFiles/roscpp_generate_messages_lisp.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/roscpp_generate_messages_lisp.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/roscpp_generate_messages_lisp.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/roscpp_generate_messages_lisp.dir/rule
+
+# Convenience name for target.
+roscpp_generate_messages_lisp: CMakeFiles/roscpp_generate_messages_lisp.dir/rule
+
+.PHONY : roscpp_generate_messages_lisp
+
+# clean rule for target.
+CMakeFiles/roscpp_generate_messages_lisp.dir/clean:
+	$(MAKE) -f CMakeFiles/roscpp_generate_messages_lisp.dir/build.make CMakeFiles/roscpp_generate_messages_lisp.dir/clean
+.PHONY : CMakeFiles/roscpp_generate_messages_lisp.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/_catkin_empty_exported_target.dir
+
+# All Build rule for target.
+CMakeFiles/_catkin_empty_exported_target.dir/all:
+	$(MAKE) -f CMakeFiles/_catkin_empty_exported_target.dir/build.make CMakeFiles/_catkin_empty_exported_target.dir/depend
+	$(MAKE) -f CMakeFiles/_catkin_empty_exported_target.dir/build.make CMakeFiles/_catkin_empty_exported_target.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target _catkin_empty_exported_target"
+.PHONY : CMakeFiles/_catkin_empty_exported_target.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/_catkin_empty_exported_target.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/_catkin_empty_exported_target.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/_catkin_empty_exported_target.dir/rule
+
+# Convenience name for target.
+_catkin_empty_exported_target: CMakeFiles/_catkin_empty_exported_target.dir/rule
+
+.PHONY : _catkin_empty_exported_target
+
+# clean rule for target.
+CMakeFiles/_catkin_empty_exported_target.dir/clean:
+	$(MAKE) -f CMakeFiles/_catkin_empty_exported_target.dir/build.make CMakeFiles/_catkin_empty_exported_target.dir/clean
+.PHONY : CMakeFiles/_catkin_empty_exported_target.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/clean_test_results.dir
+
+# All Build rule for target.
+CMakeFiles/clean_test_results.dir/all:
+	$(MAKE) -f CMakeFiles/clean_test_results.dir/build.make CMakeFiles/clean_test_results.dir/depend
+	$(MAKE) -f CMakeFiles/clean_test_results.dir/build.make CMakeFiles/clean_test_results.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target clean_test_results"
+.PHONY : CMakeFiles/clean_test_results.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/clean_test_results.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/clean_test_results.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/clean_test_results.dir/rule
+
+# Convenience name for target.
+clean_test_results: CMakeFiles/clean_test_results.dir/rule
+
+.PHONY : clean_test_results
+
+# clean rule for target.
+CMakeFiles/clean_test_results.dir/clean:
+	$(MAKE) -f CMakeFiles/clean_test_results.dir/build.make CMakeFiles/clean_test_results.dir/clean
+.PHONY : CMakeFiles/clean_test_results.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/actionlib_generate_messages_lisp.dir
+
+# All Build rule for target.
+CMakeFiles/actionlib_generate_messages_lisp.dir/all:
+	$(MAKE) -f CMakeFiles/actionlib_generate_messages_lisp.dir/build.make CMakeFiles/actionlib_generate_messages_lisp.dir/depend
+	$(MAKE) -f CMakeFiles/actionlib_generate_messages_lisp.dir/build.make CMakeFiles/actionlib_generate_messages_lisp.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target actionlib_generate_messages_lisp"
+.PHONY : CMakeFiles/actionlib_generate_messages_lisp.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/actionlib_generate_messages_lisp.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/actionlib_generate_messages_lisp.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/actionlib_generate_messages_lisp.dir/rule
+
+# Convenience name for target.
+actionlib_generate_messages_lisp: CMakeFiles/actionlib_generate_messages_lisp.dir/rule
+
+.PHONY : actionlib_generate_messages_lisp
+
+# clean rule for target.
+CMakeFiles/actionlib_generate_messages_lisp.dir/clean:
+	$(MAKE) -f CMakeFiles/actionlib_generate_messages_lisp.dir/build.make CMakeFiles/actionlib_generate_messages_lisp.dir/clean
+.PHONY : CMakeFiles/actionlib_generate_messages_lisp.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/roscpp_generate_messages_eus.dir
+
+# All Build rule for target.
+CMakeFiles/roscpp_generate_messages_eus.dir/all:
+	$(MAKE) -f CMakeFiles/roscpp_generate_messages_eus.dir/build.make CMakeFiles/roscpp_generate_messages_eus.dir/depend
+	$(MAKE) -f CMakeFiles/roscpp_generate_messages_eus.dir/build.make CMakeFiles/roscpp_generate_messages_eus.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target roscpp_generate_messages_eus"
+.PHONY : CMakeFiles/roscpp_generate_messages_eus.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/roscpp_generate_messages_eus.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/roscpp_generate_messages_eus.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/roscpp_generate_messages_eus.dir/rule
+
+# Convenience name for target.
+roscpp_generate_messages_eus: CMakeFiles/roscpp_generate_messages_eus.dir/rule
+
+.PHONY : roscpp_generate_messages_eus
+
+# clean rule for target.
+CMakeFiles/roscpp_generate_messages_eus.dir/clean:
+	$(MAKE) -f CMakeFiles/roscpp_generate_messages_eus.dir/build.make CMakeFiles/roscpp_generate_messages_eus.dir/clean
+.PHONY : CMakeFiles/roscpp_generate_messages_eus.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/tests.dir
+
+# All Build rule for target.
+CMakeFiles/tests.dir/all:
+	$(MAKE) -f CMakeFiles/tests.dir/build.make CMakeFiles/tests.dir/depend
+	$(MAKE) -f CMakeFiles/tests.dir/build.make CMakeFiles/tests.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target tests"
+.PHONY : CMakeFiles/tests.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/tests.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/tests.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/tests.dir/rule
+
+# Convenience name for target.
+tests: CMakeFiles/tests.dir/rule
+
+.PHONY : tests
+
+# clean rule for target.
+CMakeFiles/tests.dir/clean:
+	$(MAKE) -f CMakeFiles/tests.dir/build.make CMakeFiles/tests.dir/clean
+.PHONY : CMakeFiles/tests.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/rosgraph_msgs_generate_messages_eus.dir
+
+# All Build rule for target.
+CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/all:
+	$(MAKE) -f CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/build.make CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/depend
+	$(MAKE) -f CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/build.make CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target rosgraph_msgs_generate_messages_eus"
+.PHONY : CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/rule
+
+# Convenience name for target.
+rosgraph_msgs_generate_messages_eus: CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/rule
+
+.PHONY : rosgraph_msgs_generate_messages_eus
+
+# clean rule for target.
+CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/clean:
+	$(MAKE) -f CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/build.make CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/clean
+.PHONY : CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/roscpp_generate_messages_cpp.dir
+
+# All Build rule for target.
+CMakeFiles/roscpp_generate_messages_cpp.dir/all:
+	$(MAKE) -f CMakeFiles/roscpp_generate_messages_cpp.dir/build.make CMakeFiles/roscpp_generate_messages_cpp.dir/depend
+	$(MAKE) -f CMakeFiles/roscpp_generate_messages_cpp.dir/build.make CMakeFiles/roscpp_generate_messages_cpp.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target roscpp_generate_messages_cpp"
+.PHONY : CMakeFiles/roscpp_generate_messages_cpp.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/roscpp_generate_messages_cpp.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/roscpp_generate_messages_cpp.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/roscpp_generate_messages_cpp.dir/rule
+
+# Convenience name for target.
+roscpp_generate_messages_cpp: CMakeFiles/roscpp_generate_messages_cpp.dir/rule
+
+.PHONY : roscpp_generate_messages_cpp
+
+# clean rule for target.
+CMakeFiles/roscpp_generate_messages_cpp.dir/clean:
+	$(MAKE) -f CMakeFiles/roscpp_generate_messages_cpp.dir/build.make CMakeFiles/roscpp_generate_messages_cpp.dir/clean
+.PHONY : CMakeFiles/roscpp_generate_messages_cpp.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/std_msgs_generate_messages_cpp.dir
+
+# All Build rule for target.
+CMakeFiles/std_msgs_generate_messages_cpp.dir/all:
+	$(MAKE) -f CMakeFiles/std_msgs_generate_messages_cpp.dir/build.make CMakeFiles/std_msgs_generate_messages_cpp.dir/depend
+	$(MAKE) -f CMakeFiles/std_msgs_generate_messages_cpp.dir/build.make CMakeFiles/std_msgs_generate_messages_cpp.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target std_msgs_generate_messages_cpp"
+.PHONY : CMakeFiles/std_msgs_generate_messages_cpp.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/std_msgs_generate_messages_cpp.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/std_msgs_generate_messages_cpp.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/std_msgs_generate_messages_cpp.dir/rule
+
+# Convenience name for target.
+std_msgs_generate_messages_cpp: CMakeFiles/std_msgs_generate_messages_cpp.dir/rule
+
+.PHONY : std_msgs_generate_messages_cpp
+
+# clean rule for target.
+CMakeFiles/std_msgs_generate_messages_cpp.dir/clean:
+	$(MAKE) -f CMakeFiles/std_msgs_generate_messages_cpp.dir/build.make CMakeFiles/std_msgs_generate_messages_cpp.dir/clean
+.PHONY : CMakeFiles/std_msgs_generate_messages_cpp.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir
+
+# All Build rule for target.
+CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/all:
+	$(MAKE) -f CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/build.make CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/depend
+	$(MAKE) -f CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/build.make CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target rosgraph_msgs_generate_messages_lisp"
+.PHONY : CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/rule
+
+# Convenience name for target.
+rosgraph_msgs_generate_messages_lisp: CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/rule
+
+.PHONY : rosgraph_msgs_generate_messages_lisp
+
+# clean rule for target.
+CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/clean:
+	$(MAKE) -f CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/build.make CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/clean
+.PHONY : CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/tf_generate_messages_eus.dir
+
+# All Build rule for target.
+CMakeFiles/tf_generate_messages_eus.dir/all:
+	$(MAKE) -f CMakeFiles/tf_generate_messages_eus.dir/build.make CMakeFiles/tf_generate_messages_eus.dir/depend
+	$(MAKE) -f CMakeFiles/tf_generate_messages_eus.dir/build.make CMakeFiles/tf_generate_messages_eus.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target tf_generate_messages_eus"
+.PHONY : CMakeFiles/tf_generate_messages_eus.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/tf_generate_messages_eus.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/tf_generate_messages_eus.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/tf_generate_messages_eus.dir/rule
+
+# Convenience name for target.
+tf_generate_messages_eus: CMakeFiles/tf_generate_messages_eus.dir/rule
+
+.PHONY : tf_generate_messages_eus
+
+# clean rule for target.
+CMakeFiles/tf_generate_messages_eus.dir/clean:
+	$(MAKE) -f CMakeFiles/tf_generate_messages_eus.dir/build.make CMakeFiles/tf_generate_messages_eus.dir/clean
+.PHONY : CMakeFiles/tf_generate_messages_eus.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir
+
+# All Build rule for target.
+CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/all:
+	$(MAKE) -f CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/build.make CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/depend
+	$(MAKE) -f CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/build.make CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target dynamic_reconfigure_generate_messages_lisp"
+.PHONY : CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/rule
+
+# Convenience name for target.
+dynamic_reconfigure_generate_messages_lisp: CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/rule
+
+.PHONY : dynamic_reconfigure_generate_messages_lisp
+
+# clean rule for target.
+CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/clean:
+	$(MAKE) -f CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/build.make CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/clean
+.PHONY : CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/tf2_msgs_generate_messages_cpp.dir
+
+# All Build rule for target.
+CMakeFiles/tf2_msgs_generate_messages_cpp.dir/all:
+	$(MAKE) -f CMakeFiles/tf2_msgs_generate_messages_cpp.dir/build.make CMakeFiles/tf2_msgs_generate_messages_cpp.dir/depend
+	$(MAKE) -f CMakeFiles/tf2_msgs_generate_messages_cpp.dir/build.make CMakeFiles/tf2_msgs_generate_messages_cpp.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target tf2_msgs_generate_messages_cpp"
+.PHONY : CMakeFiles/tf2_msgs_generate_messages_cpp.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/tf2_msgs_generate_messages_cpp.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/tf2_msgs_generate_messages_cpp.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/tf2_msgs_generate_messages_cpp.dir/rule
+
+# Convenience name for target.
+tf2_msgs_generate_messages_cpp: CMakeFiles/tf2_msgs_generate_messages_cpp.dir/rule
+
+.PHONY : tf2_msgs_generate_messages_cpp
+
+# clean rule for target.
+CMakeFiles/tf2_msgs_generate_messages_cpp.dir/clean:
+	$(MAKE) -f CMakeFiles/tf2_msgs_generate_messages_cpp.dir/build.make CMakeFiles/tf2_msgs_generate_messages_cpp.dir/clean
+.PHONY : CMakeFiles/tf2_msgs_generate_messages_cpp.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/roscpp_generate_messages_nodejs.dir
+
+# All Build rule for target.
+CMakeFiles/roscpp_generate_messages_nodejs.dir/all:
+	$(MAKE) -f CMakeFiles/roscpp_generate_messages_nodejs.dir/build.make CMakeFiles/roscpp_generate_messages_nodejs.dir/depend
+	$(MAKE) -f CMakeFiles/roscpp_generate_messages_nodejs.dir/build.make CMakeFiles/roscpp_generate_messages_nodejs.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target roscpp_generate_messages_nodejs"
+.PHONY : CMakeFiles/roscpp_generate_messages_nodejs.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/roscpp_generate_messages_nodejs.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/roscpp_generate_messages_nodejs.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/roscpp_generate_messages_nodejs.dir/rule
+
+# Convenience name for target.
+roscpp_generate_messages_nodejs: CMakeFiles/roscpp_generate_messages_nodejs.dir/rule
+
+.PHONY : roscpp_generate_messages_nodejs
+
+# clean rule for target.
+CMakeFiles/roscpp_generate_messages_nodejs.dir/clean:
+	$(MAKE) -f CMakeFiles/roscpp_generate_messages_nodejs.dir/build.make CMakeFiles/roscpp_generate_messages_nodejs.dir/clean
+.PHONY : CMakeFiles/roscpp_generate_messages_nodejs.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/mav_nonlinear_mpc_package.dir
+
+# All Build rule for target.
+CMakeFiles/mav_nonlinear_mpc_package.dir/all: CMakeFiles/nonlinear_mpc_node.dir/all
+CMakeFiles/mav_nonlinear_mpc_package.dir/all: CMakeFiles/mav_nonlinear_mpc_lib.dir/all
+	$(MAKE) -f CMakeFiles/mav_nonlinear_mpc_package.dir/build.make CMakeFiles/mav_nonlinear_mpc_package.dir/depend
+	$(MAKE) -f CMakeFiles/mav_nonlinear_mpc_package.dir/build.make CMakeFiles/mav_nonlinear_mpc_package.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target mav_nonlinear_mpc_package"
+.PHONY : CMakeFiles/mav_nonlinear_mpc_package.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/mav_nonlinear_mpc_package.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 19
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/mav_nonlinear_mpc_package.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/mav_nonlinear_mpc_package.dir/rule
+
+# Convenience name for target.
+mav_nonlinear_mpc_package: CMakeFiles/mav_nonlinear_mpc_package.dir/rule
+
+.PHONY : mav_nonlinear_mpc_package
+
+# clean rule for target.
+CMakeFiles/mav_nonlinear_mpc_package.dir/clean:
+	$(MAKE) -f CMakeFiles/mav_nonlinear_mpc_package.dir/build.make CMakeFiles/mav_nonlinear_mpc_package.dir/clean
+.PHONY : CMakeFiles/mav_nonlinear_mpc_package.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/run_tests.dir
+
+# All Build rule for target.
+CMakeFiles/run_tests.dir/all:
+	$(MAKE) -f CMakeFiles/run_tests.dir/build.make CMakeFiles/run_tests.dir/depend
+	$(MAKE) -f CMakeFiles/run_tests.dir/build.make CMakeFiles/run_tests.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target run_tests"
+.PHONY : CMakeFiles/run_tests.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/run_tests.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/run_tests.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/run_tests.dir/rule
+
+# Convenience name for target.
+run_tests: CMakeFiles/run_tests.dir/rule
+
+.PHONY : run_tests
+
+# clean rule for target.
+CMakeFiles/run_tests.dir/clean:
+	$(MAKE) -f CMakeFiles/run_tests.dir/build.make CMakeFiles/run_tests.dir/clean
+.PHONY : CMakeFiles/run_tests.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/std_msgs_generate_messages_nodejs.dir
+
+# All Build rule for target.
+CMakeFiles/std_msgs_generate_messages_nodejs.dir/all:
+	$(MAKE) -f CMakeFiles/std_msgs_generate_messages_nodejs.dir/build.make CMakeFiles/std_msgs_generate_messages_nodejs.dir/depend
+	$(MAKE) -f CMakeFiles/std_msgs_generate_messages_nodejs.dir/build.make CMakeFiles/std_msgs_generate_messages_nodejs.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target std_msgs_generate_messages_nodejs"
+.PHONY : CMakeFiles/std_msgs_generate_messages_nodejs.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/std_msgs_generate_messages_nodejs.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/std_msgs_generate_messages_nodejs.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/std_msgs_generate_messages_nodejs.dir/rule
+
+# Convenience name for target.
+std_msgs_generate_messages_nodejs: CMakeFiles/std_msgs_generate_messages_nodejs.dir/rule
+
+.PHONY : std_msgs_generate_messages_nodejs
+
+# clean rule for target.
+CMakeFiles/std_msgs_generate_messages_nodejs.dir/clean:
+	$(MAKE) -f CMakeFiles/std_msgs_generate_messages_nodejs.dir/build.make CMakeFiles/std_msgs_generate_messages_nodejs.dir/clean
+.PHONY : CMakeFiles/std_msgs_generate_messages_nodejs.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/geometry_msgs_generate_messages_eus.dir
+
+# All Build rule for target.
+CMakeFiles/geometry_msgs_generate_messages_eus.dir/all:
+	$(MAKE) -f CMakeFiles/geometry_msgs_generate_messages_eus.dir/build.make CMakeFiles/geometry_msgs_generate_messages_eus.dir/depend
+	$(MAKE) -f CMakeFiles/geometry_msgs_generate_messages_eus.dir/build.make CMakeFiles/geometry_msgs_generate_messages_eus.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target geometry_msgs_generate_messages_eus"
+.PHONY : CMakeFiles/geometry_msgs_generate_messages_eus.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/geometry_msgs_generate_messages_eus.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/geometry_msgs_generate_messages_eus.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/geometry_msgs_generate_messages_eus.dir/rule
+
+# Convenience name for target.
+geometry_msgs_generate_messages_eus: CMakeFiles/geometry_msgs_generate_messages_eus.dir/rule
+
+.PHONY : geometry_msgs_generate_messages_eus
+
+# clean rule for target.
+CMakeFiles/geometry_msgs_generate_messages_eus.dir/clean:
+	$(MAKE) -f CMakeFiles/geometry_msgs_generate_messages_eus.dir/build.make CMakeFiles/geometry_msgs_generate_messages_eus.dir/clean
+.PHONY : CMakeFiles/geometry_msgs_generate_messages_eus.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/std_msgs_generate_messages_py.dir
+
+# All Build rule for target.
+CMakeFiles/std_msgs_generate_messages_py.dir/all:
+	$(MAKE) -f CMakeFiles/std_msgs_generate_messages_py.dir/build.make CMakeFiles/std_msgs_generate_messages_py.dir/depend
+	$(MAKE) -f CMakeFiles/std_msgs_generate_messages_py.dir/build.make CMakeFiles/std_msgs_generate_messages_py.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target std_msgs_generate_messages_py"
+.PHONY : CMakeFiles/std_msgs_generate_messages_py.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/std_msgs_generate_messages_py.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/std_msgs_generate_messages_py.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/std_msgs_generate_messages_py.dir/rule
+
+# Convenience name for target.
+std_msgs_generate_messages_py: CMakeFiles/std_msgs_generate_messages_py.dir/rule
+
+.PHONY : std_msgs_generate_messages_py
+
+# clean rule for target.
+CMakeFiles/std_msgs_generate_messages_py.dir/clean:
+	$(MAKE) -f CMakeFiles/std_msgs_generate_messages_py.dir/build.make CMakeFiles/std_msgs_generate_messages_py.dir/clean
+.PHONY : CMakeFiles/std_msgs_generate_messages_py.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/tf_generate_messages_nodejs.dir
+
+# All Build rule for target.
+CMakeFiles/tf_generate_messages_nodejs.dir/all:
+	$(MAKE) -f CMakeFiles/tf_generate_messages_nodejs.dir/build.make CMakeFiles/tf_generate_messages_nodejs.dir/depend
+	$(MAKE) -f CMakeFiles/tf_generate_messages_nodejs.dir/build.make CMakeFiles/tf_generate_messages_nodejs.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target tf_generate_messages_nodejs"
+.PHONY : CMakeFiles/tf_generate_messages_nodejs.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/tf_generate_messages_nodejs.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/tf_generate_messages_nodejs.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/tf_generate_messages_nodejs.dir/rule
+
+# Convenience name for target.
+tf_generate_messages_nodejs: CMakeFiles/tf_generate_messages_nodejs.dir/rule
+
+.PHONY : tf_generate_messages_nodejs
+
+# clean rule for target.
+CMakeFiles/tf_generate_messages_nodejs.dir/clean:
+	$(MAKE) -f CMakeFiles/tf_generate_messages_nodejs.dir/build.make CMakeFiles/tf_generate_messages_nodejs.dir/clean
+.PHONY : CMakeFiles/tf_generate_messages_nodejs.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/geometry_msgs_generate_messages_cpp.dir
+
+# All Build rule for target.
+CMakeFiles/geometry_msgs_generate_messages_cpp.dir/all:
+	$(MAKE) -f CMakeFiles/geometry_msgs_generate_messages_cpp.dir/build.make CMakeFiles/geometry_msgs_generate_messages_cpp.dir/depend
+	$(MAKE) -f CMakeFiles/geometry_msgs_generate_messages_cpp.dir/build.make CMakeFiles/geometry_msgs_generate_messages_cpp.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target geometry_msgs_generate_messages_cpp"
+.PHONY : CMakeFiles/geometry_msgs_generate_messages_cpp.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/geometry_msgs_generate_messages_cpp.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/geometry_msgs_generate_messages_cpp.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/geometry_msgs_generate_messages_cpp.dir/rule
+
+# Convenience name for target.
+geometry_msgs_generate_messages_cpp: CMakeFiles/geometry_msgs_generate_messages_cpp.dir/rule
+
+.PHONY : geometry_msgs_generate_messages_cpp
+
+# clean rule for target.
+CMakeFiles/geometry_msgs_generate_messages_cpp.dir/clean:
+	$(MAKE) -f CMakeFiles/geometry_msgs_generate_messages_cpp.dir/build.make CMakeFiles/geometry_msgs_generate_messages_cpp.dir/clean
+.PHONY : CMakeFiles/geometry_msgs_generate_messages_cpp.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir
+
+# All Build rule for target.
+CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/all:
+	$(MAKE) -f CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/build.make CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/depend
+	$(MAKE) -f CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/build.make CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target dynamic_reconfigure_generate_messages_nodejs"
+.PHONY : CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/rule
+
+# Convenience name for target.
+dynamic_reconfigure_generate_messages_nodejs: CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/rule
+
+.PHONY : dynamic_reconfigure_generate_messages_nodejs
+
+# clean rule for target.
+CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/clean:
+	$(MAKE) -f CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/build.make CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/clean
+.PHONY : CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/tf2_msgs_generate_messages_py.dir
+
+# All Build rule for target.
+CMakeFiles/tf2_msgs_generate_messages_py.dir/all:
+	$(MAKE) -f CMakeFiles/tf2_msgs_generate_messages_py.dir/build.make CMakeFiles/tf2_msgs_generate_messages_py.dir/depend
+	$(MAKE) -f CMakeFiles/tf2_msgs_generate_messages_py.dir/build.make CMakeFiles/tf2_msgs_generate_messages_py.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target tf2_msgs_generate_messages_py"
+.PHONY : CMakeFiles/tf2_msgs_generate_messages_py.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/tf2_msgs_generate_messages_py.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/tf2_msgs_generate_messages_py.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/tf2_msgs_generate_messages_py.dir/rule
+
+# Convenience name for target.
+tf2_msgs_generate_messages_py: CMakeFiles/tf2_msgs_generate_messages_py.dir/rule
+
+.PHONY : tf2_msgs_generate_messages_py
+
+# clean rule for target.
+CMakeFiles/tf2_msgs_generate_messages_py.dir/clean:
+	$(MAKE) -f CMakeFiles/tf2_msgs_generate_messages_py.dir/build.make CMakeFiles/tf2_msgs_generate_messages_py.dir/clean
+.PHONY : CMakeFiles/tf2_msgs_generate_messages_py.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir
+
+# All Build rule for target.
+CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/all:
+	$(MAKE) -f CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/build.make CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/depend
+	$(MAKE) -f CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/build.make CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target dynamic_reconfigure_generate_messages_eus"
+.PHONY : CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/rule
+
+# Convenience name for target.
+dynamic_reconfigure_generate_messages_eus: CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/rule
+
+.PHONY : dynamic_reconfigure_generate_messages_eus
+
+# clean rule for target.
+CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/clean:
+	$(MAKE) -f CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/build.make CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/clean
+.PHONY : CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/geometry_msgs_generate_messages_nodejs.dir
+
+# All Build rule for target.
+CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/all:
+	$(MAKE) -f CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/build.make CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/depend
+	$(MAKE) -f CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/build.make CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target geometry_msgs_generate_messages_nodejs"
+.PHONY : CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/rule
+
+# Convenience name for target.
+geometry_msgs_generate_messages_nodejs: CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/rule
+
+.PHONY : geometry_msgs_generate_messages_nodejs
+
+# clean rule for target.
+CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/clean:
+	$(MAKE) -f CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/build.make CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/clean
+.PHONY : CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/geometry_msgs_generate_messages_py.dir
+
+# All Build rule for target.
+CMakeFiles/geometry_msgs_generate_messages_py.dir/all:
+	$(MAKE) -f CMakeFiles/geometry_msgs_generate_messages_py.dir/build.make CMakeFiles/geometry_msgs_generate_messages_py.dir/depend
+	$(MAKE) -f CMakeFiles/geometry_msgs_generate_messages_py.dir/build.make CMakeFiles/geometry_msgs_generate_messages_py.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target geometry_msgs_generate_messages_py"
+.PHONY : CMakeFiles/geometry_msgs_generate_messages_py.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/geometry_msgs_generate_messages_py.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/geometry_msgs_generate_messages_py.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/geometry_msgs_generate_messages_py.dir/rule
+
+# Convenience name for target.
+geometry_msgs_generate_messages_py: CMakeFiles/geometry_msgs_generate_messages_py.dir/rule
+
+.PHONY : geometry_msgs_generate_messages_py
+
+# clean rule for target.
+CMakeFiles/geometry_msgs_generate_messages_py.dir/clean:
+	$(MAKE) -f CMakeFiles/geometry_msgs_generate_messages_py.dir/build.make CMakeFiles/geometry_msgs_generate_messages_py.dir/clean
+.PHONY : CMakeFiles/geometry_msgs_generate_messages_py.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/tf2_msgs_generate_messages_eus.dir
+
+# All Build rule for target.
+CMakeFiles/tf2_msgs_generate_messages_eus.dir/all:
+	$(MAKE) -f CMakeFiles/tf2_msgs_generate_messages_eus.dir/build.make CMakeFiles/tf2_msgs_generate_messages_eus.dir/depend
+	$(MAKE) -f CMakeFiles/tf2_msgs_generate_messages_eus.dir/build.make CMakeFiles/tf2_msgs_generate_messages_eus.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target tf2_msgs_generate_messages_eus"
+.PHONY : CMakeFiles/tf2_msgs_generate_messages_eus.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/tf2_msgs_generate_messages_eus.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/tf2_msgs_generate_messages_eus.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/tf2_msgs_generate_messages_eus.dir/rule
+
+# Convenience name for target.
+tf2_msgs_generate_messages_eus: CMakeFiles/tf2_msgs_generate_messages_eus.dir/rule
+
+.PHONY : tf2_msgs_generate_messages_eus
+
+# clean rule for target.
+CMakeFiles/tf2_msgs_generate_messages_eus.dir/clean:
+	$(MAKE) -f CMakeFiles/tf2_msgs_generate_messages_eus.dir/build.make CMakeFiles/tf2_msgs_generate_messages_eus.dir/clean
+.PHONY : CMakeFiles/tf2_msgs_generate_messages_eus.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/sensor_msgs_generate_messages_py.dir
+
+# All Build rule for target.
+CMakeFiles/sensor_msgs_generate_messages_py.dir/all:
+	$(MAKE) -f CMakeFiles/sensor_msgs_generate_messages_py.dir/build.make CMakeFiles/sensor_msgs_generate_messages_py.dir/depend
+	$(MAKE) -f CMakeFiles/sensor_msgs_generate_messages_py.dir/build.make CMakeFiles/sensor_msgs_generate_messages_py.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target sensor_msgs_generate_messages_py"
+.PHONY : CMakeFiles/sensor_msgs_generate_messages_py.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/sensor_msgs_generate_messages_py.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/sensor_msgs_generate_messages_py.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/sensor_msgs_generate_messages_py.dir/rule
+
+# Convenience name for target.
+sensor_msgs_generate_messages_py: CMakeFiles/sensor_msgs_generate_messages_py.dir/rule
+
+.PHONY : sensor_msgs_generate_messages_py
+
+# clean rule for target.
+CMakeFiles/sensor_msgs_generate_messages_py.dir/clean:
+	$(MAKE) -f CMakeFiles/sensor_msgs_generate_messages_py.dir/build.make CMakeFiles/sensor_msgs_generate_messages_py.dir/clean
+.PHONY : CMakeFiles/sensor_msgs_generate_messages_py.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/sensor_msgs_generate_messages_eus.dir
+
+# All Build rule for target.
+CMakeFiles/sensor_msgs_generate_messages_eus.dir/all:
+	$(MAKE) -f CMakeFiles/sensor_msgs_generate_messages_eus.dir/build.make CMakeFiles/sensor_msgs_generate_messages_eus.dir/depend
+	$(MAKE) -f CMakeFiles/sensor_msgs_generate_messages_eus.dir/build.make CMakeFiles/sensor_msgs_generate_messages_eus.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target sensor_msgs_generate_messages_eus"
+.PHONY : CMakeFiles/sensor_msgs_generate_messages_eus.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/sensor_msgs_generate_messages_eus.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/sensor_msgs_generate_messages_eus.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/sensor_msgs_generate_messages_eus.dir/rule
+
+# Convenience name for target.
+sensor_msgs_generate_messages_eus: CMakeFiles/sensor_msgs_generate_messages_eus.dir/rule
+
+.PHONY : sensor_msgs_generate_messages_eus
+
+# clean rule for target.
+CMakeFiles/sensor_msgs_generate_messages_eus.dir/clean:
+	$(MAKE) -f CMakeFiles/sensor_msgs_generate_messages_eus.dir/build.make CMakeFiles/sensor_msgs_generate_messages_eus.dir/clean
+.PHONY : CMakeFiles/sensor_msgs_generate_messages_eus.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/sensor_msgs_generate_messages_lisp.dir
+
+# All Build rule for target.
+CMakeFiles/sensor_msgs_generate_messages_lisp.dir/all:
+	$(MAKE) -f CMakeFiles/sensor_msgs_generate_messages_lisp.dir/build.make CMakeFiles/sensor_msgs_generate_messages_lisp.dir/depend
+	$(MAKE) -f CMakeFiles/sensor_msgs_generate_messages_lisp.dir/build.make CMakeFiles/sensor_msgs_generate_messages_lisp.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target sensor_msgs_generate_messages_lisp"
+.PHONY : CMakeFiles/sensor_msgs_generate_messages_lisp.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/sensor_msgs_generate_messages_lisp.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/sensor_msgs_generate_messages_lisp.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/sensor_msgs_generate_messages_lisp.dir/rule
+
+# Convenience name for target.
+sensor_msgs_generate_messages_lisp: CMakeFiles/sensor_msgs_generate_messages_lisp.dir/rule
+
+.PHONY : sensor_msgs_generate_messages_lisp
+
+# clean rule for target.
+CMakeFiles/sensor_msgs_generate_messages_lisp.dir/clean:
+	$(MAKE) -f CMakeFiles/sensor_msgs_generate_messages_lisp.dir/build.make CMakeFiles/sensor_msgs_generate_messages_lisp.dir/clean
+.PHONY : CMakeFiles/sensor_msgs_generate_messages_lisp.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/sensor_msgs_generate_messages_nodejs.dir
+
+# All Build rule for target.
+CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/all:
+	$(MAKE) -f CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/build.make CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/depend
+	$(MAKE) -f CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/build.make CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target sensor_msgs_generate_messages_nodejs"
+.PHONY : CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/rule
+
+# Convenience name for target.
+sensor_msgs_generate_messages_nodejs: CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/rule
+
+.PHONY : sensor_msgs_generate_messages_nodejs
+
+# clean rule for target.
+CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/clean:
+	$(MAKE) -f CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/build.make CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/clean
+.PHONY : CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir
+
+# All Build rule for target.
+CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/all:
+	$(MAKE) -f CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/build.make CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/depend
+	$(MAKE) -f CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/build.make CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target rosgraph_msgs_generate_messages_cpp"
+.PHONY : CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/rule
+
+# Convenience name for target.
+rosgraph_msgs_generate_messages_cpp: CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/rule
+
+.PHONY : rosgraph_msgs_generate_messages_cpp
+
+# clean rule for target.
+CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/clean:
+	$(MAKE) -f CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/build.make CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/clean
+.PHONY : CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/actionlib_generate_messages_eus.dir
+
+# All Build rule for target.
+CMakeFiles/actionlib_generate_messages_eus.dir/all:
+	$(MAKE) -f CMakeFiles/actionlib_generate_messages_eus.dir/build.make CMakeFiles/actionlib_generate_messages_eus.dir/depend
+	$(MAKE) -f CMakeFiles/actionlib_generate_messages_eus.dir/build.make CMakeFiles/actionlib_generate_messages_eus.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target actionlib_generate_messages_eus"
+.PHONY : CMakeFiles/actionlib_generate_messages_eus.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/actionlib_generate_messages_eus.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/actionlib_generate_messages_eus.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/actionlib_generate_messages_eus.dir/rule
+
+# Convenience name for target.
+actionlib_generate_messages_eus: CMakeFiles/actionlib_generate_messages_eus.dir/rule
+
+.PHONY : actionlib_generate_messages_eus
+
+# clean rule for target.
+CMakeFiles/actionlib_generate_messages_eus.dir/clean:
+	$(MAKE) -f CMakeFiles/actionlib_generate_messages_eus.dir/build.make CMakeFiles/actionlib_generate_messages_eus.dir/clean
+.PHONY : CMakeFiles/actionlib_generate_messages_eus.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/actionlib_msgs_generate_messages_cpp.dir
+
+# All Build rule for target.
+CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/all:
+	$(MAKE) -f CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/build.make CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/depend
+	$(MAKE) -f CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/build.make CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target actionlib_msgs_generate_messages_cpp"
+.PHONY : CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/rule
+
+# Convenience name for target.
+actionlib_msgs_generate_messages_cpp: CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/rule
+
+.PHONY : actionlib_msgs_generate_messages_cpp
+
+# clean rule for target.
+CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/clean:
+	$(MAKE) -f CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/build.make CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/clean
+.PHONY : CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/actionlib_generate_messages_nodejs.dir
+
+# All Build rule for target.
+CMakeFiles/actionlib_generate_messages_nodejs.dir/all:
+	$(MAKE) -f CMakeFiles/actionlib_generate_messages_nodejs.dir/build.make CMakeFiles/actionlib_generate_messages_nodejs.dir/depend
+	$(MAKE) -f CMakeFiles/actionlib_generate_messages_nodejs.dir/build.make CMakeFiles/actionlib_generate_messages_nodejs.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target actionlib_generate_messages_nodejs"
+.PHONY : CMakeFiles/actionlib_generate_messages_nodejs.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/actionlib_generate_messages_nodejs.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/actionlib_generate_messages_nodejs.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/actionlib_generate_messages_nodejs.dir/rule
+
+# Convenience name for target.
+actionlib_generate_messages_nodejs: CMakeFiles/actionlib_generate_messages_nodejs.dir/rule
+
+.PHONY : actionlib_generate_messages_nodejs
+
+# clean rule for target.
+CMakeFiles/actionlib_generate_messages_nodejs.dir/clean:
+	$(MAKE) -f CMakeFiles/actionlib_generate_messages_nodejs.dir/build.make CMakeFiles/actionlib_generate_messages_nodejs.dir/clean
+.PHONY : CMakeFiles/actionlib_generate_messages_nodejs.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/actionlib_generate_messages_py.dir
+
+# All Build rule for target.
+CMakeFiles/actionlib_generate_messages_py.dir/all:
+	$(MAKE) -f CMakeFiles/actionlib_generate_messages_py.dir/build.make CMakeFiles/actionlib_generate_messages_py.dir/depend
+	$(MAKE) -f CMakeFiles/actionlib_generate_messages_py.dir/build.make CMakeFiles/actionlib_generate_messages_py.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target actionlib_generate_messages_py"
+.PHONY : CMakeFiles/actionlib_generate_messages_py.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/actionlib_generate_messages_py.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/actionlib_generate_messages_py.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/actionlib_generate_messages_py.dir/rule
+
+# Convenience name for target.
+actionlib_generate_messages_py: CMakeFiles/actionlib_generate_messages_py.dir/rule
+
+.PHONY : actionlib_generate_messages_py
+
+# clean rule for target.
+CMakeFiles/actionlib_generate_messages_py.dir/clean:
+	$(MAKE) -f CMakeFiles/actionlib_generate_messages_py.dir/build.make CMakeFiles/actionlib_generate_messages_py.dir/clean
+.PHONY : CMakeFiles/actionlib_generate_messages_py.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/tf_generate_messages_py.dir
+
+# All Build rule for target.
+CMakeFiles/tf_generate_messages_py.dir/all:
+	$(MAKE) -f CMakeFiles/tf_generate_messages_py.dir/build.make CMakeFiles/tf_generate_messages_py.dir/depend
+	$(MAKE) -f CMakeFiles/tf_generate_messages_py.dir/build.make CMakeFiles/tf_generate_messages_py.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target tf_generate_messages_py"
+.PHONY : CMakeFiles/tf_generate_messages_py.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/tf_generate_messages_py.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/tf_generate_messages_py.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/tf_generate_messages_py.dir/rule
+
+# Convenience name for target.
+tf_generate_messages_py: CMakeFiles/tf_generate_messages_py.dir/rule
+
+.PHONY : tf_generate_messages_py
+
+# clean rule for target.
+CMakeFiles/tf_generate_messages_py.dir/clean:
+	$(MAKE) -f CMakeFiles/tf_generate_messages_py.dir/build.make CMakeFiles/tf_generate_messages_py.dir/clean
+.PHONY : CMakeFiles/tf_generate_messages_py.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/std_msgs_generate_messages_eus.dir
+
+# All Build rule for target.
+CMakeFiles/std_msgs_generate_messages_eus.dir/all:
+	$(MAKE) -f CMakeFiles/std_msgs_generate_messages_eus.dir/build.make CMakeFiles/std_msgs_generate_messages_eus.dir/depend
+	$(MAKE) -f CMakeFiles/std_msgs_generate_messages_eus.dir/build.make CMakeFiles/std_msgs_generate_messages_eus.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target std_msgs_generate_messages_eus"
+.PHONY : CMakeFiles/std_msgs_generate_messages_eus.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/std_msgs_generate_messages_eus.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/std_msgs_generate_messages_eus.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/std_msgs_generate_messages_eus.dir/rule
+
+# Convenience name for target.
+std_msgs_generate_messages_eus: CMakeFiles/std_msgs_generate_messages_eus.dir/rule
+
+.PHONY : std_msgs_generate_messages_eus
+
+# clean rule for target.
+CMakeFiles/std_msgs_generate_messages_eus.dir/clean:
+	$(MAKE) -f CMakeFiles/std_msgs_generate_messages_eus.dir/build.make CMakeFiles/std_msgs_generate_messages_eus.dir/clean
+.PHONY : CMakeFiles/std_msgs_generate_messages_eus.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir
+
+# All Build rule for target.
+CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/all:
+	$(MAKE) -f CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/build.make CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/depend
+	$(MAKE) -f CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/build.make CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target actionlib_msgs_generate_messages_nodejs"
+.PHONY : CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/rule
+
+# Convenience name for target.
+actionlib_msgs_generate_messages_nodejs: CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/rule
+
+.PHONY : actionlib_msgs_generate_messages_nodejs
+
+# clean rule for target.
+CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/clean:
+	$(MAKE) -f CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/build.make CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/clean
+.PHONY : CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/actionlib_msgs_generate_messages_lisp.dir
+
+# All Build rule for target.
+CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/all:
+	$(MAKE) -f CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/build.make CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/depend
+	$(MAKE) -f CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/build.make CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target actionlib_msgs_generate_messages_lisp"
+.PHONY : CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/rule
+
+# Convenience name for target.
+actionlib_msgs_generate_messages_lisp: CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/rule
+
+.PHONY : actionlib_msgs_generate_messages_lisp
+
+# clean rule for target.
+CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/clean:
+	$(MAKE) -f CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/build.make CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/clean
+.PHONY : CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/tf2_msgs_generate_messages_lisp.dir
+
+# All Build rule for target.
+CMakeFiles/tf2_msgs_generate_messages_lisp.dir/all:
+	$(MAKE) -f CMakeFiles/tf2_msgs_generate_messages_lisp.dir/build.make CMakeFiles/tf2_msgs_generate_messages_lisp.dir/depend
+	$(MAKE) -f CMakeFiles/tf2_msgs_generate_messages_lisp.dir/build.make CMakeFiles/tf2_msgs_generate_messages_lisp.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target tf2_msgs_generate_messages_lisp"
+.PHONY : CMakeFiles/tf2_msgs_generate_messages_lisp.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/tf2_msgs_generate_messages_lisp.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/tf2_msgs_generate_messages_lisp.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/tf2_msgs_generate_messages_lisp.dir/rule
+
+# Convenience name for target.
+tf2_msgs_generate_messages_lisp: CMakeFiles/tf2_msgs_generate_messages_lisp.dir/rule
+
+.PHONY : tf2_msgs_generate_messages_lisp
+
+# clean rule for target.
+CMakeFiles/tf2_msgs_generate_messages_lisp.dir/clean:
+	$(MAKE) -f CMakeFiles/tf2_msgs_generate_messages_lisp.dir/build.make CMakeFiles/tf2_msgs_generate_messages_lisp.dir/clean
+.PHONY : CMakeFiles/tf2_msgs_generate_messages_lisp.dir/clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/tf2_msgs_generate_messages_nodejs.dir
+
+# All Build rule for target.
+CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/all:
+	$(MAKE) -f CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/build.make CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/depend
+	$(MAKE) -f CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/build.make CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num= "Built target tf2_msgs_generate_messages_nodejs"
+.PHONY : CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/rule
+
+# Convenience name for target.
+tf2_msgs_generate_messages_nodejs: CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/rule
+
+.PHONY : tf2_msgs_generate_messages_nodejs
+
+# clean rule for target.
+CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/clean:
+	$(MAKE) -f CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/build.make CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/clean
+.PHONY : CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/clean
+
+#=============================================================================
+# Target rules for target gtest/googlemock/CMakeFiles/gmock_main.dir
+
+# All Build rule for target.
+gtest/googlemock/CMakeFiles/gmock_main.dir/all: gtest/googlemock/CMakeFiles/gmock.dir/all
+gtest/googlemock/CMakeFiles/gmock_main.dir/all: gtest/googletest/CMakeFiles/gtest.dir/all
+	$(MAKE) -f gtest/googlemock/CMakeFiles/gmock_main.dir/build.make gtest/googlemock/CMakeFiles/gmock_main.dir/depend
+	$(MAKE) -f gtest/googlemock/CMakeFiles/gmock_main.dir/build.make gtest/googlemock/CMakeFiles/gmock_main.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num=3,4 "Built target gmock_main"
+.PHONY : gtest/googlemock/CMakeFiles/gmock_main.dir/all
+
+# Build rule for subdir invocation for target.
+gtest/googlemock/CMakeFiles/gmock_main.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 6
+	$(MAKE) -f CMakeFiles/Makefile2 gtest/googlemock/CMakeFiles/gmock_main.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : gtest/googlemock/CMakeFiles/gmock_main.dir/rule
+
+# Convenience name for target.
+gmock_main: gtest/googlemock/CMakeFiles/gmock_main.dir/rule
+
+.PHONY : gmock_main
+
+# clean rule for target.
+gtest/googlemock/CMakeFiles/gmock_main.dir/clean:
+	$(MAKE) -f gtest/googlemock/CMakeFiles/gmock_main.dir/build.make gtest/googlemock/CMakeFiles/gmock_main.dir/clean
+.PHONY : gtest/googlemock/CMakeFiles/gmock_main.dir/clean
+
+#=============================================================================
+# Target rules for target gtest/googlemock/CMakeFiles/gmock.dir
+
+# All Build rule for target.
+gtest/googlemock/CMakeFiles/gmock.dir/all: gtest/googletest/CMakeFiles/gtest.dir/all
+	$(MAKE) -f gtest/googlemock/CMakeFiles/gmock.dir/build.make gtest/googlemock/CMakeFiles/gmock.dir/depend
+	$(MAKE) -f gtest/googlemock/CMakeFiles/gmock.dir/build.make gtest/googlemock/CMakeFiles/gmock.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num=1,2 "Built target gmock"
+.PHONY : gtest/googlemock/CMakeFiles/gmock.dir/all
+
+# Build rule for subdir invocation for target.
+gtest/googlemock/CMakeFiles/gmock.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 4
+	$(MAKE) -f CMakeFiles/Makefile2 gtest/googlemock/CMakeFiles/gmock.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : gtest/googlemock/CMakeFiles/gmock.dir/rule
+
+# Convenience name for target.
+gmock: gtest/googlemock/CMakeFiles/gmock.dir/rule
+
+.PHONY : gmock
+
+# clean rule for target.
+gtest/googlemock/CMakeFiles/gmock.dir/clean:
+	$(MAKE) -f gtest/googlemock/CMakeFiles/gmock.dir/build.make gtest/googlemock/CMakeFiles/gmock.dir/clean
+.PHONY : gtest/googlemock/CMakeFiles/gmock.dir/clean
+
+#=============================================================================
+# Target rules for target gtest/googletest/CMakeFiles/gtest_main.dir
+
+# All Build rule for target.
+gtest/googletest/CMakeFiles/gtest_main.dir/all: gtest/googletest/CMakeFiles/gtest.dir/all
+	$(MAKE) -f gtest/googletest/CMakeFiles/gtest_main.dir/build.make gtest/googletest/CMakeFiles/gtest_main.dir/depend
+	$(MAKE) -f gtest/googletest/CMakeFiles/gtest_main.dir/build.make gtest/googletest/CMakeFiles/gtest_main.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num=7,8 "Built target gtest_main"
+.PHONY : gtest/googletest/CMakeFiles/gtest_main.dir/all
+
+# Build rule for subdir invocation for target.
+gtest/googletest/CMakeFiles/gtest_main.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 4
+	$(MAKE) -f CMakeFiles/Makefile2 gtest/googletest/CMakeFiles/gtest_main.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : gtest/googletest/CMakeFiles/gtest_main.dir/rule
+
+# Convenience name for target.
+gtest_main: gtest/googletest/CMakeFiles/gtest_main.dir/rule
+
+.PHONY : gtest_main
+
+# clean rule for target.
+gtest/googletest/CMakeFiles/gtest_main.dir/clean:
+	$(MAKE) -f gtest/googletest/CMakeFiles/gtest_main.dir/build.make gtest/googletest/CMakeFiles/gtest_main.dir/clean
+.PHONY : gtest/googletest/CMakeFiles/gtest_main.dir/clean
+
+#=============================================================================
+# Target rules for target gtest/googletest/CMakeFiles/gtest.dir
+
+# All Build rule for target.
+gtest/googletest/CMakeFiles/gtest.dir/all:
+	$(MAKE) -f gtest/googletest/CMakeFiles/gtest.dir/build.make gtest/googletest/CMakeFiles/gtest.dir/depend
+	$(MAKE) -f gtest/googletest/CMakeFiles/gtest.dir/build.make gtest/googletest/CMakeFiles/gtest.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num=5,6 "Built target gtest"
+.PHONY : gtest/googletest/CMakeFiles/gtest.dir/all
+
+# Build rule for subdir invocation for target.
+gtest/googletest/CMakeFiles/gtest.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 2
+	$(MAKE) -f CMakeFiles/Makefile2 gtest/googletest/CMakeFiles/gtest.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : gtest/googletest/CMakeFiles/gtest.dir/rule
+
+# Convenience name for target.
+gtest: gtest/googletest/CMakeFiles/gtest.dir/rule
+
+.PHONY : gtest
+
+# clean rule for target.
+gtest/googletest/CMakeFiles/gtest.dir/clean:
+	$(MAKE) -f gtest/googletest/CMakeFiles/gtest.dir/build.make gtest/googletest/CMakeFiles/gtest.dir/clean
+.PHONY : gtest/googletest/CMakeFiles/gtest.dir/clean
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+	$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/TargetDirectories.txt b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/TargetDirectories.txt
new file mode 100644
index 0000000..9da6d4e
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/TargetDirectories.txt
@@ -0,0 +1,93 @@
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/install/strip.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/install/local.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/list_install_components.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rebuild_cache.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/test.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/nonlinear_mpc_node.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_gencfg.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_lisp.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_cpp.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_gencfg.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_cpp.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_py.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_cpp.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_lisp.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_py.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_eus.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_py.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_lisp.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_py.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/download_extra_data.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/doxygen.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_lisp.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/_catkin_empty_exported_target.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/clean_test_results.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_lisp.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_eus.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/install.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tests.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_eus.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_cpp.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_cpp.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_eus.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_cpp.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_nodejs.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_package.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/run_tests.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_nodejs.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_eus.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_py.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_nodejs.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_cpp.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_py.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_nodejs.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_py.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_eus.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_py.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_eus.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_lisp.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/edit_cache.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_nodejs.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_eus.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_cpp.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_nodejs.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_py.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_py.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_eus.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_lisp.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_lisp.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_nodejs.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/CMakeFiles/install/strip.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/CMakeFiles/install/local.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/CMakeFiles/install.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/CMakeFiles/list_install_components.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/CMakeFiles/rebuild_cache.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/CMakeFiles/edit_cache.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/CMakeFiles/test.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/install/strip.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/install/local.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/install.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/list_install_components.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/rebuild_cache.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/edit_cache.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/test.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock_main.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/install/strip.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/install/local.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/install.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/list_install_components.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/rebuild_cache.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/edit_cache.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/test.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest_main.dir
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest.dir
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/_catkin_empty_exported_target.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/_catkin_empty_exported_target.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/_catkin_empty_exported_target.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/_catkin_empty_exported_target.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/_catkin_empty_exported_target.dir/build.make
new file mode 100644
index 0000000..a4b233a
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/_catkin_empty_exported_target.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for _catkin_empty_exported_target.
+
+# Include the progress variables for this target.
+include CMakeFiles/_catkin_empty_exported_target.dir/progress.make
+
+_catkin_empty_exported_target: CMakeFiles/_catkin_empty_exported_target.dir/build.make
+
+.PHONY : _catkin_empty_exported_target
+
+# Rule to build all files generated by this target.
+CMakeFiles/_catkin_empty_exported_target.dir/build: _catkin_empty_exported_target
+
+.PHONY : CMakeFiles/_catkin_empty_exported_target.dir/build
+
+CMakeFiles/_catkin_empty_exported_target.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/_catkin_empty_exported_target.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/_catkin_empty_exported_target.dir/clean
+
+CMakeFiles/_catkin_empty_exported_target.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/_catkin_empty_exported_target.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/_catkin_empty_exported_target.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/_catkin_empty_exported_target.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/_catkin_empty_exported_target.dir/cmake_clean.cmake
new file mode 100644
index 0000000..56a88ba
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/_catkin_empty_exported_target.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/_catkin_empty_exported_target.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/_catkin_empty_exported_target.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/_catkin_empty_exported_target.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/_catkin_empty_exported_target.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_cpp.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_cpp.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_cpp.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_cpp.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_cpp.dir/build.make
new file mode 100644
index 0000000..2c7c804
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_cpp.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for actionlib_generate_messages_cpp.
+
+# Include the progress variables for this target.
+include CMakeFiles/actionlib_generate_messages_cpp.dir/progress.make
+
+actionlib_generate_messages_cpp: CMakeFiles/actionlib_generate_messages_cpp.dir/build.make
+
+.PHONY : actionlib_generate_messages_cpp
+
+# Rule to build all files generated by this target.
+CMakeFiles/actionlib_generate_messages_cpp.dir/build: actionlib_generate_messages_cpp
+
+.PHONY : CMakeFiles/actionlib_generate_messages_cpp.dir/build
+
+CMakeFiles/actionlib_generate_messages_cpp.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/actionlib_generate_messages_cpp.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/actionlib_generate_messages_cpp.dir/clean
+
+CMakeFiles/actionlib_generate_messages_cpp.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_cpp.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/actionlib_generate_messages_cpp.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_cpp.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_cpp.dir/cmake_clean.cmake
new file mode 100644
index 0000000..acf4a50
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_cpp.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/actionlib_generate_messages_cpp.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_cpp.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_cpp.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_cpp.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_cpp.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_cpp.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_cpp.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_cpp.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_cpp.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_cpp.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_eus.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_eus.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_eus.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_eus.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_eus.dir/build.make
new file mode 100644
index 0000000..4654b7f
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_eus.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for actionlib_generate_messages_eus.
+
+# Include the progress variables for this target.
+include CMakeFiles/actionlib_generate_messages_eus.dir/progress.make
+
+actionlib_generate_messages_eus: CMakeFiles/actionlib_generate_messages_eus.dir/build.make
+
+.PHONY : actionlib_generate_messages_eus
+
+# Rule to build all files generated by this target.
+CMakeFiles/actionlib_generate_messages_eus.dir/build: actionlib_generate_messages_eus
+
+.PHONY : CMakeFiles/actionlib_generate_messages_eus.dir/build
+
+CMakeFiles/actionlib_generate_messages_eus.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/actionlib_generate_messages_eus.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/actionlib_generate_messages_eus.dir/clean
+
+CMakeFiles/actionlib_generate_messages_eus.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_eus.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/actionlib_generate_messages_eus.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_eus.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_eus.dir/cmake_clean.cmake
new file mode 100644
index 0000000..6bdc0a3
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_eus.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/actionlib_generate_messages_eus.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_eus.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_eus.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_eus.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_eus.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_eus.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_eus.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_eus.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_eus.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_eus.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_lisp.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_lisp.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_lisp.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_lisp.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_lisp.dir/build.make
new file mode 100644
index 0000000..051a21a
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_lisp.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for actionlib_generate_messages_lisp.
+
+# Include the progress variables for this target.
+include CMakeFiles/actionlib_generate_messages_lisp.dir/progress.make
+
+actionlib_generate_messages_lisp: CMakeFiles/actionlib_generate_messages_lisp.dir/build.make
+
+.PHONY : actionlib_generate_messages_lisp
+
+# Rule to build all files generated by this target.
+CMakeFiles/actionlib_generate_messages_lisp.dir/build: actionlib_generate_messages_lisp
+
+.PHONY : CMakeFiles/actionlib_generate_messages_lisp.dir/build
+
+CMakeFiles/actionlib_generate_messages_lisp.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/actionlib_generate_messages_lisp.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/actionlib_generate_messages_lisp.dir/clean
+
+CMakeFiles/actionlib_generate_messages_lisp.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_lisp.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/actionlib_generate_messages_lisp.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_lisp.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_lisp.dir/cmake_clean.cmake
new file mode 100644
index 0000000..fae152b
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_lisp.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/actionlib_generate_messages_lisp.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_lisp.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_lisp.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_lisp.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_lisp.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_lisp.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_lisp.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_lisp.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_lisp.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_lisp.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_nodejs.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_nodejs.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_nodejs.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_nodejs.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_nodejs.dir/build.make
new file mode 100644
index 0000000..16b6a7d
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_nodejs.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for actionlib_generate_messages_nodejs.
+
+# Include the progress variables for this target.
+include CMakeFiles/actionlib_generate_messages_nodejs.dir/progress.make
+
+actionlib_generate_messages_nodejs: CMakeFiles/actionlib_generate_messages_nodejs.dir/build.make
+
+.PHONY : actionlib_generate_messages_nodejs
+
+# Rule to build all files generated by this target.
+CMakeFiles/actionlib_generate_messages_nodejs.dir/build: actionlib_generate_messages_nodejs
+
+.PHONY : CMakeFiles/actionlib_generate_messages_nodejs.dir/build
+
+CMakeFiles/actionlib_generate_messages_nodejs.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/actionlib_generate_messages_nodejs.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/actionlib_generate_messages_nodejs.dir/clean
+
+CMakeFiles/actionlib_generate_messages_nodejs.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_nodejs.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/actionlib_generate_messages_nodejs.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_nodejs.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_nodejs.dir/cmake_clean.cmake
new file mode 100644
index 0000000..6e65df1
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_nodejs.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/actionlib_generate_messages_nodejs.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_nodejs.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_nodejs.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_nodejs.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_nodejs.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_nodejs.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_nodejs.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_nodejs.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_nodejs.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_nodejs.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_py.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_py.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_py.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_py.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_py.dir/build.make
new file mode 100644
index 0000000..fd904a6
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_py.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for actionlib_generate_messages_py.
+
+# Include the progress variables for this target.
+include CMakeFiles/actionlib_generate_messages_py.dir/progress.make
+
+actionlib_generate_messages_py: CMakeFiles/actionlib_generate_messages_py.dir/build.make
+
+.PHONY : actionlib_generate_messages_py
+
+# Rule to build all files generated by this target.
+CMakeFiles/actionlib_generate_messages_py.dir/build: actionlib_generate_messages_py
+
+.PHONY : CMakeFiles/actionlib_generate_messages_py.dir/build
+
+CMakeFiles/actionlib_generate_messages_py.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/actionlib_generate_messages_py.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/actionlib_generate_messages_py.dir/clean
+
+CMakeFiles/actionlib_generate_messages_py.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_py.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/actionlib_generate_messages_py.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_py.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_py.dir/cmake_clean.cmake
new file mode 100644
index 0000000..aa0e8de
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_py.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/actionlib_generate_messages_py.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_py.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_py.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_py.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_py.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_py.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_py.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_py.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_py.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_generate_messages_py.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/build.make
new file mode 100644
index 0000000..f9abcc1
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for actionlib_msgs_generate_messages_cpp.
+
+# Include the progress variables for this target.
+include CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/progress.make
+
+actionlib_msgs_generate_messages_cpp: CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/build.make
+
+.PHONY : actionlib_msgs_generate_messages_cpp
+
+# Rule to build all files generated by this target.
+CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/build: actionlib_msgs_generate_messages_cpp
+
+.PHONY : CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/build
+
+CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/clean
+
+CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/cmake_clean.cmake
new file mode 100644
index 0000000..9905c51
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_cpp.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_eus.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_eus.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_eus.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_eus.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_eus.dir/build.make
new file mode 100644
index 0000000..b272ea2
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_eus.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for actionlib_msgs_generate_messages_eus.
+
+# Include the progress variables for this target.
+include CMakeFiles/actionlib_msgs_generate_messages_eus.dir/progress.make
+
+actionlib_msgs_generate_messages_eus: CMakeFiles/actionlib_msgs_generate_messages_eus.dir/build.make
+
+.PHONY : actionlib_msgs_generate_messages_eus
+
+# Rule to build all files generated by this target.
+CMakeFiles/actionlib_msgs_generate_messages_eus.dir/build: actionlib_msgs_generate_messages_eus
+
+.PHONY : CMakeFiles/actionlib_msgs_generate_messages_eus.dir/build
+
+CMakeFiles/actionlib_msgs_generate_messages_eus.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/actionlib_msgs_generate_messages_eus.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/actionlib_msgs_generate_messages_eus.dir/clean
+
+CMakeFiles/actionlib_msgs_generate_messages_eus.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_eus.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/actionlib_msgs_generate_messages_eus.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_eus.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_eus.dir/cmake_clean.cmake
new file mode 100644
index 0000000..cfaf9d5
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_eus.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/actionlib_msgs_generate_messages_eus.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_eus.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_eus.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_eus.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_eus.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_eus.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_eus.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_eus.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_eus.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_eus.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/build.make
new file mode 100644
index 0000000..9dd3c7e
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for actionlib_msgs_generate_messages_lisp.
+
+# Include the progress variables for this target.
+include CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/progress.make
+
+actionlib_msgs_generate_messages_lisp: CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/build.make
+
+.PHONY : actionlib_msgs_generate_messages_lisp
+
+# Rule to build all files generated by this target.
+CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/build: actionlib_msgs_generate_messages_lisp
+
+.PHONY : CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/build
+
+CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/clean
+
+CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/cmake_clean.cmake
new file mode 100644
index 0000000..6cfb90f
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_lisp.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/build.make
new file mode 100644
index 0000000..c519a5b
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for actionlib_msgs_generate_messages_nodejs.
+
+# Include the progress variables for this target.
+include CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/progress.make
+
+actionlib_msgs_generate_messages_nodejs: CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/build.make
+
+.PHONY : actionlib_msgs_generate_messages_nodejs
+
+# Rule to build all files generated by this target.
+CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/build: actionlib_msgs_generate_messages_nodejs
+
+.PHONY : CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/build
+
+CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/clean
+
+CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/cmake_clean.cmake
new file mode 100644
index 0000000..65e5a40
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_nodejs.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_py.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_py.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_py.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_py.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_py.dir/build.make
new file mode 100644
index 0000000..f6c226e
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_py.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for actionlib_msgs_generate_messages_py.
+
+# Include the progress variables for this target.
+include CMakeFiles/actionlib_msgs_generate_messages_py.dir/progress.make
+
+actionlib_msgs_generate_messages_py: CMakeFiles/actionlib_msgs_generate_messages_py.dir/build.make
+
+.PHONY : actionlib_msgs_generate_messages_py
+
+# Rule to build all files generated by this target.
+CMakeFiles/actionlib_msgs_generate_messages_py.dir/build: actionlib_msgs_generate_messages_py
+
+.PHONY : CMakeFiles/actionlib_msgs_generate_messages_py.dir/build
+
+CMakeFiles/actionlib_msgs_generate_messages_py.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/actionlib_msgs_generate_messages_py.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/actionlib_msgs_generate_messages_py.dir/clean
+
+CMakeFiles/actionlib_msgs_generate_messages_py.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_py.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/actionlib_msgs_generate_messages_py.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_py.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_py.dir/cmake_clean.cmake
new file mode 100644
index 0000000..00cd299
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_py.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/actionlib_msgs_generate_messages_py.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_py.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_py.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_py.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_py.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_py.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_py.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_py.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_py.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/actionlib_msgs_generate_messages_py.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/clean_test_results.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/clean_test_results.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/clean_test_results.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/clean_test_results.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/clean_test_results.dir/build.make
new file mode 100644
index 0000000..214244a
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/clean_test_results.dir/build.make
@@ -0,0 +1,76 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for clean_test_results.
+
+# Include the progress variables for this target.
+include CMakeFiles/clean_test_results.dir/progress.make
+
+CMakeFiles/clean_test_results:
+	/usr/bin/python3 /opt/ros/noetic/share/catkin/cmake/test/remove_test_results.py /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/test_results
+
+clean_test_results: CMakeFiles/clean_test_results
+clean_test_results: CMakeFiles/clean_test_results.dir/build.make
+
+.PHONY : clean_test_results
+
+# Rule to build all files generated by this target.
+CMakeFiles/clean_test_results.dir/build: clean_test_results
+
+.PHONY : CMakeFiles/clean_test_results.dir/build
+
+CMakeFiles/clean_test_results.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/clean_test_results.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/clean_test_results.dir/clean
+
+CMakeFiles/clean_test_results.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/clean_test_results.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/clean_test_results.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/clean_test_results.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/clean_test_results.dir/cmake_clean.cmake
new file mode 100644
index 0000000..63bf0e0
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/clean_test_results.dir/cmake_clean.cmake
@@ -0,0 +1,8 @@
+file(REMOVE_RECURSE
+  "CMakeFiles/clean_test_results"
+)
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/clean_test_results.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/clean_test_results.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/clean_test_results.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/clean_test_results.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/cmake.check_cache b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/cmake.check_cache
new file mode 100644
index 0000000..3dccd73
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/cmake.check_cache
@@ -0,0 +1 @@
+# This file is generated by cmake for dependency checking of the CMakeCache.txt file
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/download_extra_data.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/download_extra_data.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/download_extra_data.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/download_extra_data.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/download_extra_data.dir/build.make
new file mode 100644
index 0000000..3f09f34
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/download_extra_data.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for download_extra_data.
+
+# Include the progress variables for this target.
+include CMakeFiles/download_extra_data.dir/progress.make
+
+download_extra_data: CMakeFiles/download_extra_data.dir/build.make
+
+.PHONY : download_extra_data
+
+# Rule to build all files generated by this target.
+CMakeFiles/download_extra_data.dir/build: download_extra_data
+
+.PHONY : CMakeFiles/download_extra_data.dir/build
+
+CMakeFiles/download_extra_data.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/download_extra_data.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/download_extra_data.dir/clean
+
+CMakeFiles/download_extra_data.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/download_extra_data.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/download_extra_data.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/download_extra_data.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/download_extra_data.dir/cmake_clean.cmake
new file mode 100644
index 0000000..bf7d7e2
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/download_extra_data.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/download_extra_data.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/download_extra_data.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/download_extra_data.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/download_extra_data.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/doxygen.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/doxygen.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/doxygen.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/doxygen.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/doxygen.dir/build.make
new file mode 100644
index 0000000..039290d
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/doxygen.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for doxygen.
+
+# Include the progress variables for this target.
+include CMakeFiles/doxygen.dir/progress.make
+
+doxygen: CMakeFiles/doxygen.dir/build.make
+
+.PHONY : doxygen
+
+# Rule to build all files generated by this target.
+CMakeFiles/doxygen.dir/build: doxygen
+
+.PHONY : CMakeFiles/doxygen.dir/build
+
+CMakeFiles/doxygen.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/doxygen.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/doxygen.dir/clean
+
+CMakeFiles/doxygen.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/doxygen.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/doxygen.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/doxygen.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/doxygen.dir/cmake_clean.cmake
new file mode 100644
index 0000000..ef20a75
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/doxygen.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/doxygen.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/doxygen.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/doxygen.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/doxygen.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_gencfg.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_gencfg.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_gencfg.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_gencfg.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_gencfg.dir/build.make
new file mode 100644
index 0000000..b43e3b8
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_gencfg.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for dynamic_reconfigure_gencfg.
+
+# Include the progress variables for this target.
+include CMakeFiles/dynamic_reconfigure_gencfg.dir/progress.make
+
+dynamic_reconfigure_gencfg: CMakeFiles/dynamic_reconfigure_gencfg.dir/build.make
+
+.PHONY : dynamic_reconfigure_gencfg
+
+# Rule to build all files generated by this target.
+CMakeFiles/dynamic_reconfigure_gencfg.dir/build: dynamic_reconfigure_gencfg
+
+.PHONY : CMakeFiles/dynamic_reconfigure_gencfg.dir/build
+
+CMakeFiles/dynamic_reconfigure_gencfg.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/dynamic_reconfigure_gencfg.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/dynamic_reconfigure_gencfg.dir/clean
+
+CMakeFiles/dynamic_reconfigure_gencfg.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_gencfg.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/dynamic_reconfigure_gencfg.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_gencfg.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_gencfg.dir/cmake_clean.cmake
new file mode 100644
index 0000000..b9e4b82
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_gencfg.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/dynamic_reconfigure_gencfg.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_gencfg.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_gencfg.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_gencfg.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_gencfg.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_gencfg.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_gencfg.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_gencfg.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_gencfg.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_gencfg.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/build.make
new file mode 100644
index 0000000..941f116
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for dynamic_reconfigure_generate_messages_cpp.
+
+# Include the progress variables for this target.
+include CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/progress.make
+
+dynamic_reconfigure_generate_messages_cpp: CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/build.make
+
+.PHONY : dynamic_reconfigure_generate_messages_cpp
+
+# Rule to build all files generated by this target.
+CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/build: dynamic_reconfigure_generate_messages_cpp
+
+.PHONY : CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/build
+
+CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/clean
+
+CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/cmake_clean.cmake
new file mode 100644
index 0000000..4b69649
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_cpp.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/build.make
new file mode 100644
index 0000000..6c1cd15
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for dynamic_reconfigure_generate_messages_eus.
+
+# Include the progress variables for this target.
+include CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/progress.make
+
+dynamic_reconfigure_generate_messages_eus: CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/build.make
+
+.PHONY : dynamic_reconfigure_generate_messages_eus
+
+# Rule to build all files generated by this target.
+CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/build: dynamic_reconfigure_generate_messages_eus
+
+.PHONY : CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/build
+
+CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/clean
+
+CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/cmake_clean.cmake
new file mode 100644
index 0000000..c5dc040
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_eus.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/build.make
new file mode 100644
index 0000000..9c59f38
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for dynamic_reconfigure_generate_messages_lisp.
+
+# Include the progress variables for this target.
+include CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/progress.make
+
+dynamic_reconfigure_generate_messages_lisp: CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/build.make
+
+.PHONY : dynamic_reconfigure_generate_messages_lisp
+
+# Rule to build all files generated by this target.
+CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/build: dynamic_reconfigure_generate_messages_lisp
+
+.PHONY : CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/build
+
+CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/clean
+
+CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/cmake_clean.cmake
new file mode 100644
index 0000000..4636c51
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_lisp.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/build.make
new file mode 100644
index 0000000..83525c0
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for dynamic_reconfigure_generate_messages_nodejs.
+
+# Include the progress variables for this target.
+include CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/progress.make
+
+dynamic_reconfigure_generate_messages_nodejs: CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/build.make
+
+.PHONY : dynamic_reconfigure_generate_messages_nodejs
+
+# Rule to build all files generated by this target.
+CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/build: dynamic_reconfigure_generate_messages_nodejs
+
+.PHONY : CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/build
+
+CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/clean
+
+CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/cmake_clean.cmake
new file mode 100644
index 0000000..f8b0469
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_nodejs.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/build.make
new file mode 100644
index 0000000..e35ea11
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for dynamic_reconfigure_generate_messages_py.
+
+# Include the progress variables for this target.
+include CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/progress.make
+
+dynamic_reconfigure_generate_messages_py: CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/build.make
+
+.PHONY : dynamic_reconfigure_generate_messages_py
+
+# Rule to build all files generated by this target.
+CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/build: dynamic_reconfigure_generate_messages_py
+
+.PHONY : CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/build
+
+CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/clean
+
+CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/cmake_clean.cmake
new file mode 100644
index 0000000..acecef0
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/dynamic_reconfigure_generate_messages_py.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_cpp.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_cpp.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_cpp.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_cpp.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_cpp.dir/build.make
new file mode 100644
index 0000000..9f653e3
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_cpp.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for geometry_msgs_generate_messages_cpp.
+
+# Include the progress variables for this target.
+include CMakeFiles/geometry_msgs_generate_messages_cpp.dir/progress.make
+
+geometry_msgs_generate_messages_cpp: CMakeFiles/geometry_msgs_generate_messages_cpp.dir/build.make
+
+.PHONY : geometry_msgs_generate_messages_cpp
+
+# Rule to build all files generated by this target.
+CMakeFiles/geometry_msgs_generate_messages_cpp.dir/build: geometry_msgs_generate_messages_cpp
+
+.PHONY : CMakeFiles/geometry_msgs_generate_messages_cpp.dir/build
+
+CMakeFiles/geometry_msgs_generate_messages_cpp.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/geometry_msgs_generate_messages_cpp.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/geometry_msgs_generate_messages_cpp.dir/clean
+
+CMakeFiles/geometry_msgs_generate_messages_cpp.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_cpp.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/geometry_msgs_generate_messages_cpp.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_cpp.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_cpp.dir/cmake_clean.cmake
new file mode 100644
index 0000000..820ac95
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_cpp.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/geometry_msgs_generate_messages_cpp.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_cpp.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_cpp.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_cpp.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_cpp.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_cpp.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_cpp.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_cpp.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_cpp.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_cpp.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_eus.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_eus.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_eus.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_eus.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_eus.dir/build.make
new file mode 100644
index 0000000..3354b38
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_eus.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for geometry_msgs_generate_messages_eus.
+
+# Include the progress variables for this target.
+include CMakeFiles/geometry_msgs_generate_messages_eus.dir/progress.make
+
+geometry_msgs_generate_messages_eus: CMakeFiles/geometry_msgs_generate_messages_eus.dir/build.make
+
+.PHONY : geometry_msgs_generate_messages_eus
+
+# Rule to build all files generated by this target.
+CMakeFiles/geometry_msgs_generate_messages_eus.dir/build: geometry_msgs_generate_messages_eus
+
+.PHONY : CMakeFiles/geometry_msgs_generate_messages_eus.dir/build
+
+CMakeFiles/geometry_msgs_generate_messages_eus.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/geometry_msgs_generate_messages_eus.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/geometry_msgs_generate_messages_eus.dir/clean
+
+CMakeFiles/geometry_msgs_generate_messages_eus.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_eus.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/geometry_msgs_generate_messages_eus.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_eus.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_eus.dir/cmake_clean.cmake
new file mode 100644
index 0000000..67f285a
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_eus.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/geometry_msgs_generate_messages_eus.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_eus.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_eus.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_eus.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_eus.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_eus.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_eus.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_eus.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_eus.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_eus.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_lisp.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_lisp.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_lisp.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_lisp.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_lisp.dir/build.make
new file mode 100644
index 0000000..11ed8d9
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_lisp.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for geometry_msgs_generate_messages_lisp.
+
+# Include the progress variables for this target.
+include CMakeFiles/geometry_msgs_generate_messages_lisp.dir/progress.make
+
+geometry_msgs_generate_messages_lisp: CMakeFiles/geometry_msgs_generate_messages_lisp.dir/build.make
+
+.PHONY : geometry_msgs_generate_messages_lisp
+
+# Rule to build all files generated by this target.
+CMakeFiles/geometry_msgs_generate_messages_lisp.dir/build: geometry_msgs_generate_messages_lisp
+
+.PHONY : CMakeFiles/geometry_msgs_generate_messages_lisp.dir/build
+
+CMakeFiles/geometry_msgs_generate_messages_lisp.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/geometry_msgs_generate_messages_lisp.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/geometry_msgs_generate_messages_lisp.dir/clean
+
+CMakeFiles/geometry_msgs_generate_messages_lisp.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_lisp.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/geometry_msgs_generate_messages_lisp.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_lisp.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_lisp.dir/cmake_clean.cmake
new file mode 100644
index 0000000..1e1c8fa
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_lisp.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/geometry_msgs_generate_messages_lisp.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_lisp.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_lisp.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_lisp.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_lisp.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_lisp.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_lisp.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_lisp.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_lisp.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_lisp.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/build.make
new file mode 100644
index 0000000..ccb5636
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for geometry_msgs_generate_messages_nodejs.
+
+# Include the progress variables for this target.
+include CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/progress.make
+
+geometry_msgs_generate_messages_nodejs: CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/build.make
+
+.PHONY : geometry_msgs_generate_messages_nodejs
+
+# Rule to build all files generated by this target.
+CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/build: geometry_msgs_generate_messages_nodejs
+
+.PHONY : CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/build
+
+CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/clean
+
+CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/cmake_clean.cmake
new file mode 100644
index 0000000..a10d1c0
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_nodejs.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_py.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_py.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_py.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_py.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_py.dir/build.make
new file mode 100644
index 0000000..2922ffa
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_py.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for geometry_msgs_generate_messages_py.
+
+# Include the progress variables for this target.
+include CMakeFiles/geometry_msgs_generate_messages_py.dir/progress.make
+
+geometry_msgs_generate_messages_py: CMakeFiles/geometry_msgs_generate_messages_py.dir/build.make
+
+.PHONY : geometry_msgs_generate_messages_py
+
+# Rule to build all files generated by this target.
+CMakeFiles/geometry_msgs_generate_messages_py.dir/build: geometry_msgs_generate_messages_py
+
+.PHONY : CMakeFiles/geometry_msgs_generate_messages_py.dir/build
+
+CMakeFiles/geometry_msgs_generate_messages_py.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/geometry_msgs_generate_messages_py.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/geometry_msgs_generate_messages_py.dir/clean
+
+CMakeFiles/geometry_msgs_generate_messages_py.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_py.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/geometry_msgs_generate_messages_py.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_py.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_py.dir/cmake_clean.cmake
new file mode 100644
index 0000000..37b4627
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_py.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/geometry_msgs_generate_messages_py.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_py.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_py.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_py.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_py.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_py.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_py.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_py.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_py.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/geometry_msgs_generate_messages_py.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_gencfg.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_gencfg.dir/DependInfo.cmake
new file mode 100644
index 0000000..c4766d0
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_gencfg.dir/DependInfo.cmake
@@ -0,0 +1,20 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Pairs of files generated by the same build rule.
+set(CMAKE_MULTIPLE_OUTPUT_PAIRS
+  "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel/lib/python3/dist-packages/mav_nonlinear_mpc/cfg/NonLinearMPCConfig.py" "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel/include/mav_nonlinear_mpc/NonLinearMPCConfig.h"
+  "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel/share/mav_nonlinear_mpc/docs/NonLinearMPCConfig-usage.dox" "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel/include/mav_nonlinear_mpc/NonLinearMPCConfig.h"
+  "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel/share/mav_nonlinear_mpc/docs/NonLinearMPCConfig.dox" "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel/include/mav_nonlinear_mpc/NonLinearMPCConfig.h"
+  "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel/share/mav_nonlinear_mpc/docs/NonLinearMPCConfig.wikidoc" "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel/include/mav_nonlinear_mpc/NonLinearMPCConfig.h"
+  )
+
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_gencfg.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_gencfg.dir/build.make
new file mode 100644
index 0000000..db7683c
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_gencfg.dir/build.make
@@ -0,0 +1,100 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for mav_nonlinear_mpc_gencfg.
+
+# Include the progress variables for this target.
+include CMakeFiles/mav_nonlinear_mpc_gencfg.dir/progress.make
+
+CMakeFiles/mav_nonlinear_mpc_gencfg: devel/include/mav_nonlinear_mpc/NonLinearMPCConfig.h
+CMakeFiles/mav_nonlinear_mpc_gencfg: devel/lib/python3/dist-packages/mav_nonlinear_mpc/cfg/NonLinearMPCConfig.py
+
+
+devel/include/mav_nonlinear_mpc/NonLinearMPCConfig.h: ../cfg/NonLinearMPC.cfg
+devel/include/mav_nonlinear_mpc/NonLinearMPCConfig.h: /opt/ros/noetic/share/dynamic_reconfigure/templates/ConfigType.py.template
+devel/include/mav_nonlinear_mpc/NonLinearMPCConfig.h: /opt/ros/noetic/share/dynamic_reconfigure/templates/ConfigType.h.template
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Generating dynamic reconfigure files from cfg/NonLinearMPC.cfg: /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel/include/mav_nonlinear_mpc/NonLinearMPCConfig.h /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel/lib/python3/dist-packages/mav_nonlinear_mpc/cfg/NonLinearMPCConfig.py"
+	catkin_generated/env_cached.sh /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/setup_custom_pythonpath.sh /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/cfg/NonLinearMPC.cfg /opt/ros/noetic/share/dynamic_reconfigure/cmake/.. /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel/share/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel/include/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel/lib/python3/dist-packages/mav_nonlinear_mpc
+
+devel/share/mav_nonlinear_mpc/docs/NonLinearMPCConfig.dox: devel/include/mav_nonlinear_mpc/NonLinearMPCConfig.h
+	@$(CMAKE_COMMAND) -E touch_nocreate devel/share/mav_nonlinear_mpc/docs/NonLinearMPCConfig.dox
+
+devel/share/mav_nonlinear_mpc/docs/NonLinearMPCConfig-usage.dox: devel/include/mav_nonlinear_mpc/NonLinearMPCConfig.h
+	@$(CMAKE_COMMAND) -E touch_nocreate devel/share/mav_nonlinear_mpc/docs/NonLinearMPCConfig-usage.dox
+
+devel/lib/python3/dist-packages/mav_nonlinear_mpc/cfg/NonLinearMPCConfig.py: devel/include/mav_nonlinear_mpc/NonLinearMPCConfig.h
+	@$(CMAKE_COMMAND) -E touch_nocreate devel/lib/python3/dist-packages/mav_nonlinear_mpc/cfg/NonLinearMPCConfig.py
+
+devel/share/mav_nonlinear_mpc/docs/NonLinearMPCConfig.wikidoc: devel/include/mav_nonlinear_mpc/NonLinearMPCConfig.h
+	@$(CMAKE_COMMAND) -E touch_nocreate devel/share/mav_nonlinear_mpc/docs/NonLinearMPCConfig.wikidoc
+
+mav_nonlinear_mpc_gencfg: CMakeFiles/mav_nonlinear_mpc_gencfg
+mav_nonlinear_mpc_gencfg: devel/include/mav_nonlinear_mpc/NonLinearMPCConfig.h
+mav_nonlinear_mpc_gencfg: devel/share/mav_nonlinear_mpc/docs/NonLinearMPCConfig.dox
+mav_nonlinear_mpc_gencfg: devel/share/mav_nonlinear_mpc/docs/NonLinearMPCConfig-usage.dox
+mav_nonlinear_mpc_gencfg: devel/lib/python3/dist-packages/mav_nonlinear_mpc/cfg/NonLinearMPCConfig.py
+mav_nonlinear_mpc_gencfg: devel/share/mav_nonlinear_mpc/docs/NonLinearMPCConfig.wikidoc
+mav_nonlinear_mpc_gencfg: CMakeFiles/mav_nonlinear_mpc_gencfg.dir/build.make
+
+.PHONY : mav_nonlinear_mpc_gencfg
+
+# Rule to build all files generated by this target.
+CMakeFiles/mav_nonlinear_mpc_gencfg.dir/build: mav_nonlinear_mpc_gencfg
+
+.PHONY : CMakeFiles/mav_nonlinear_mpc_gencfg.dir/build
+
+CMakeFiles/mav_nonlinear_mpc_gencfg.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/mav_nonlinear_mpc_gencfg.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/mav_nonlinear_mpc_gencfg.dir/clean
+
+CMakeFiles/mav_nonlinear_mpc_gencfg.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_gencfg.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/mav_nonlinear_mpc_gencfg.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_gencfg.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_gencfg.dir/cmake_clean.cmake
new file mode 100644
index 0000000..90057d0
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_gencfg.dir/cmake_clean.cmake
@@ -0,0 +1,13 @@
+file(REMOVE_RECURSE
+  "CMakeFiles/mav_nonlinear_mpc_gencfg"
+  "devel/include/mav_nonlinear_mpc/NonLinearMPCConfig.h"
+  "devel/lib/python3/dist-packages/mav_nonlinear_mpc/cfg/NonLinearMPCConfig.py"
+  "devel/share/mav_nonlinear_mpc/docs/NonLinearMPCConfig-usage.dox"
+  "devel/share/mav_nonlinear_mpc/docs/NonLinearMPCConfig.dox"
+  "devel/share/mav_nonlinear_mpc/docs/NonLinearMPCConfig.wikidoc"
+)
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/mav_nonlinear_mpc_gencfg.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_gencfg.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_gencfg.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_gencfg.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_gencfg.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_gencfg.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_gencfg.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_gencfg.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_gencfg.dir/progress.make
new file mode 100644
index 0000000..153b0f2
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_gencfg.dir/progress.make
@@ -0,0 +1,2 @@
+CMAKE_PROGRESS_1 = 9
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/C.includecache b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/C.includecache
new file mode 100644
index 0000000..1822684
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/C.includecache
@@ -0,0 +1,52 @@
+#IncludeRegexLine: ^[ 	]*[#%][ 	]*(include|import)[ 	]*[<"]([^">]+)([">])
+
+#IncludeRegexScan: ^.*$
+
+#IncludeRegexComplain: ^$
+
+#IncludeRegexTransform: 
+
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/acado_auxiliary_functions.c
+acado_auxiliary_functions.h
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/acado_auxiliary_functions.h
+stdio.h
+-
+
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/acado_auxiliary_functions.h
+acado_common.h
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/acado_common.h
+Windows.h
+-
+unistd.h
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/unistd.h
+mach/mach_time.h
+-
+time.h
+-
+sys/stat.h
+-
+sys/time.h
+-
+
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/acado_common.h
+math.h
+-
+string.h
+-
+acado_qpoases_interface.hpp
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/acado_qpoases_interface.hpp
+
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/acado_integrator.c
+acado_common.h
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/acado_common.h
+
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/acado_qpoases_interface.hpp
+stdio.h
+-
+math.h
+-
+
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/acado_solver.c
+acado_common.h
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/acado_common.h
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/CXX.includecache b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/CXX.includecache
new file mode 100644
index 0000000..dce6513
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/CXX.includecache
@@ -0,0 +1,2686 @@
+#IncludeRegexLine: ^[ 	]*[#%][ 	]*(include|import)[ 	]*[<"]([^">]+)([">])
+
+#IncludeRegexScan: ^.*$
+
+#IncludeRegexComplain: ^$
+
+#IncludeRegexTransform: 
+
+../include/mav_nonlinear_mpc/nonlinear_mpc.h
+ros/ros.h
+-
+Eigen/Eigen
+-
+stdio.h
+-
+acado_common.h
+../include/mav_nonlinear_mpc/acado_common.h
+acado_auxiliary_functions.h
+../include/mav_nonlinear_mpc/acado_auxiliary_functions.h
+std_srvs/Empty.h
+-
+geometry_msgs/Twist.h
+-
+geometry_msgs/PoseStamped.h
+-
+gazebo_msgs/GetModelState.h
+-
+
+/home/simhe502/catkin_ws/devel/include/geometry_msgs/Point.h
+string
+-
+vector
+-
+memory
+-
+ros/types.h
+-
+ros/serialization.h
+-
+ros/builtin_message_traits.h
+-
+ros/message_operations.h
+-
+
+/home/simhe502/catkin_ws/devel/include/geometry_msgs/PointStamped.h
+string
+-
+vector
+-
+memory
+-
+ros/types.h
+-
+ros/serialization.h
+-
+ros/builtin_message_traits.h
+-
+ros/message_operations.h
+-
+std_msgs/Header.h
+-
+geometry_msgs/Point.h
+-
+
+/home/simhe502/catkin_ws/devel/include/geometry_msgs/Pose.h
+string
+-
+vector
+-
+memory
+-
+ros/types.h
+-
+ros/serialization.h
+-
+ros/builtin_message_traits.h
+-
+ros/message_operations.h
+-
+geometry_msgs/Point.h
+-
+geometry_msgs/Quaternion.h
+-
+
+/home/simhe502/catkin_ws/devel/include/geometry_msgs/PoseStamped.h
+string
+-
+vector
+-
+memory
+-
+ros/types.h
+-
+ros/serialization.h
+-
+ros/builtin_message_traits.h
+-
+ros/message_operations.h
+-
+std_msgs/Header.h
+-
+geometry_msgs/Pose.h
+-
+
+/home/simhe502/catkin_ws/devel/include/geometry_msgs/Quaternion.h
+string
+-
+vector
+-
+memory
+-
+ros/types.h
+-
+ros/serialization.h
+-
+ros/builtin_message_traits.h
+-
+ros/message_operations.h
+-
+
+/home/simhe502/catkin_ws/devel/include/geometry_msgs/QuaternionStamped.h
+string
+-
+vector
+-
+memory
+-
+ros/types.h
+-
+ros/serialization.h
+-
+ros/builtin_message_traits.h
+-
+ros/message_operations.h
+-
+std_msgs/Header.h
+-
+geometry_msgs/Quaternion.h
+-
+
+/home/simhe502/catkin_ws/devel/include/geometry_msgs/Transform.h
+string
+-
+vector
+-
+memory
+-
+ros/types.h
+-
+ros/serialization.h
+-
+ros/builtin_message_traits.h
+-
+ros/message_operations.h
+-
+geometry_msgs/Vector3.h
+-
+geometry_msgs/Quaternion.h
+-
+
+/home/simhe502/catkin_ws/devel/include/geometry_msgs/TransformStamped.h
+string
+-
+vector
+-
+memory
+-
+ros/types.h
+-
+ros/serialization.h
+-
+ros/builtin_message_traits.h
+-
+ros/message_operations.h
+-
+std_msgs/Header.h
+-
+geometry_msgs/Transform.h
+-
+
+/home/simhe502/catkin_ws/devel/include/geometry_msgs/Twist.h
+string
+-
+vector
+-
+memory
+-
+ros/types.h
+-
+ros/serialization.h
+-
+ros/builtin_message_traits.h
+-
+ros/message_operations.h
+-
+geometry_msgs/Vector3.h
+-
+geometry_msgs/Vector3.h
+-
+
+/home/simhe502/catkin_ws/devel/include/geometry_msgs/Vector3.h
+string
+-
+vector
+-
+memory
+-
+ros/types.h
+-
+ros/serialization.h
+-
+ros/builtin_message_traits.h
+-
+ros/message_operations.h
+-
+
+/home/simhe502/catkin_ws/devel/include/geometry_msgs/Vector3Stamped.h
+string
+-
+vector
+-
+memory
+-
+ros/types.h
+-
+ros/serialization.h
+-
+ros/builtin_message_traits.h
+-
+ros/message_operations.h
+-
+std_msgs/Header.h
+-
+geometry_msgs/Vector3.h
+-
+
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/acado_common.h
+math.h
+-
+string.h
+-
+acado_qpoases_interface.hpp
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/acado_qpoases_interface.hpp
+
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/acado_qpoases_interface.cpp
+acado_common.h
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/acado_common.h
+INCLUDE/QProblem.hpp
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/INCLUDE/QProblem.hpp
+INCLUDE/EXTRAS/SolutionAnalysis.hpp
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/INCLUDE/EXTRAS/SolutionAnalysis.hpp
+
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/acado_qpoases_interface.hpp
+stdio.h
+-
+math.h
+-
+
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Bounds.cpp
+Bounds.hpp
+-
+
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Constraints.cpp
+Constraints.hpp
+-
+
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/CyclingManager.cpp
+CyclingManager.hpp
+-
+
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp
+EXTRAS/SolutionAnalysis.hpp
+-
+
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Indexlist.cpp
+Indexlist.hpp
+-
+
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/MessageHandling.cpp
+MessageHandling.hpp
+-
+Utils.hpp
+-
+
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/QProblem.cpp
+QProblem.hpp
+-
+stdio.h
+-
+
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/QProblemB.cpp
+QProblemB.hpp
+-
+stdio.h
+-
+
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/SubjectTo.cpp
+SubjectTo.hpp
+-
+
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Utils.cpp
+math.h
+-
+windows.h
+-
+sys/stat.h
+-
+sys/time.h
+-
+mex.h
+-
+Utils.hpp
+-
+
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/src/nonlinear_mpc.cc
+tf/transform_datatypes.h
+-
+mav_nonlinear_mpc/nonlinear_mpc.h
+-
+
+/opt/ros/noetic/include/gazebo_msgs/GetModelState.h
+ros/service_traits.h
+-
+gazebo_msgs/GetModelStateRequest.h
+-
+gazebo_msgs/GetModelStateResponse.h
+-
+
+/opt/ros/noetic/include/gazebo_msgs/GetModelStateRequest.h
+string
+-
+vector
+-
+memory
+-
+ros/types.h
+-
+ros/serialization.h
+-
+ros/builtin_message_traits.h
+-
+ros/message_operations.h
+-
+
+/opt/ros/noetic/include/gazebo_msgs/GetModelStateResponse.h
+string
+-
+vector
+-
+memory
+-
+ros/types.h
+-
+ros/serialization.h
+-
+ros/builtin_message_traits.h
+-
+ros/message_operations.h
+-
+std_msgs/Header.h
+-
+geometry_msgs/Pose.h
+-
+geometry_msgs/Twist.h
+-
+
+/opt/ros/noetic/include/ros/advertise_options.h
+ros/forwards.h
+/opt/ros/noetic/include/ros/ros/forwards.h
+ros/message_traits.h
+/opt/ros/noetic/include/ros/ros/message_traits.h
+common.h
+/opt/ros/noetic/include/ros/common.h
+
+/opt/ros/noetic/include/ros/advertise_service_options.h
+ros/forwards.h
+/opt/ros/noetic/include/ros/ros/forwards.h
+ros/service_callback_helper.h
+/opt/ros/noetic/include/ros/ros/service_callback_helper.h
+ros/service_traits.h
+/opt/ros/noetic/include/ros/ros/service_traits.h
+ros/message_traits.h
+/opt/ros/noetic/include/ros/ros/message_traits.h
+common.h
+/opt/ros/noetic/include/ros/common.h
+
+/opt/ros/noetic/include/ros/assert.h
+ros/console.h
+/opt/ros/noetic/include/ros/ros/console.h
+ros/static_assert.h
+/opt/ros/noetic/include/ros/ros/static_assert.h
+ros/platform.h
+-
+stdlib.h
+-
+
+/opt/ros/noetic/include/ros/builtin_message_traits.h
+message_traits.h
+/opt/ros/noetic/include/ros/message_traits.h
+ros/time.h
+/opt/ros/noetic/include/ros/ros/time.h
+
+/opt/ros/noetic/include/ros/common.h
+stdint.h
+-
+assert.h
+-
+stddef.h
+-
+string
+-
+ros/assert.h
+/opt/ros/noetic/include/ros/ros/assert.h
+ros/forwards.h
+/opt/ros/noetic/include/ros/ros/forwards.h
+ros/serialized_message.h
+/opt/ros/noetic/include/ros/ros/serialized_message.h
+boost/shared_array.hpp
+-
+ros/macros.h
+-
+
+/opt/ros/noetic/include/ros/console.h
+console_backend.h
+/opt/ros/noetic/include/ros/console_backend.h
+cstdio
+-
+sstream
+-
+ros/time.h
+-
+cstdarg
+-
+ros/macros.h
+-
+map
+-
+vector
+-
+log4cxx/level.h
+/opt/ros/noetic/include/ros/log4cxx/level.h
+rosconsole/macros_generated.h
+/opt/ros/noetic/include/ros/rosconsole/macros_generated.h
+
+/opt/ros/noetic/include/ros/console_backend.h
+ros/macros.h
+-
+
+/opt/ros/noetic/include/ros/datatypes.h
+string
+-
+vector
+-
+map
+-
+set
+-
+list
+-
+boost/shared_ptr.hpp
+-
+
+/opt/ros/noetic/include/ros/duration.h
+iostream
+-
+math.h
+-
+stdexcept
+-
+climits
+-
+stdint.h
+-
+rostime_decl.h
+/opt/ros/noetic/include/ros/rostime_decl.h
+
+/opt/ros/noetic/include/ros/exception.h
+stdexcept
+-
+
+/opt/ros/noetic/include/ros/exceptions.h
+ros/exception.h
+-
+
+/opt/ros/noetic/include/ros/forwards.h
+string
+-
+vector
+-
+map
+-
+set
+-
+list
+-
+boost/shared_ptr.hpp
+-
+boost/make_shared.hpp
+-
+boost/weak_ptr.hpp
+-
+boost/function.hpp
+-
+ros/time.h
+-
+ros/macros.h
+-
+exceptions.h
+/opt/ros/noetic/include/ros/exceptions.h
+ros/datatypes.h
+/opt/ros/noetic/include/ros/ros/datatypes.h
+
+/opt/ros/noetic/include/ros/init.h
+ros/forwards.h
+/opt/ros/noetic/include/ros/ros/forwards.h
+ros/spinner.h
+/opt/ros/noetic/include/ros/ros/spinner.h
+common.h
+/opt/ros/noetic/include/ros/common.h
+
+/opt/ros/noetic/include/ros/macros.h
+
+/opt/ros/noetic/include/ros/master.h
+forwards.h
+/opt/ros/noetic/include/ros/forwards.h
+xmlrpcpp/XmlRpcValue.h
+/opt/ros/noetic/include/ros/xmlrpcpp/XmlRpcValue.h
+common.h
+/opt/ros/noetic/include/ros/common.h
+
+/opt/ros/noetic/include/ros/message.h
+ros/macros.h
+/opt/ros/noetic/include/ros/ros/macros.h
+ros/assert.h
+/opt/ros/noetic/include/ros/ros/assert.h
+string
+-
+string.h
+-
+boost/shared_ptr.hpp
+-
+boost/array.hpp
+-
+stdint.h
+-
+
+/opt/ros/noetic/include/ros/message_event.h
+ros/time.h
+/opt/ros/noetic/include/ros/ros/time.h
+ros/datatypes.h
+-
+ros/message_traits.h
+-
+boost/type_traits/is_void.hpp
+-
+boost/type_traits/is_base_of.hpp
+-
+boost/type_traits/is_const.hpp
+-
+boost/type_traits/add_const.hpp
+-
+boost/type_traits/remove_const.hpp
+-
+boost/utility/enable_if.hpp
+-
+boost/function.hpp
+-
+boost/make_shared.hpp
+-
+
+/opt/ros/noetic/include/ros/message_forward.h
+cstddef
+-
+memory
+-
+
+/opt/ros/noetic/include/ros/message_operations.h
+ostream
+-
+
+/opt/ros/noetic/include/ros/message_traits.h
+message_forward.h
+/opt/ros/noetic/include/ros/message_forward.h
+ros/time.h
+-
+string
+-
+boost/utility/enable_if.hpp
+-
+boost/type_traits/remove_const.hpp
+-
+boost/type_traits/remove_reference.hpp
+-
+
+/opt/ros/noetic/include/ros/names.h
+forwards.h
+/opt/ros/noetic/include/ros/forwards.h
+common.h
+/opt/ros/noetic/include/ros/common.h
+
+/opt/ros/noetic/include/ros/node_handle.h
+ros/forwards.h
+/opt/ros/noetic/include/ros/ros/forwards.h
+ros/publisher.h
+/opt/ros/noetic/include/ros/ros/publisher.h
+ros/subscriber.h
+/opt/ros/noetic/include/ros/ros/subscriber.h
+ros/service_server.h
+/opt/ros/noetic/include/ros/ros/service_server.h
+ros/service_client.h
+/opt/ros/noetic/include/ros/ros/service_client.h
+ros/timer.h
+/opt/ros/noetic/include/ros/ros/timer.h
+ros/rate.h
+/opt/ros/noetic/include/ros/ros/rate.h
+ros/wall_timer.h
+/opt/ros/noetic/include/ros/ros/wall_timer.h
+ros/steady_timer.h
+/opt/ros/noetic/include/ros/ros/steady_timer.h
+ros/advertise_options.h
+/opt/ros/noetic/include/ros/ros/advertise_options.h
+ros/advertise_service_options.h
+/opt/ros/noetic/include/ros/ros/advertise_service_options.h
+ros/subscribe_options.h
+/opt/ros/noetic/include/ros/ros/subscribe_options.h
+ros/service_client_options.h
+/opt/ros/noetic/include/ros/ros/service_client_options.h
+ros/timer_options.h
+/opt/ros/noetic/include/ros/ros/timer_options.h
+ros/wall_timer_options.h
+/opt/ros/noetic/include/ros/ros/wall_timer_options.h
+ros/spinner.h
+/opt/ros/noetic/include/ros/ros/spinner.h
+ros/init.h
+/opt/ros/noetic/include/ros/ros/init.h
+common.h
+/opt/ros/noetic/include/ros/common.h
+boost/bind.hpp
+-
+xmlrpcpp/XmlRpcValue.h
+-
+
+/opt/ros/noetic/include/ros/param.h
+forwards.h
+/opt/ros/noetic/include/ros/forwards.h
+common.h
+/opt/ros/noetic/include/ros/common.h
+xmlrpcpp/XmlRpcValue.h
+/opt/ros/noetic/include/ros/xmlrpcpp/XmlRpcValue.h
+vector
+-
+map
+-
+
+/opt/ros/noetic/include/ros/parameter_adapter.h
+ros/forwards.h
+/opt/ros/noetic/include/ros/ros/forwards.h
+ros/message_event.h
+/opt/ros/noetic/include/ros/ros/message_event.h
+ros/static_assert.h
+-
+boost/type_traits/add_const.hpp
+-
+boost/type_traits/remove_const.hpp
+-
+boost/type_traits/remove_reference.hpp
+-
+
+/opt/ros/noetic/include/ros/platform.h
+stdlib.h
+-
+string
+-
+
+/opt/ros/noetic/include/ros/publisher.h
+ros/forwards.h
+/opt/ros/noetic/include/ros/ros/forwards.h
+ros/common.h
+/opt/ros/noetic/include/ros/ros/common.h
+ros/message.h
+/opt/ros/noetic/include/ros/ros/message.h
+ros/serialization.h
+/opt/ros/noetic/include/ros/ros/serialization.h
+boost/bind.hpp
+-
+boost/thread/mutex.hpp
+-
+
+/opt/ros/noetic/include/ros/rate.h
+ros/time.h
+/opt/ros/noetic/include/ros/ros/time.h
+rostime_decl.h
+/opt/ros/noetic/include/ros/rostime_decl.h
+
+/opt/ros/noetic/include/ros/ros.h
+ros/time.h
+/opt/ros/noetic/include/ros/ros/time.h
+ros/rate.h
+/opt/ros/noetic/include/ros/ros/rate.h
+ros/console.h
+/opt/ros/noetic/include/ros/ros/console.h
+ros/assert.h
+/opt/ros/noetic/include/ros/ros/assert.h
+ros/common.h
+/opt/ros/noetic/include/ros/ros/common.h
+ros/types.h
+/opt/ros/noetic/include/ros/ros/types.h
+ros/node_handle.h
+/opt/ros/noetic/include/ros/ros/node_handle.h
+ros/publisher.h
+/opt/ros/noetic/include/ros/ros/publisher.h
+ros/single_subscriber_publisher.h
+/opt/ros/noetic/include/ros/ros/single_subscriber_publisher.h
+ros/service_server.h
+/opt/ros/noetic/include/ros/ros/service_server.h
+ros/subscriber.h
+/opt/ros/noetic/include/ros/ros/subscriber.h
+ros/service.h
+/opt/ros/noetic/include/ros/ros/service.h
+ros/init.h
+/opt/ros/noetic/include/ros/ros/init.h
+ros/master.h
+/opt/ros/noetic/include/ros/ros/master.h
+ros/this_node.h
+/opt/ros/noetic/include/ros/ros/this_node.h
+ros/param.h
+/opt/ros/noetic/include/ros/ros/param.h
+ros/topic.h
+/opt/ros/noetic/include/ros/ros/topic.h
+ros/names.h
+/opt/ros/noetic/include/ros/ros/names.h
+
+/opt/ros/noetic/include/ros/roscpp_serialization_macros.h
+ros/macros.h
+-
+
+/opt/ros/noetic/include/ros/rostime_decl.h
+ros/macros.h
+-
+
+/opt/ros/noetic/include/ros/serialization.h
+roscpp_serialization_macros.h
+/opt/ros/noetic/include/ros/roscpp_serialization_macros.h
+ros/types.h
+-
+ros/time.h
+-
+serialized_message.h
+/opt/ros/noetic/include/ros/serialized_message.h
+ros/message_traits.h
+/opt/ros/noetic/include/ros/ros/message_traits.h
+ros/builtin_message_traits.h
+/opt/ros/noetic/include/ros/ros/builtin_message_traits.h
+ros/exception.h
+/opt/ros/noetic/include/ros/ros/exception.h
+ros/datatypes.h
+/opt/ros/noetic/include/ros/ros/datatypes.h
+vector
+-
+map
+-
+boost/array.hpp
+-
+boost/call_traits.hpp
+-
+boost/utility/enable_if.hpp
+-
+boost/mpl/and.hpp
+-
+boost/mpl/or.hpp
+-
+boost/mpl/not.hpp
+-
+cstring
+-
+
+/opt/ros/noetic/include/ros/serialized_message.h
+roscpp_serialization_macros.h
+/opt/ros/noetic/include/ros/roscpp_serialization_macros.h
+boost/shared_array.hpp
+-
+boost/shared_ptr.hpp
+-
+
+/opt/ros/noetic/include/ros/service.h
+string
+-
+ros/common.h
+/opt/ros/noetic/include/ros/ros/common.h
+ros/message.h
+/opt/ros/noetic/include/ros/ros/message.h
+ros/forwards.h
+/opt/ros/noetic/include/ros/ros/forwards.h
+ros/node_handle.h
+/opt/ros/noetic/include/ros/ros/node_handle.h
+ros/service_traits.h
+/opt/ros/noetic/include/ros/ros/service_traits.h
+ros/names.h
+/opt/ros/noetic/include/ros/ros/names.h
+boost/shared_ptr.hpp
+-
+
+/opt/ros/noetic/include/ros/service_callback_helper.h
+ros/forwards.h
+/opt/ros/noetic/include/ros/ros/forwards.h
+ros/common.h
+/opt/ros/noetic/include/ros/ros/common.h
+ros/message.h
+/opt/ros/noetic/include/ros/ros/message.h
+ros/message_traits.h
+/opt/ros/noetic/include/ros/ros/message_traits.h
+ros/service_traits.h
+/opt/ros/noetic/include/ros/ros/service_traits.h
+ros/serialization.h
+/opt/ros/noetic/include/ros/ros/serialization.h
+boost/type_traits/is_base_of.hpp
+-
+boost/utility/enable_if.hpp
+-
+
+/opt/ros/noetic/include/ros/service_client.h
+ros/forwards.h
+/opt/ros/noetic/include/ros/ros/forwards.h
+ros/common.h
+/opt/ros/noetic/include/ros/ros/common.h
+ros/service_traits.h
+/opt/ros/noetic/include/ros/ros/service_traits.h
+ros/serialization.h
+/opt/ros/noetic/include/ros/ros/serialization.h
+
+/opt/ros/noetic/include/ros/service_client_options.h
+ros/forwards.h
+/opt/ros/noetic/include/ros/ros/forwards.h
+common.h
+/opt/ros/noetic/include/ros/common.h
+ros/service_traits.h
+/opt/ros/noetic/include/ros/ros/service_traits.h
+
+/opt/ros/noetic/include/ros/service_server.h
+ros/forwards.h
+/opt/ros/noetic/include/ros/ros/forwards.h
+common.h
+/opt/ros/noetic/include/ros/common.h
+
+/opt/ros/noetic/include/ros/service_traits.h
+boost/type_traits/remove_reference.hpp
+-
+boost/type_traits/remove_const.hpp
+-
+
+/opt/ros/noetic/include/ros/single_subscriber_publisher.h
+ros/forwards.h
+/opt/ros/noetic/include/ros/ros/forwards.h
+ros/serialization.h
+/opt/ros/noetic/include/ros/ros/serialization.h
+common.h
+/opt/ros/noetic/include/ros/common.h
+boost/utility.hpp
+-
+
+/opt/ros/noetic/include/ros/spinner.h
+ros/types.h
+/opt/ros/noetic/include/ros/ros/types.h
+common.h
+/opt/ros/noetic/include/ros/common.h
+boost/shared_ptr.hpp
+-
+
+/opt/ros/noetic/include/ros/static_assert.h
+boost/static_assert.hpp
+-
+
+/opt/ros/noetic/include/ros/steady_timer.h
+common.h
+/opt/ros/noetic/include/ros/common.h
+forwards.h
+/opt/ros/noetic/include/ros/forwards.h
+steady_timer_options.h
+/opt/ros/noetic/include/ros/steady_timer_options.h
+
+/opt/ros/noetic/include/ros/steady_timer_options.h
+common.h
+/opt/ros/noetic/include/ros/common.h
+ros/forwards.h
+/opt/ros/noetic/include/ros/ros/forwards.h
+
+/opt/ros/noetic/include/ros/subscribe_options.h
+ros/forwards.h
+/opt/ros/noetic/include/ros/ros/forwards.h
+common.h
+/opt/ros/noetic/include/ros/common.h
+ros/transport_hints.h
+/opt/ros/noetic/include/ros/ros/transport_hints.h
+ros/message_traits.h
+/opt/ros/noetic/include/ros/ros/message_traits.h
+subscription_callback_helper.h
+/opt/ros/noetic/include/ros/subscription_callback_helper.h
+
+/opt/ros/noetic/include/ros/subscriber.h
+common.h
+/opt/ros/noetic/include/ros/common.h
+ros/forwards.h
+/opt/ros/noetic/include/ros/ros/forwards.h
+ros/subscription_callback_helper.h
+/opt/ros/noetic/include/ros/ros/subscription_callback_helper.h
+
+/opt/ros/noetic/include/ros/subscription_callback_helper.h
+typeinfo
+-
+common.h
+/opt/ros/noetic/include/ros/common.h
+ros/forwards.h
+/opt/ros/noetic/include/ros/ros/forwards.h
+ros/parameter_adapter.h
+/opt/ros/noetic/include/ros/ros/parameter_adapter.h
+ros/message_traits.h
+/opt/ros/noetic/include/ros/ros/message_traits.h
+ros/builtin_message_traits.h
+/opt/ros/noetic/include/ros/ros/builtin_message_traits.h
+ros/serialization.h
+/opt/ros/noetic/include/ros/ros/serialization.h
+ros/message_event.h
+/opt/ros/noetic/include/ros/ros/message_event.h
+ros/static_assert.h
+-
+boost/type_traits/add_const.hpp
+-
+boost/type_traits/remove_const.hpp
+-
+boost/type_traits/remove_reference.hpp
+-
+boost/type_traits/is_base_of.hpp
+-
+boost/utility/enable_if.hpp
+-
+boost/make_shared.hpp
+-
+
+/opt/ros/noetic/include/ros/this_node.h
+common.h
+/opt/ros/noetic/include/ros/common.h
+forwards.h
+/opt/ros/noetic/include/ros/forwards.h
+
+/opt/ros/noetic/include/ros/time.h
+ros/platform.h
+-
+iostream
+-
+cmath
+-
+ros/exception.h
+-
+duration.h
+/opt/ros/noetic/include/ros/duration.h
+boost/math/special_functions/round.hpp
+-
+rostime_decl.h
+/opt/ros/noetic/include/ros/rostime_decl.h
+sys/timeb.h
+-
+sys/time.h
+-
+
+/opt/ros/noetic/include/ros/timer.h
+common.h
+/opt/ros/noetic/include/ros/common.h
+forwards.h
+/opt/ros/noetic/include/ros/forwards.h
+timer_options.h
+/opt/ros/noetic/include/ros/timer_options.h
+
+/opt/ros/noetic/include/ros/timer_options.h
+common.h
+/opt/ros/noetic/include/ros/common.h
+ros/forwards.h
+/opt/ros/noetic/include/ros/ros/forwards.h
+
+/opt/ros/noetic/include/ros/topic.h
+common.h
+/opt/ros/noetic/include/ros/common.h
+node_handle.h
+/opt/ros/noetic/include/ros/node_handle.h
+boost/shared_ptr.hpp
+-
+
+/opt/ros/noetic/include/ros/transport_hints.h
+common.h
+/opt/ros/noetic/include/ros/common.h
+ros/forwards.h
+/opt/ros/noetic/include/ros/ros/forwards.h
+boost/lexical_cast.hpp
+-
+
+/opt/ros/noetic/include/ros/types.h
+stdint.h
+-
+
+/opt/ros/noetic/include/ros/wall_timer.h
+common.h
+/opt/ros/noetic/include/ros/common.h
+forwards.h
+/opt/ros/noetic/include/ros/forwards.h
+wall_timer_options.h
+/opt/ros/noetic/include/ros/wall_timer_options.h
+
+/opt/ros/noetic/include/ros/wall_timer_options.h
+common.h
+/opt/ros/noetic/include/ros/common.h
+ros/forwards.h
+/opt/ros/noetic/include/ros/ros/forwards.h
+
+/opt/ros/noetic/include/rosconsole/macros_generated.h
+
+/opt/ros/noetic/include/std_msgs/Header.h
+string
+-
+vector
+-
+memory
+-
+ros/types.h
+-
+ros/serialization.h
+-
+ros/builtin_message_traits.h
+-
+ros/message_operations.h
+-
+
+/opt/ros/noetic/include/std_srvs/Empty.h
+ros/service_traits.h
+-
+std_srvs/EmptyRequest.h
+-
+std_srvs/EmptyResponse.h
+-
+
+/opt/ros/noetic/include/std_srvs/EmptyRequest.h
+string
+-
+vector
+-
+memory
+-
+ros/types.h
+-
+ros/serialization.h
+-
+ros/builtin_message_traits.h
+-
+ros/message_operations.h
+-
+
+/opt/ros/noetic/include/std_srvs/EmptyResponse.h
+string
+-
+vector
+-
+memory
+-
+ros/types.h
+-
+ros/serialization.h
+-
+ros/builtin_message_traits.h
+-
+ros/message_operations.h
+-
+
+/opt/ros/noetic/include/tf/LinearMath/Matrix3x3.h
+Vector3.h
+/opt/ros/noetic/include/tf/LinearMath/Vector3.h
+Quaternion.h
+/opt/ros/noetic/include/tf/LinearMath/Quaternion.h
+ros/macros.h
+-
+
+/opt/ros/noetic/include/tf/LinearMath/MinMax.h
+
+/opt/ros/noetic/include/tf/LinearMath/QuadWord.h
+Scalar.h
+/opt/ros/noetic/include/tf/LinearMath/Scalar.h
+MinMax.h
+/opt/ros/noetic/include/tf/LinearMath/MinMax.h
+altivec.h
+-
+
+/opt/ros/noetic/include/tf/LinearMath/Quaternion.h
+Vector3.h
+/opt/ros/noetic/include/tf/LinearMath/Vector3.h
+QuadWord.h
+/opt/ros/noetic/include/tf/LinearMath/QuadWord.h
+ros/macros.h
+-
+
+/opt/ros/noetic/include/tf/LinearMath/Scalar.h
+math.h
+-
+stdlib.h
+-
+cstdlib
+-
+cfloat
+-
+float.h
+-
+ppcintrinsics.h
+-
+assert.h
+-
+assert.h
+-
+assert.h
+-
+assert.h
+-
+
+/opt/ros/noetic/include/tf/LinearMath/Transform.h
+Matrix3x3.h
+/opt/ros/noetic/include/tf/LinearMath/Matrix3x3.h
+
+/opt/ros/noetic/include/tf/LinearMath/Vector3.h
+Scalar.h
+/opt/ros/noetic/include/tf/LinearMath/Scalar.h
+MinMax.h
+/opt/ros/noetic/include/tf/LinearMath/MinMax.h
+
+/opt/ros/noetic/include/tf/transform_datatypes.h
+string
+-
+geometry_msgs/PointStamped.h
+/opt/ros/noetic/include/tf/geometry_msgs/PointStamped.h
+geometry_msgs/Vector3Stamped.h
+/opt/ros/noetic/include/tf/geometry_msgs/Vector3Stamped.h
+geometry_msgs/QuaternionStamped.h
+/opt/ros/noetic/include/tf/geometry_msgs/QuaternionStamped.h
+geometry_msgs/TransformStamped.h
+/opt/ros/noetic/include/tf/geometry_msgs/TransformStamped.h
+geometry_msgs/PoseStamped.h
+/opt/ros/noetic/include/tf/geometry_msgs/PoseStamped.h
+tf/LinearMath/Transform.h
+/opt/ros/noetic/include/tf/tf/LinearMath/Transform.h
+ros/time.h
+/opt/ros/noetic/include/tf/ros/time.h
+ros/console.h
+/opt/ros/noetic/include/tf/ros/console.h
+
+/opt/ros/noetic/include/xmlrpcpp/XmlRpcDecl.h
+ros/macros.h
+-
+
+/opt/ros/noetic/include/xmlrpcpp/XmlRpcValue.h
+xmlrpcpp/XmlRpcDecl.h
+/opt/ros/noetic/include/xmlrpcpp/xmlrpcpp/XmlRpcDecl.h
+map
+-
+string
+-
+vector
+-
+time.h
+-
+
+/usr/include/eigen3/Eigen/Cholesky
+Core
+/usr/include/eigen3/Eigen/Core
+Jacobi
+/usr/include/eigen3/Eigen/Jacobi
+src/Core/util/DisableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h
+src/Cholesky/LLT.h
+/usr/include/eigen3/Eigen/src/Cholesky/LLT.h
+src/Cholesky/LDLT.h
+/usr/include/eigen3/Eigen/src/Cholesky/LDLT.h
+mkl_lapacke.h
+/usr/include/eigen3/Eigen/mkl_lapacke.h
+src/misc/lapacke.h
+/usr/include/eigen3/Eigen/src/misc/lapacke.h
+src/Cholesky/LLT_LAPACKE.h
+/usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h
+src/Core/util/ReenableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h
+
+/usr/include/eigen3/Eigen/Core
+src/Core/util/DisableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h
+cuda_runtime.h
+-
+new
+-
+src/Core/util/Macros.h
+/usr/include/eigen3/Eigen/src/Core/util/Macros.h
+complex
+-
+src/Core/util/MKL_support.h
+/usr/include/eigen3/Eigen/src/Core/util/MKL_support.h
+malloc.h
+-
+immintrin.h
+-
+mmintrin.h
+-
+emmintrin.h
+-
+xmmintrin.h
+-
+pmmintrin.h
+-
+tmmintrin.h
+-
+smmintrin.h
+-
+nmmintrin.h
+-
+immintrin.h
+-
+altivec.h
+-
+altivec.h
+-
+arm_neon.h
+-
+vecintrin.h
+-
+vector_types.h
+-
+host_defines.h
+-
+cuda_fp16.h
+-
+omp.h
+-
+cerrno
+-
+cstddef
+-
+cstdlib
+-
+cmath
+-
+cassert
+-
+functional
+-
+iosfwd
+-
+cstring
+-
+string
+-
+limits
+-
+climits
+-
+algorithm
+-
+type_traits
+-
+iostream
+-
+intrin.h
+-
+src/Core/util/Constants.h
+/usr/include/eigen3/Eigen/src/Core/util/Constants.h
+src/Core/util/Meta.h
+/usr/include/eigen3/Eigen/src/Core/util/Meta.h
+src/Core/util/ForwardDeclarations.h
+/usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h
+src/Core/util/StaticAssert.h
+/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h
+src/Core/util/XprHelper.h
+/usr/include/eigen3/Eigen/src/Core/util/XprHelper.h
+src/Core/util/Memory.h
+/usr/include/eigen3/Eigen/src/Core/util/Memory.h
+src/Core/NumTraits.h
+/usr/include/eigen3/Eigen/src/Core/NumTraits.h
+src/Core/MathFunctions.h
+/usr/include/eigen3/Eigen/src/Core/MathFunctions.h
+src/Core/GenericPacketMath.h
+/usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h
+src/Core/MathFunctionsImpl.h
+/usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h
+src/Core/arch/Default/ConjHelper.h
+/usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h
+src/Core/arch/SSE/PacketMath.h
+/usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h
+src/Core/arch/AVX/PacketMath.h
+/usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h
+src/Core/arch/AVX512/PacketMath.h
+/usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h
+src/Core/arch/AVX512/MathFunctions.h
+/usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h
+src/Core/arch/SSE/PacketMath.h
+/usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h
+src/Core/arch/SSE/Complex.h
+/usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h
+src/Core/arch/SSE/MathFunctions.h
+/usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h
+src/Core/arch/AVX/PacketMath.h
+/usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h
+src/Core/arch/AVX/MathFunctions.h
+/usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h
+src/Core/arch/AVX/Complex.h
+/usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h
+src/Core/arch/AVX/TypeCasting.h
+/usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h
+src/Core/arch/SSE/TypeCasting.h
+/usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h
+src/Core/arch/SSE/PacketMath.h
+/usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h
+src/Core/arch/SSE/MathFunctions.h
+/usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h
+src/Core/arch/SSE/Complex.h
+/usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h
+src/Core/arch/SSE/TypeCasting.h
+/usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h
+src/Core/arch/AltiVec/PacketMath.h
+/usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h
+src/Core/arch/AltiVec/MathFunctions.h
+/usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h
+src/Core/arch/AltiVec/Complex.h
+/usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h
+src/Core/arch/NEON/PacketMath.h
+/usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h
+src/Core/arch/NEON/MathFunctions.h
+/usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h
+src/Core/arch/NEON/Complex.h
+/usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h
+src/Core/arch/ZVector/PacketMath.h
+/usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h
+src/Core/arch/ZVector/MathFunctions.h
+/usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h
+src/Core/arch/ZVector/Complex.h
+/usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h
+src/Core/arch/CUDA/Half.h
+/usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h
+src/Core/arch/CUDA/PacketMathHalf.h
+/usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h
+src/Core/arch/CUDA/TypeCasting.h
+/usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h
+src/Core/arch/CUDA/PacketMath.h
+/usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h
+src/Core/arch/CUDA/MathFunctions.h
+/usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h
+src/Core/arch/Default/Settings.h
+/usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h
+src/Core/functors/TernaryFunctors.h
+/usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h
+src/Core/functors/BinaryFunctors.h
+/usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h
+src/Core/functors/UnaryFunctors.h
+/usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h
+src/Core/functors/NullaryFunctors.h
+/usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h
+src/Core/functors/StlFunctors.h
+/usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h
+src/Core/functors/AssignmentFunctors.h
+/usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h
+src/Core/arch/CUDA/Complex.h
+/usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h
+src/Core/IO.h
+/usr/include/eigen3/Eigen/src/Core/IO.h
+src/Core/DenseCoeffsBase.h
+/usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h
+src/Core/DenseBase.h
+/usr/include/eigen3/Eigen/src/Core/DenseBase.h
+src/Core/MatrixBase.h
+/usr/include/eigen3/Eigen/src/Core/MatrixBase.h
+src/Core/EigenBase.h
+/usr/include/eigen3/Eigen/src/Core/EigenBase.h
+src/Core/Product.h
+/usr/include/eigen3/Eigen/src/Core/Product.h
+src/Core/CoreEvaluators.h
+/usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h
+src/Core/AssignEvaluator.h
+/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h
+src/Core/Assign.h
+/usr/include/eigen3/Eigen/src/Core/Assign.h
+src/Core/ArrayBase.h
+/usr/include/eigen3/Eigen/src/Core/ArrayBase.h
+src/Core/util/BlasUtil.h
+/usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h
+src/Core/DenseStorage.h
+/usr/include/eigen3/Eigen/src/Core/DenseStorage.h
+src/Core/NestByValue.h
+/usr/include/eigen3/Eigen/src/Core/NestByValue.h
+src/Core/ReturnByValue.h
+/usr/include/eigen3/Eigen/src/Core/ReturnByValue.h
+src/Core/NoAlias.h
+/usr/include/eigen3/Eigen/src/Core/NoAlias.h
+src/Core/PlainObjectBase.h
+/usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h
+src/Core/Matrix.h
+/usr/include/eigen3/Eigen/src/Core/Matrix.h
+src/Core/Array.h
+/usr/include/eigen3/Eigen/src/Core/Array.h
+src/Core/CwiseTernaryOp.h
+/usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h
+src/Core/CwiseBinaryOp.h
+/usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h
+src/Core/CwiseUnaryOp.h
+/usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h
+src/Core/CwiseNullaryOp.h
+/usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h
+src/Core/CwiseUnaryView.h
+/usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h
+src/Core/SelfCwiseBinaryOp.h
+/usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h
+src/Core/Dot.h
+/usr/include/eigen3/Eigen/src/Core/Dot.h
+src/Core/StableNorm.h
+/usr/include/eigen3/Eigen/src/Core/StableNorm.h
+src/Core/Stride.h
+/usr/include/eigen3/Eigen/src/Core/Stride.h
+src/Core/MapBase.h
+/usr/include/eigen3/Eigen/src/Core/MapBase.h
+src/Core/Map.h
+/usr/include/eigen3/Eigen/src/Core/Map.h
+src/Core/Ref.h
+/usr/include/eigen3/Eigen/src/Core/Ref.h
+src/Core/Block.h
+/usr/include/eigen3/Eigen/src/Core/Block.h
+src/Core/VectorBlock.h
+/usr/include/eigen3/Eigen/src/Core/VectorBlock.h
+src/Core/Transpose.h
+/usr/include/eigen3/Eigen/src/Core/Transpose.h
+src/Core/DiagonalMatrix.h
+/usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h
+src/Core/Diagonal.h
+/usr/include/eigen3/Eigen/src/Core/Diagonal.h
+src/Core/DiagonalProduct.h
+/usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h
+src/Core/Redux.h
+/usr/include/eigen3/Eigen/src/Core/Redux.h
+src/Core/Visitor.h
+/usr/include/eigen3/Eigen/src/Core/Visitor.h
+src/Core/Fuzzy.h
+/usr/include/eigen3/Eigen/src/Core/Fuzzy.h
+src/Core/Swap.h
+/usr/include/eigen3/Eigen/src/Core/Swap.h
+src/Core/CommaInitializer.h
+/usr/include/eigen3/Eigen/src/Core/CommaInitializer.h
+src/Core/GeneralProduct.h
+/usr/include/eigen3/Eigen/src/Core/GeneralProduct.h
+src/Core/Solve.h
+/usr/include/eigen3/Eigen/src/Core/Solve.h
+src/Core/Inverse.h
+/usr/include/eigen3/Eigen/src/Core/Inverse.h
+src/Core/SolverBase.h
+/usr/include/eigen3/Eigen/src/Core/SolverBase.h
+src/Core/PermutationMatrix.h
+/usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h
+src/Core/Transpositions.h
+/usr/include/eigen3/Eigen/src/Core/Transpositions.h
+src/Core/TriangularMatrix.h
+/usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h
+src/Core/SelfAdjointView.h
+/usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h
+src/Core/products/GeneralBlockPanelKernel.h
+/usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h
+src/Core/products/Parallelizer.h
+/usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h
+src/Core/ProductEvaluators.h
+/usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h
+src/Core/products/GeneralMatrixVector.h
+/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h
+src/Core/products/GeneralMatrixMatrix.h
+/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h
+src/Core/SolveTriangular.h
+/usr/include/eigen3/Eigen/src/Core/SolveTriangular.h
+src/Core/products/GeneralMatrixMatrixTriangular.h
+/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h
+src/Core/products/SelfadjointMatrixVector.h
+/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h
+src/Core/products/SelfadjointMatrixMatrix.h
+/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h
+src/Core/products/SelfadjointProduct.h
+/usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h
+src/Core/products/SelfadjointRank2Update.h
+/usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h
+src/Core/products/TriangularMatrixVector.h
+/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h
+src/Core/products/TriangularMatrixMatrix.h
+/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h
+src/Core/products/TriangularSolverMatrix.h
+/usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h
+src/Core/products/TriangularSolverVector.h
+/usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h
+src/Core/BandMatrix.h
+/usr/include/eigen3/Eigen/src/Core/BandMatrix.h
+src/Core/CoreIterators.h
+/usr/include/eigen3/Eigen/src/Core/CoreIterators.h
+src/Core/ConditionEstimator.h
+/usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h
+src/Core/BooleanRedux.h
+/usr/include/eigen3/Eigen/src/Core/BooleanRedux.h
+src/Core/Select.h
+/usr/include/eigen3/Eigen/src/Core/Select.h
+src/Core/VectorwiseOp.h
+/usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h
+src/Core/Random.h
+/usr/include/eigen3/Eigen/src/Core/Random.h
+src/Core/Replicate.h
+/usr/include/eigen3/Eigen/src/Core/Replicate.h
+src/Core/Reverse.h
+/usr/include/eigen3/Eigen/src/Core/Reverse.h
+src/Core/ArrayWrapper.h
+/usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h
+src/Core/products/GeneralMatrixMatrix_BLAS.h
+/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h
+src/Core/products/GeneralMatrixVector_BLAS.h
+/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h
+src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h
+/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h
+src/Core/products/SelfadjointMatrixMatrix_BLAS.h
+/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h
+src/Core/products/SelfadjointMatrixVector_BLAS.h
+/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h
+src/Core/products/TriangularMatrixMatrix_BLAS.h
+/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h
+src/Core/products/TriangularMatrixVector_BLAS.h
+/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h
+src/Core/products/TriangularSolverMatrix_BLAS.h
+/usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h
+src/Core/Assign_MKL.h
+/usr/include/eigen3/Eigen/src/Core/Assign_MKL.h
+src/Core/GlobalFunctions.h
+/usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h
+src/Core/util/ReenableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h
+
+/usr/include/eigen3/Eigen/Dense
+Core
+/usr/include/eigen3/Eigen/Core
+LU
+/usr/include/eigen3/Eigen/LU
+Cholesky
+/usr/include/eigen3/Eigen/Cholesky
+QR
+/usr/include/eigen3/Eigen/QR
+SVD
+/usr/include/eigen3/Eigen/SVD
+Geometry
+/usr/include/eigen3/Eigen/Geometry
+Eigenvalues
+/usr/include/eigen3/Eigen/Eigenvalues
+
+/usr/include/eigen3/Eigen/Eigen
+Dense
+/usr/include/eigen3/Eigen/Dense
+Sparse
+/usr/include/eigen3/Eigen/Sparse
+
+/usr/include/eigen3/Eigen/Eigenvalues
+Core
+/usr/include/eigen3/Eigen/Core
+src/Core/util/DisableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h
+Cholesky
+/usr/include/eigen3/Eigen/Cholesky
+Jacobi
+/usr/include/eigen3/Eigen/Jacobi
+Householder
+/usr/include/eigen3/Eigen/Householder
+LU
+/usr/include/eigen3/Eigen/LU
+Geometry
+/usr/include/eigen3/Eigen/Geometry
+src/misc/RealSvd2x2.h
+/usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h
+src/Eigenvalues/Tridiagonalization.h
+/usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h
+src/Eigenvalues/RealSchur.h
+/usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h
+src/Eigenvalues/EigenSolver.h
+/usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h
+src/Eigenvalues/SelfAdjointEigenSolver.h
+/usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h
+src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h
+/usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h
+src/Eigenvalues/HessenbergDecomposition.h
+/usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h
+src/Eigenvalues/ComplexSchur.h
+/usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h
+src/Eigenvalues/ComplexEigenSolver.h
+/usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h
+src/Eigenvalues/RealQZ.h
+/usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h
+src/Eigenvalues/GeneralizedEigenSolver.h
+/usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h
+src/Eigenvalues/MatrixBaseEigenvalues.h
+/usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h
+mkl_lapacke.h
+/usr/include/eigen3/Eigen/mkl_lapacke.h
+src/misc/lapacke.h
+/usr/include/eigen3/Eigen/src/misc/lapacke.h
+src/Eigenvalues/RealSchur_LAPACKE.h
+/usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h
+src/Eigenvalues/ComplexSchur_LAPACKE.h
+/usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h
+src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h
+/usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h
+src/Core/util/ReenableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h
+
+/usr/include/eigen3/Eigen/Geometry
+Core
+/usr/include/eigen3/Eigen/Core
+src/Core/util/DisableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h
+SVD
+/usr/include/eigen3/Eigen/SVD
+LU
+/usr/include/eigen3/Eigen/LU
+limits
+-
+src/Geometry/OrthoMethods.h
+/usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h
+src/Geometry/EulerAngles.h
+/usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h
+src/Geometry/Homogeneous.h
+/usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h
+src/Geometry/RotationBase.h
+/usr/include/eigen3/Eigen/src/Geometry/RotationBase.h
+src/Geometry/Rotation2D.h
+/usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h
+src/Geometry/Quaternion.h
+/usr/include/eigen3/Eigen/src/Geometry/Quaternion.h
+src/Geometry/AngleAxis.h
+/usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h
+src/Geometry/Transform.h
+/usr/include/eigen3/Eigen/src/Geometry/Transform.h
+src/Geometry/Translation.h
+/usr/include/eigen3/Eigen/src/Geometry/Translation.h
+src/Geometry/Scaling.h
+/usr/include/eigen3/Eigen/src/Geometry/Scaling.h
+src/Geometry/Hyperplane.h
+/usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h
+src/Geometry/ParametrizedLine.h
+/usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h
+src/Geometry/AlignedBox.h
+/usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h
+src/Geometry/Umeyama.h
+/usr/include/eigen3/Eigen/src/Geometry/Umeyama.h
+src/Geometry/arch/Geometry_SSE.h
+/usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h
+src/Core/util/ReenableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h
+
+/usr/include/eigen3/Eigen/Householder
+Core
+/usr/include/eigen3/Eigen/Core
+src/Core/util/DisableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h
+src/Householder/Householder.h
+/usr/include/eigen3/Eigen/src/Householder/Householder.h
+src/Householder/HouseholderSequence.h
+/usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h
+src/Householder/BlockHouseholder.h
+/usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h
+src/Core/util/ReenableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h
+
+/usr/include/eigen3/Eigen/IterativeLinearSolvers
+SparseCore
+/usr/include/eigen3/Eigen/SparseCore
+OrderingMethods
+/usr/include/eigen3/Eigen/OrderingMethods
+src/Core/util/DisableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h
+Eigen/IterativeLinearSolvers
+-
+src/IterativeLinearSolvers/SolveWithGuess.h
+/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h
+src/IterativeLinearSolvers/IterativeSolverBase.h
+/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h
+src/IterativeLinearSolvers/BasicPreconditioners.h
+/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h
+src/IterativeLinearSolvers/ConjugateGradient.h
+/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h
+src/IterativeLinearSolvers/LeastSquareConjugateGradient.h
+/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h
+src/IterativeLinearSolvers/BiCGSTAB.h
+/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h
+src/IterativeLinearSolvers/IncompleteLUT.h
+/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h
+src/IterativeLinearSolvers/IncompleteCholesky.h
+/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h
+src/Core/util/ReenableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h
+
+/usr/include/eigen3/Eigen/Jacobi
+Core
+/usr/include/eigen3/Eigen/Core
+src/Core/util/DisableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h
+src/Jacobi/Jacobi.h
+/usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h
+src/Core/util/ReenableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h
+
+/usr/include/eigen3/Eigen/LU
+Core
+/usr/include/eigen3/Eigen/Core
+src/Core/util/DisableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h
+src/misc/Kernel.h
+/usr/include/eigen3/Eigen/src/misc/Kernel.h
+src/misc/Image.h
+/usr/include/eigen3/Eigen/src/misc/Image.h
+src/LU/FullPivLU.h
+/usr/include/eigen3/Eigen/src/LU/FullPivLU.h
+src/LU/PartialPivLU.h
+/usr/include/eigen3/Eigen/src/LU/PartialPivLU.h
+mkl_lapacke.h
+/usr/include/eigen3/Eigen/mkl_lapacke.h
+src/misc/lapacke.h
+/usr/include/eigen3/Eigen/src/misc/lapacke.h
+src/LU/PartialPivLU_LAPACKE.h
+/usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h
+src/LU/Determinant.h
+/usr/include/eigen3/Eigen/src/LU/Determinant.h
+src/LU/InverseImpl.h
+/usr/include/eigen3/Eigen/src/LU/InverseImpl.h
+src/LU/arch/Inverse_SSE.h
+/usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h
+src/Core/util/ReenableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h
+
+/usr/include/eigen3/Eigen/OrderingMethods
+SparseCore
+/usr/include/eigen3/Eigen/SparseCore
+src/Core/util/DisableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h
+src/OrderingMethods/Amd.h
+/usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h
+src/OrderingMethods/Ordering.h
+/usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h
+src/Core/util/ReenableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h
+
+/usr/include/eigen3/Eigen/QR
+Core
+/usr/include/eigen3/Eigen/Core
+src/Core/util/DisableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h
+Cholesky
+/usr/include/eigen3/Eigen/Cholesky
+Jacobi
+/usr/include/eigen3/Eigen/Jacobi
+Householder
+/usr/include/eigen3/Eigen/Householder
+src/QR/HouseholderQR.h
+/usr/include/eigen3/Eigen/src/QR/HouseholderQR.h
+src/QR/FullPivHouseholderQR.h
+/usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h
+src/QR/ColPivHouseholderQR.h
+/usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h
+src/QR/CompleteOrthogonalDecomposition.h
+/usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h
+mkl_lapacke.h
+/usr/include/eigen3/Eigen/mkl_lapacke.h
+src/misc/lapacke.h
+/usr/include/eigen3/Eigen/src/misc/lapacke.h
+src/QR/HouseholderQR_LAPACKE.h
+/usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h
+src/QR/ColPivHouseholderQR_LAPACKE.h
+/usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h
+src/Core/util/ReenableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h
+
+/usr/include/eigen3/Eigen/SVD
+QR
+/usr/include/eigen3/Eigen/QR
+Householder
+/usr/include/eigen3/Eigen/Householder
+Jacobi
+/usr/include/eigen3/Eigen/Jacobi
+src/Core/util/DisableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h
+src/misc/RealSvd2x2.h
+/usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h
+src/SVD/UpperBidiagonalization.h
+/usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h
+src/SVD/SVDBase.h
+/usr/include/eigen3/Eigen/src/SVD/SVDBase.h
+src/SVD/JacobiSVD.h
+/usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h
+src/SVD/BDCSVD.h
+/usr/include/eigen3/Eigen/src/SVD/BDCSVD.h
+mkl_lapacke.h
+/usr/include/eigen3/Eigen/mkl_lapacke.h
+src/misc/lapacke.h
+/usr/include/eigen3/Eigen/src/misc/lapacke.h
+src/SVD/JacobiSVD_LAPACKE.h
+/usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h
+src/Core/util/ReenableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h
+
+/usr/include/eigen3/Eigen/Sparse
+Eigen/Sparse
+-
+SparseCore
+/usr/include/eigen3/Eigen/SparseCore
+OrderingMethods
+/usr/include/eigen3/Eigen/OrderingMethods
+SparseCholesky
+/usr/include/eigen3/Eigen/SparseCholesky
+SparseLU
+/usr/include/eigen3/Eigen/SparseLU
+SparseQR
+/usr/include/eigen3/Eigen/SparseQR
+IterativeLinearSolvers
+/usr/include/eigen3/Eigen/IterativeLinearSolvers
+
+/usr/include/eigen3/Eigen/SparseCholesky
+SparseCore
+/usr/include/eigen3/Eigen/SparseCore
+OrderingMethods
+/usr/include/eigen3/Eigen/OrderingMethods
+src/Core/util/DisableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h
+src/SparseCholesky/SimplicialCholesky.h
+/usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h
+src/SparseCholesky/SimplicialCholesky_impl.h
+/usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h
+src/Core/util/ReenableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h
+
+/usr/include/eigen3/Eigen/SparseCore
+Core
+/usr/include/eigen3/Eigen/Core
+src/Core/util/DisableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h
+vector
+-
+map
+-
+cstdlib
+-
+cstring
+-
+algorithm
+-
+src/SparseCore/SparseUtil.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h
+src/SparseCore/SparseMatrixBase.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h
+src/SparseCore/SparseAssign.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h
+src/SparseCore/CompressedStorage.h
+/usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h
+src/SparseCore/AmbiVector.h
+/usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h
+src/SparseCore/SparseCompressedBase.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h
+src/SparseCore/SparseMatrix.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h
+src/SparseCore/SparseMap.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h
+src/SparseCore/MappedSparseMatrix.h
+/usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h
+src/SparseCore/SparseVector.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h
+src/SparseCore/SparseRef.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h
+src/SparseCore/SparseCwiseUnaryOp.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h
+src/SparseCore/SparseCwiseBinaryOp.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h
+src/SparseCore/SparseTranspose.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h
+src/SparseCore/SparseBlock.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h
+src/SparseCore/SparseDot.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h
+src/SparseCore/SparseRedux.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h
+src/SparseCore/SparseView.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseView.h
+src/SparseCore/SparseDiagonalProduct.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h
+src/SparseCore/ConservativeSparseSparseProduct.h
+/usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h
+src/SparseCore/SparseSparseProductWithPruning.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h
+src/SparseCore/SparseProduct.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h
+src/SparseCore/SparseDenseProduct.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h
+src/SparseCore/SparseSelfAdjointView.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h
+src/SparseCore/SparseTriangularView.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h
+src/SparseCore/TriangularSolver.h
+/usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h
+src/SparseCore/SparsePermutation.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h
+src/SparseCore/SparseFuzzy.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h
+src/SparseCore/SparseSolverBase.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h
+src/Core/util/ReenableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h
+
+/usr/include/eigen3/Eigen/SparseLU
+SparseCore
+/usr/include/eigen3/Eigen/SparseCore
+OrderingMethods
+/usr/include/eigen3/Eigen/OrderingMethods
+src/SparseLU/SparseLU_gemm_kernel.h
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h
+src/SparseLU/SparseLU_Structs.h
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h
+src/SparseLU/SparseLU_SupernodalMatrix.h
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h
+src/SparseLU/SparseLUImpl.h
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h
+src/SparseCore/SparseColEtree.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h
+src/SparseLU/SparseLU_Memory.h
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h
+src/SparseLU/SparseLU_heap_relax_snode.h
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h
+src/SparseLU/SparseLU_relax_snode.h
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h
+src/SparseLU/SparseLU_pivotL.h
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h
+src/SparseLU/SparseLU_panel_dfs.h
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h
+src/SparseLU/SparseLU_kernel_bmod.h
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h
+src/SparseLU/SparseLU_panel_bmod.h
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h
+src/SparseLU/SparseLU_column_dfs.h
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h
+src/SparseLU/SparseLU_column_bmod.h
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h
+src/SparseLU/SparseLU_copy_to_ucol.h
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h
+src/SparseLU/SparseLU_pruneL.h
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h
+src/SparseLU/SparseLU_Utils.h
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h
+src/SparseLU/SparseLU.h
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h
+
+/usr/include/eigen3/Eigen/SparseQR
+SparseCore
+/usr/include/eigen3/Eigen/SparseCore
+OrderingMethods
+/usr/include/eigen3/Eigen/OrderingMethods
+src/Core/util/DisableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h
+OrderingMethods
+/usr/include/eigen3/Eigen/OrderingMethods
+src/SparseCore/SparseColEtree.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h
+src/SparseQR/SparseQR.h
+/usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h
+src/Core/util/ReenableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h
+
+/usr/include/eigen3/Eigen/src/Cholesky/LDLT.h
+
+/usr/include/eigen3/Eigen/src/Cholesky/LLT.h
+
+/usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h
+
+/usr/include/eigen3/Eigen/src/Core/Array.h
+
+/usr/include/eigen3/Eigen/src/Core/ArrayBase.h
+../plugins/CommonCwiseUnaryOps.h
+/usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h
+../plugins/MatrixCwiseUnaryOps.h
+/usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h
+../plugins/ArrayCwiseUnaryOps.h
+/usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h
+../plugins/CommonCwiseBinaryOps.h
+/usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h
+../plugins/MatrixCwiseBinaryOps.h
+/usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h
+../plugins/ArrayCwiseBinaryOps.h
+/usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h
+
+/usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h
+
+/usr/include/eigen3/Eigen/src/Core/Assign.h
+
+/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h
+
+/usr/include/eigen3/Eigen/src/Core/Assign_MKL.h
+
+/usr/include/eigen3/Eigen/src/Core/BandMatrix.h
+
+/usr/include/eigen3/Eigen/src/Core/Block.h
+
+/usr/include/eigen3/Eigen/src/Core/BooleanRedux.h
+
+/usr/include/eigen3/Eigen/src/Core/CommaInitializer.h
+
+/usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h
+
+/usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h
+
+/usr/include/eigen3/Eigen/src/Core/CoreIterators.h
+
+/usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h
+
+/usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h
+
+/usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h
+
+/usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h
+
+/usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h
+
+/usr/include/eigen3/Eigen/src/Core/DenseBase.h
+../plugins/BlockMethods.h
+/usr/include/eigen3/Eigen/src/plugins/BlockMethods.h
+
+/usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h
+
+/usr/include/eigen3/Eigen/src/Core/DenseStorage.h
+
+/usr/include/eigen3/Eigen/src/Core/Diagonal.h
+
+/usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h
+
+/usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h
+
+/usr/include/eigen3/Eigen/src/Core/Dot.h
+
+/usr/include/eigen3/Eigen/src/Core/EigenBase.h
+
+/usr/include/eigen3/Eigen/src/Core/Fuzzy.h
+
+/usr/include/eigen3/Eigen/src/Core/GeneralProduct.h
+
+/usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h
+
+/usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h
+
+/usr/include/eigen3/Eigen/src/Core/IO.h
+
+/usr/include/eigen3/Eigen/src/Core/Inverse.h
+
+/usr/include/eigen3/Eigen/src/Core/Map.h
+
+/usr/include/eigen3/Eigen/src/Core/MapBase.h
+
+/usr/include/eigen3/Eigen/src/Core/MathFunctions.h
+
+/usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h
+
+/usr/include/eigen3/Eigen/src/Core/Matrix.h
+
+/usr/include/eigen3/Eigen/src/Core/MatrixBase.h
+../plugins/CommonCwiseUnaryOps.h
+/usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h
+../plugins/CommonCwiseBinaryOps.h
+/usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h
+../plugins/MatrixCwiseUnaryOps.h
+/usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h
+../plugins/MatrixCwiseBinaryOps.h
+/usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h
+
+/usr/include/eigen3/Eigen/src/Core/NestByValue.h
+
+/usr/include/eigen3/Eigen/src/Core/NoAlias.h
+
+/usr/include/eigen3/Eigen/src/Core/NumTraits.h
+
+/usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h
+
+/usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h
+
+/usr/include/eigen3/Eigen/src/Core/Product.h
+
+/usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h
+
+/usr/include/eigen3/Eigen/src/Core/Random.h
+
+/usr/include/eigen3/Eigen/src/Core/Redux.h
+
+/usr/include/eigen3/Eigen/src/Core/Ref.h
+
+/usr/include/eigen3/Eigen/src/Core/Replicate.h
+
+/usr/include/eigen3/Eigen/src/Core/ReturnByValue.h
+
+/usr/include/eigen3/Eigen/src/Core/Reverse.h
+
+/usr/include/eigen3/Eigen/src/Core/Select.h
+
+/usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h
+
+/usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h
+
+/usr/include/eigen3/Eigen/src/Core/Solve.h
+
+/usr/include/eigen3/Eigen/src/Core/SolveTriangular.h
+
+/usr/include/eigen3/Eigen/src/Core/SolverBase.h
+
+/usr/include/eigen3/Eigen/src/Core/StableNorm.h
+
+/usr/include/eigen3/Eigen/src/Core/Stride.h
+
+/usr/include/eigen3/Eigen/src/Core/Swap.h
+
+/usr/include/eigen3/Eigen/src/Core/Transpose.h
+
+/usr/include/eigen3/Eigen/src/Core/Transpositions.h
+
+/usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h
+
+/usr/include/eigen3/Eigen/src/Core/VectorBlock.h
+
+/usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h
+
+/usr/include/eigen3/Eigen/src/Core/Visitor.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h
+stdint.h
+-
+
+/usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h
+
+/usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h
+
+/usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h
+
+/usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h
+
+/usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h
+
+/usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h
+
+/usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h
+
+/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h
+
+/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h
+
+/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h
+
+/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h
+
+/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h
+
+/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h
+
+/usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h
+
+/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h
+
+/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h
+
+/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h
+
+/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h
+
+/usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h
+
+/usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h
+
+/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h
+
+/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h
+
+/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h
+
+/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h
+
+/usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h
+
+/usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h
+
+/usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h
+
+/usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h
+
+/usr/include/eigen3/Eigen/src/Core/util/Constants.h
+
+/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h
+
+/usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h
+
+/usr/include/eigen3/Eigen/src/Core/util/MKL_support.h
+mkl.h
+-
+../../misc/blas.h
+/usr/include/eigen3/Eigen/src/misc/blas.h
+
+/usr/include/eigen3/Eigen/src/Core/util/Macros.h
+cstdlib
+-
+iostream
+-
+
+/usr/include/eigen3/Eigen/src/Core/util/Memory.h
+
+/usr/include/eigen3/Eigen/src/Core/util/Meta.h
+cfloat
+-
+math_constants.h
+-
+cstdint
+-
+
+/usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h
+
+/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h
+
+/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h
+
+/usr/include/eigen3/Eigen/src/Core/util/XprHelper.h
+
+/usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h
+./ComplexSchur.h
+/usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h
+
+/usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h
+./HessenbergDecomposition.h
+/usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h
+
+/usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h
+
+/usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h
+./RealSchur.h
+/usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h
+
+/usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h
+./RealQZ.h
+/usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h
+
+/usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h
+./Tridiagonalization.h
+/usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h
+
+/usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h
+
+/usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h
+
+/usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h
+
+/usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h
+./HessenbergDecomposition.h
+/usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h
+
+/usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h
+
+/usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h
+./Tridiagonalization.h
+/usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h
+
+/usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h
+
+/usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h
+
+/usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h
+
+/usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h
+
+/usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h
+
+/usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h
+
+/usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h
+
+/usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h
+
+/usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h
+
+/usr/include/eigen3/Eigen/src/Geometry/Quaternion.h
+
+/usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h
+
+/usr/include/eigen3/Eigen/src/Geometry/RotationBase.h
+
+/usr/include/eigen3/Eigen/src/Geometry/Scaling.h
+
+/usr/include/eigen3/Eigen/src/Geometry/Transform.h
+
+/usr/include/eigen3/Eigen/src/Geometry/Translation.h
+
+/usr/include/eigen3/Eigen/src/Geometry/Umeyama.h
+
+/usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h
+
+/usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h
+
+/usr/include/eigen3/Eigen/src/Householder/Householder.h
+
+/usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h
+
+/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h
+
+/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h
+
+/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h
+
+/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h
+vector
+-
+list
+-
+
+/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h
+
+/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h
+
+/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h
+
+/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h
+
+/usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h
+
+/usr/include/eigen3/Eigen/src/LU/Determinant.h
+
+/usr/include/eigen3/Eigen/src/LU/FullPivLU.h
+
+/usr/include/eigen3/Eigen/src/LU/InverseImpl.h
+
+/usr/include/eigen3/Eigen/src/LU/PartialPivLU.h
+
+/usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h
+
+/usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h
+
+/usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h
+../Core/util/NonMPL2.h
+/usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h
+
+/usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h
+
+/usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h
+Eigen_Colamd.h
+/usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h
+
+/usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h
+
+/usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h
+
+/usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h
+
+/usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h
+
+/usr/include/eigen3/Eigen/src/QR/HouseholderQR.h
+
+/usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h
+
+/usr/include/eigen3/Eigen/src/SVD/BDCSVD.h
+
+/usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h
+
+/usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h
+
+/usr/include/eigen3/Eigen/src/SVD/SVDBase.h
+
+/usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h
+
+/usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h
+
+/usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h
+../Core/util/NonMPL2.h
+/usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h
+../plugins/CommonCwiseUnaryOps.h
+/usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h
+../plugins/CommonCwiseBinaryOps.h
+/usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h
+../plugins/MatrixCwiseUnaryOps.h
+/usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h
+../plugins/MatrixCwiseBinaryOps.h
+/usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h
+../plugins/BlockMethods.h
+/usr/include/eigen3/Eigen/src/plugins/BlockMethods.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseView.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h
+
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h
+
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h
+
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h
+
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h
+
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h
+
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h
+
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h
+
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h
+
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h
+
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h
+
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h
+
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h
+
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h
+
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h
+
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h
+
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h
+
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h
+
+/usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h
+
+/usr/include/eigen3/Eigen/src/misc/Image.h
+
+/usr/include/eigen3/Eigen/src/misc/Kernel.h
+
+/usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h
+
+/usr/include/eigen3/Eigen/src/misc/blas.h
+
+/usr/include/eigen3/Eigen/src/misc/lapacke.h
+lapacke_config.h
+/usr/include/eigen3/Eigen/src/misc/lapacke_config.h
+stdlib.h
+-
+complex.h
+-
+complex.h
+-
+lapacke_mangling.h
+/usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h
+
+/usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h
+
+/usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h
+
+/usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h
+
+/usr/include/eigen3/Eigen/src/plugins/BlockMethods.h
+
+/usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h
+
+/usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h
+
+/usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h
+
+/usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h
+
+acado_auxiliary_functions.h
+acado_common.h
+acado_common.h
+Windows.h
+-
+unistd.h
+unistd.h
+mach/mach_time.h
+-
+time.h
+-
+sys/stat.h
+-
+sys/time.h
+-
+
+acado_common.h
+math.h
+-
+string.h
+-
+acado_qpoases_interface.hpp
+acado_qpoases_interface.hpp
+
+acado_qpoases_interface.hpp
+stdio.h
+-
+math.h
+-
+
+qpoases/INCLUDE/Bounds.hpp
+SubjectTo.hpp
+-
+Bounds.ipp
+-
+
+qpoases/INCLUDE/Constants.hpp
+acado_qpoases_interface.hpp
+qpoases/INCLUDE/acado_qpoases_interface.hpp
+
+qpoases/INCLUDE/Constraints.hpp
+SubjectTo.hpp
+-
+Constraints.ipp
+-
+
+qpoases/INCLUDE/CyclingManager.hpp
+Utils.hpp
+-
+CyclingManager.ipp
+-
+
+qpoases/INCLUDE/EXTRAS/SolutionAnalysis.hpp
+QProblem.hpp
+-
+
+qpoases/INCLUDE/Indexlist.hpp
+Utils.hpp
+-
+Indexlist.ipp
+-
+
+qpoases/INCLUDE/MessageHandling.hpp
+stdio.h
+-
+Types.hpp
+-
+Constants.hpp
+-
+MessageHandling.ipp
+-
+
+qpoases/INCLUDE/QProblem.hpp
+QProblemB.hpp
+-
+Constraints.hpp
+-
+CyclingManager.hpp
+-
+QProblem.ipp
+-
+
+qpoases/INCLUDE/QProblemB.hpp
+Bounds.hpp
+-
+QProblemB.ipp
+-
+
+qpoases/INCLUDE/SubjectTo.hpp
+Indexlist.hpp
+-
+SubjectTo.ipp
+-
+
+qpoases/INCLUDE/Types.hpp
+
+qpoases/INCLUDE/Utils.hpp
+MessageHandling.hpp
+-
+Utils.ipp
+-
+
+qpoases/SRC/Bounds.ipp
+
+qpoases/SRC/Constraints.ipp
+
+qpoases/SRC/CyclingManager.ipp
+
+qpoases/SRC/Indexlist.ipp
+
+qpoases/SRC/MessageHandling.ipp
+
+qpoases/SRC/QProblem.ipp
+
+qpoases/SRC/QProblemB.ipp
+math.h
+-
+
+qpoases/SRC/SubjectTo.ipp
+
+qpoases/SRC/Utils.ipp
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/DependInfo.cmake
new file mode 100644
index 0000000..d1cc9f0
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/DependInfo.cmake
@@ -0,0 +1,80 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  "C"
+  "CXX"
+  )
+# The set of files for implicit dependencies of each language:
+set(CMAKE_DEPENDS_CHECK_C
+  "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/acado_auxiliary_functions.c" "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_auxiliary_functions.c.o"
+  "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/acado_integrator.c" "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_integrator.c.o"
+  "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/acado_solver.c" "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_solver.c.o"
+  )
+set(CMAKE_C_COMPILER_ID "GNU")
+
+# Preprocessor definitions for this target.
+set(CMAKE_TARGET_DEFINITIONS_C
+  "ROSCONSOLE_BACKEND_LOG4CXX"
+  "ROS_BUILD_SHARED_LIBS=1"
+  "ROS_PACKAGE_NAME=\"mav_nonlinear_mpc\""
+  "mav_nonlinear_mpc_lib_EXPORTS"
+  )
+
+# The include file search paths:
+set(CMAKE_C_TARGET_INCLUDE_PATH
+  "devel/include"
+  "../include"
+  "/home/simhe502/catkin_ws/devel/include"
+  "/home/simhe502/catkin_ws/src/common_msgs/sensor_msgs/include"
+  "/opt/ros/noetic/include"
+  "/opt/ros/noetic/share/xmlrpcpp/cmake/../../../include/xmlrpcpp"
+  "/usr/include/eigen3"
+  "."
+  "qpoases"
+  "qpoases/INCLUDE"
+  "qpoases/SRC"
+  )
+set(CMAKE_DEPENDS_CHECK_CXX
+  "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/acado_qpoases_interface.cpp" "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_qpoases_interface.cpp.o"
+  "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Bounds.cpp" "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Bounds.cpp.o"
+  "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Constraints.cpp" "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Constraints.cpp.o"
+  "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/CyclingManager.cpp" "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/CyclingManager.cpp.o"
+  "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp" "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp.o"
+  "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Indexlist.cpp" "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Indexlist.cpp.o"
+  "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/MessageHandling.cpp" "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/MessageHandling.cpp.o"
+  "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/QProblem.cpp" "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblem.cpp.o"
+  "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/QProblemB.cpp" "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblemB.cpp.o"
+  "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/SubjectTo.cpp" "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/SubjectTo.cpp.o"
+  "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Utils.cpp" "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Utils.cpp.o"
+  "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/src/nonlinear_mpc.cc" "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o"
+  )
+set(CMAKE_CXX_COMPILER_ID "GNU")
+
+# Preprocessor definitions for this target.
+set(CMAKE_TARGET_DEFINITIONS_CXX
+  "ROSCONSOLE_BACKEND_LOG4CXX"
+  "ROS_BUILD_SHARED_LIBS=1"
+  "ROS_PACKAGE_NAME=\"mav_nonlinear_mpc\""
+  "mav_nonlinear_mpc_lib_EXPORTS"
+  )
+
+# The include file search paths:
+set(CMAKE_CXX_TARGET_INCLUDE_PATH
+  "devel/include"
+  "../include"
+  "/home/simhe502/catkin_ws/devel/include"
+  "/home/simhe502/catkin_ws/src/common_msgs/sensor_msgs/include"
+  "/opt/ros/noetic/include"
+  "/opt/ros/noetic/share/xmlrpcpp/cmake/../../../include/xmlrpcpp"
+  "/usr/include/eigen3"
+  "."
+  "qpoases"
+  "qpoases/INCLUDE"
+  "qpoases/SRC"
+  )
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/build.make
new file mode 100644
index 0000000..03eb2ec
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/build.make
@@ -0,0 +1,354 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Include any dependencies generated for this target.
+include CMakeFiles/mav_nonlinear_mpc_lib.dir/depend.make
+
+# Include the progress variables for this target.
+include CMakeFiles/mav_nonlinear_mpc_lib.dir/progress.make
+
+# Include the compile flags for this target's objects.
+include CMakeFiles/mav_nonlinear_mpc_lib.dir/flags.make
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: CMakeFiles/mav_nonlinear_mpc_lib.dir/flags.make
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: ../src/nonlinear_mpc.cc
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o -c /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/src/nonlinear_mpc.cc
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.i"
+	/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/src/nonlinear_mpc.cc > CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.i
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.s"
+	/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/src/nonlinear_mpc.cc -o CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.s
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Bounds.cpp.o: CMakeFiles/mav_nonlinear_mpc_lib.dir/flags.make
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Bounds.cpp.o: qpoases/SRC/Bounds.cpp
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Bounds.cpp.o"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Bounds.cpp.o -c /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Bounds.cpp
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Bounds.cpp.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Bounds.cpp.i"
+	/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Bounds.cpp > CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Bounds.cpp.i
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Bounds.cpp.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Bounds.cpp.s"
+	/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Bounds.cpp -o CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Bounds.cpp.s
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Constraints.cpp.o: CMakeFiles/mav_nonlinear_mpc_lib.dir/flags.make
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Constraints.cpp.o: qpoases/SRC/Constraints.cpp
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Building CXX object CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Constraints.cpp.o"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Constraints.cpp.o -c /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Constraints.cpp
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Constraints.cpp.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Constraints.cpp.i"
+	/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Constraints.cpp > CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Constraints.cpp.i
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Constraints.cpp.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Constraints.cpp.s"
+	/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Constraints.cpp -o CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Constraints.cpp.s
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/CyclingManager.cpp.o: CMakeFiles/mav_nonlinear_mpc_lib.dir/flags.make
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/CyclingManager.cpp.o: qpoases/SRC/CyclingManager.cpp
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num=$(CMAKE_PROGRESS_4) "Building CXX object CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/CyclingManager.cpp.o"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/CyclingManager.cpp.o -c /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/CyclingManager.cpp
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/CyclingManager.cpp.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/CyclingManager.cpp.i"
+	/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/CyclingManager.cpp > CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/CyclingManager.cpp.i
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/CyclingManager.cpp.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/CyclingManager.cpp.s"
+	/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/CyclingManager.cpp -o CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/CyclingManager.cpp.s
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Indexlist.cpp.o: CMakeFiles/mav_nonlinear_mpc_lib.dir/flags.make
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Indexlist.cpp.o: qpoases/SRC/Indexlist.cpp
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num=$(CMAKE_PROGRESS_5) "Building CXX object CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Indexlist.cpp.o"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Indexlist.cpp.o -c /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Indexlist.cpp
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Indexlist.cpp.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Indexlist.cpp.i"
+	/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Indexlist.cpp > CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Indexlist.cpp.i
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Indexlist.cpp.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Indexlist.cpp.s"
+	/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Indexlist.cpp -o CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Indexlist.cpp.s
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/MessageHandling.cpp.o: CMakeFiles/mav_nonlinear_mpc_lib.dir/flags.make
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/MessageHandling.cpp.o: qpoases/SRC/MessageHandling.cpp
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num=$(CMAKE_PROGRESS_6) "Building CXX object CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/MessageHandling.cpp.o"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/MessageHandling.cpp.o -c /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/MessageHandling.cpp
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/MessageHandling.cpp.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/MessageHandling.cpp.i"
+	/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/MessageHandling.cpp > CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/MessageHandling.cpp.i
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/MessageHandling.cpp.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/MessageHandling.cpp.s"
+	/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/MessageHandling.cpp -o CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/MessageHandling.cpp.s
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblem.cpp.o: CMakeFiles/mav_nonlinear_mpc_lib.dir/flags.make
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblem.cpp.o: qpoases/SRC/QProblem.cpp
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num=$(CMAKE_PROGRESS_7) "Building CXX object CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblem.cpp.o"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblem.cpp.o -c /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/QProblem.cpp
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblem.cpp.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblem.cpp.i"
+	/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/QProblem.cpp > CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblem.cpp.i
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblem.cpp.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblem.cpp.s"
+	/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/QProblem.cpp -o CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblem.cpp.s
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblemB.cpp.o: CMakeFiles/mav_nonlinear_mpc_lib.dir/flags.make
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblemB.cpp.o: qpoases/SRC/QProblemB.cpp
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num=$(CMAKE_PROGRESS_8) "Building CXX object CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblemB.cpp.o"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblemB.cpp.o -c /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/QProblemB.cpp
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblemB.cpp.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblemB.cpp.i"
+	/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/QProblemB.cpp > CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblemB.cpp.i
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblemB.cpp.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblemB.cpp.s"
+	/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/QProblemB.cpp -o CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblemB.cpp.s
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/SubjectTo.cpp.o: CMakeFiles/mav_nonlinear_mpc_lib.dir/flags.make
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/SubjectTo.cpp.o: qpoases/SRC/SubjectTo.cpp
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num=$(CMAKE_PROGRESS_9) "Building CXX object CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/SubjectTo.cpp.o"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/SubjectTo.cpp.o -c /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/SubjectTo.cpp
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/SubjectTo.cpp.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/SubjectTo.cpp.i"
+	/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/SubjectTo.cpp > CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/SubjectTo.cpp.i
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/SubjectTo.cpp.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/SubjectTo.cpp.s"
+	/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/SubjectTo.cpp -o CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/SubjectTo.cpp.s
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Utils.cpp.o: CMakeFiles/mav_nonlinear_mpc_lib.dir/flags.make
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Utils.cpp.o: qpoases/SRC/Utils.cpp
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num=$(CMAKE_PROGRESS_10) "Building CXX object CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Utils.cpp.o"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Utils.cpp.o -c /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Utils.cpp
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Utils.cpp.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Utils.cpp.i"
+	/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Utils.cpp > CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Utils.cpp.i
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Utils.cpp.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Utils.cpp.s"
+	/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Utils.cpp -o CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Utils.cpp.s
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp.o: CMakeFiles/mav_nonlinear_mpc_lib.dir/flags.make
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp.o: qpoases/SRC/EXTRAS/SolutionAnalysis.cpp
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num=$(CMAKE_PROGRESS_11) "Building CXX object CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp.o"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp.o -c /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp.i"
+	/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp > CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp.i
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp.s"
+	/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp -o CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp.s
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_qpoases_interface.cpp.o: CMakeFiles/mav_nonlinear_mpc_lib.dir/flags.make
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_qpoases_interface.cpp.o: acado_qpoases_interface.cpp
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num=$(CMAKE_PROGRESS_12) "Building CXX object CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_qpoases_interface.cpp.o"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_qpoases_interface.cpp.o -c /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/acado_qpoases_interface.cpp
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_qpoases_interface.cpp.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_qpoases_interface.cpp.i"
+	/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/acado_qpoases_interface.cpp > CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_qpoases_interface.cpp.i
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_qpoases_interface.cpp.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_qpoases_interface.cpp.s"
+	/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/acado_qpoases_interface.cpp -o CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_qpoases_interface.cpp.s
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_integrator.c.o: CMakeFiles/mav_nonlinear_mpc_lib.dir/flags.make
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_integrator.c.o: acado_integrator.c
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num=$(CMAKE_PROGRESS_13) "Building C object CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_integrator.c.o"
+	/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_integrator.c.o   -c /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/acado_integrator.c
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_integrator.c.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_integrator.c.i"
+	/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/acado_integrator.c > CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_integrator.c.i
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_integrator.c.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_integrator.c.s"
+	/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/acado_integrator.c -o CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_integrator.c.s
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_solver.c.o: CMakeFiles/mav_nonlinear_mpc_lib.dir/flags.make
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_solver.c.o: acado_solver.c
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num=$(CMAKE_PROGRESS_14) "Building C object CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_solver.c.o"
+	/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_solver.c.o   -c /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/acado_solver.c
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_solver.c.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_solver.c.i"
+	/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/acado_solver.c > CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_solver.c.i
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_solver.c.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_solver.c.s"
+	/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/acado_solver.c -o CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_solver.c.s
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_auxiliary_functions.c.o: CMakeFiles/mav_nonlinear_mpc_lib.dir/flags.make
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_auxiliary_functions.c.o: acado_auxiliary_functions.c
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num=$(CMAKE_PROGRESS_15) "Building C object CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_auxiliary_functions.c.o"
+	/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_auxiliary_functions.c.o   -c /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/acado_auxiliary_functions.c
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_auxiliary_functions.c.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_auxiliary_functions.c.i"
+	/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/acado_auxiliary_functions.c > CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_auxiliary_functions.c.i
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_auxiliary_functions.c.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_auxiliary_functions.c.s"
+	/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/acado_auxiliary_functions.c -o CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_auxiliary_functions.c.s
+
+# Object files for target mav_nonlinear_mpc_lib
+mav_nonlinear_mpc_lib_OBJECTS = \
+"CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o" \
+"CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Bounds.cpp.o" \
+"CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Constraints.cpp.o" \
+"CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/CyclingManager.cpp.o" \
+"CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Indexlist.cpp.o" \
+"CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/MessageHandling.cpp.o" \
+"CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblem.cpp.o" \
+"CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblemB.cpp.o" \
+"CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/SubjectTo.cpp.o" \
+"CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Utils.cpp.o" \
+"CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp.o" \
+"CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_qpoases_interface.cpp.o" \
+"CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_integrator.c.o" \
+"CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_solver.c.o" \
+"CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_auxiliary_functions.c.o"
+
+# External object files for target mav_nonlinear_mpc_lib
+mav_nonlinear_mpc_lib_EXTERNAL_OBJECTS =
+
+devel/lib/libmav_nonlinear_mpc_lib.so: CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o
+devel/lib/libmav_nonlinear_mpc_lib.so: CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Bounds.cpp.o
+devel/lib/libmav_nonlinear_mpc_lib.so: CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Constraints.cpp.o
+devel/lib/libmav_nonlinear_mpc_lib.so: CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/CyclingManager.cpp.o
+devel/lib/libmav_nonlinear_mpc_lib.so: CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Indexlist.cpp.o
+devel/lib/libmav_nonlinear_mpc_lib.so: CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/MessageHandling.cpp.o
+devel/lib/libmav_nonlinear_mpc_lib.so: CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblem.cpp.o
+devel/lib/libmav_nonlinear_mpc_lib.so: CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblemB.cpp.o
+devel/lib/libmav_nonlinear_mpc_lib.so: CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/SubjectTo.cpp.o
+devel/lib/libmav_nonlinear_mpc_lib.so: CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Utils.cpp.o
+devel/lib/libmav_nonlinear_mpc_lib.so: CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp.o
+devel/lib/libmav_nonlinear_mpc_lib.so: CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_qpoases_interface.cpp.o
+devel/lib/libmav_nonlinear_mpc_lib.so: CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_integrator.c.o
+devel/lib/libmav_nonlinear_mpc_lib.so: CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_solver.c.o
+devel/lib/libmav_nonlinear_mpc_lib.so: CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_auxiliary_functions.c.o
+devel/lib/libmav_nonlinear_mpc_lib.so: CMakeFiles/mav_nonlinear_mpc_lib.dir/build.make
+devel/lib/libmav_nonlinear_mpc_lib.so: /opt/ros/noetic/lib/libdynamic_reconfigure_config_init_mutex.so
+devel/lib/libmav_nonlinear_mpc_lib.so: /opt/ros/noetic/lib/libtf.so
+devel/lib/libmav_nonlinear_mpc_lib.so: /opt/ros/noetic/lib/libtf2_ros.so
+devel/lib/libmav_nonlinear_mpc_lib.so: /opt/ros/noetic/lib/libactionlib.so
+devel/lib/libmav_nonlinear_mpc_lib.so: /opt/ros/noetic/lib/libmessage_filters.so
+devel/lib/libmav_nonlinear_mpc_lib.so: /opt/ros/noetic/lib/libroscpp.so
+devel/lib/libmav_nonlinear_mpc_lib.so: /usr/lib/x86_64-linux-gnu/libpthread.so
+devel/lib/libmav_nonlinear_mpc_lib.so: /usr/lib/x86_64-linux-gnu/libboost_chrono.so.1.71.0
+devel/lib/libmav_nonlinear_mpc_lib.so: /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.71.0
+devel/lib/libmav_nonlinear_mpc_lib.so: /opt/ros/noetic/lib/libxmlrpcpp.so
+devel/lib/libmav_nonlinear_mpc_lib.so: /opt/ros/noetic/lib/libtf2.so
+devel/lib/libmav_nonlinear_mpc_lib.so: /opt/ros/noetic/lib/libroscpp_serialization.so
+devel/lib/libmav_nonlinear_mpc_lib.so: /opt/ros/noetic/lib/librosconsole.so
+devel/lib/libmav_nonlinear_mpc_lib.so: /opt/ros/noetic/lib/librosconsole_log4cxx.so
+devel/lib/libmav_nonlinear_mpc_lib.so: /opt/ros/noetic/lib/librosconsole_backend_interface.so
+devel/lib/libmav_nonlinear_mpc_lib.so: /usr/lib/x86_64-linux-gnu/liblog4cxx.so
+devel/lib/libmav_nonlinear_mpc_lib.so: /usr/lib/x86_64-linux-gnu/libboost_regex.so.1.71.0
+devel/lib/libmav_nonlinear_mpc_lib.so: /opt/ros/noetic/lib/librostime.so
+devel/lib/libmav_nonlinear_mpc_lib.so: /usr/lib/x86_64-linux-gnu/libboost_date_time.so.1.71.0
+devel/lib/libmav_nonlinear_mpc_lib.so: /opt/ros/noetic/lib/libcpp_common.so
+devel/lib/libmav_nonlinear_mpc_lib.so: /usr/lib/x86_64-linux-gnu/libboost_system.so.1.71.0
+devel/lib/libmav_nonlinear_mpc_lib.so: /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.71.0
+devel/lib/libmav_nonlinear_mpc_lib.so: /usr/lib/x86_64-linux-gnu/libconsole_bridge.so.0.4
+devel/lib/libmav_nonlinear_mpc_lib.so: /opt/ros/noetic/lib/libdynamic_reconfigure_config_init_mutex.so
+devel/lib/libmav_nonlinear_mpc_lib.so: /opt/ros/noetic/lib/libtf.so
+devel/lib/libmav_nonlinear_mpc_lib.so: /opt/ros/noetic/lib/libtf2_ros.so
+devel/lib/libmav_nonlinear_mpc_lib.so: /opt/ros/noetic/lib/libactionlib.so
+devel/lib/libmav_nonlinear_mpc_lib.so: /opt/ros/noetic/lib/libmessage_filters.so
+devel/lib/libmav_nonlinear_mpc_lib.so: /opt/ros/noetic/lib/libroscpp.so
+devel/lib/libmav_nonlinear_mpc_lib.so: /usr/lib/x86_64-linux-gnu/libpthread.so
+devel/lib/libmav_nonlinear_mpc_lib.so: /usr/lib/x86_64-linux-gnu/libboost_chrono.so.1.71.0
+devel/lib/libmav_nonlinear_mpc_lib.so: /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.71.0
+devel/lib/libmav_nonlinear_mpc_lib.so: /opt/ros/noetic/lib/libxmlrpcpp.so
+devel/lib/libmav_nonlinear_mpc_lib.so: /opt/ros/noetic/lib/libtf2.so
+devel/lib/libmav_nonlinear_mpc_lib.so: /opt/ros/noetic/lib/libroscpp_serialization.so
+devel/lib/libmav_nonlinear_mpc_lib.so: /opt/ros/noetic/lib/librosconsole.so
+devel/lib/libmav_nonlinear_mpc_lib.so: /opt/ros/noetic/lib/librosconsole_log4cxx.so
+devel/lib/libmav_nonlinear_mpc_lib.so: /opt/ros/noetic/lib/librosconsole_backend_interface.so
+devel/lib/libmav_nonlinear_mpc_lib.so: /usr/lib/x86_64-linux-gnu/liblog4cxx.so
+devel/lib/libmav_nonlinear_mpc_lib.so: /usr/lib/x86_64-linux-gnu/libboost_regex.so.1.71.0
+devel/lib/libmav_nonlinear_mpc_lib.so: /opt/ros/noetic/lib/librostime.so
+devel/lib/libmav_nonlinear_mpc_lib.so: /usr/lib/x86_64-linux-gnu/libboost_date_time.so.1.71.0
+devel/lib/libmav_nonlinear_mpc_lib.so: /opt/ros/noetic/lib/libcpp_common.so
+devel/lib/libmav_nonlinear_mpc_lib.so: /usr/lib/x86_64-linux-gnu/libboost_system.so.1.71.0
+devel/lib/libmav_nonlinear_mpc_lib.so: /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.71.0
+devel/lib/libmav_nonlinear_mpc_lib.so: /usr/lib/x86_64-linux-gnu/libconsole_bridge.so.0.4
+devel/lib/libmav_nonlinear_mpc_lib.so: CMakeFiles/mav_nonlinear_mpc_lib.dir/link.txt
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num=$(CMAKE_PROGRESS_16) "Linking CXX shared library devel/lib/libmav_nonlinear_mpc_lib.so"
+	$(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/mav_nonlinear_mpc_lib.dir/link.txt --verbose=$(VERBOSE)
+
+# Rule to build all files generated by this target.
+CMakeFiles/mav_nonlinear_mpc_lib.dir/build: devel/lib/libmav_nonlinear_mpc_lib.so
+
+.PHONY : CMakeFiles/mav_nonlinear_mpc_lib.dir/build
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/mav_nonlinear_mpc_lib.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/mav_nonlinear_mpc_lib.dir/clean
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/mav_nonlinear_mpc_lib.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/cmake_clean.cmake
new file mode 100644
index 0000000..4efe0e7
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/cmake_clean.cmake
@@ -0,0 +1,24 @@
+file(REMOVE_RECURSE
+  "CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_auxiliary_functions.c.o"
+  "CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_integrator.c.o"
+  "CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_qpoases_interface.cpp.o"
+  "CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_solver.c.o"
+  "CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Bounds.cpp.o"
+  "CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Constraints.cpp.o"
+  "CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/CyclingManager.cpp.o"
+  "CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp.o"
+  "CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Indexlist.cpp.o"
+  "CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/MessageHandling.cpp.o"
+  "CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblem.cpp.o"
+  "CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblemB.cpp.o"
+  "CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/SubjectTo.cpp.o"
+  "CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Utils.cpp.o"
+  "CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o"
+  "devel/lib/libmav_nonlinear_mpc_lib.pdb"
+  "devel/lib/libmav_nonlinear_mpc_lib.so"
+)
+
+# Per-language clean rules from dependency scanning.
+foreach(lang C CXX)
+  include(CMakeFiles/mav_nonlinear_mpc_lib.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/depend.internal
new file mode 100644
index 0000000..e83ca13
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/depend.internal
@@ -0,0 +1,555 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_auxiliary_functions.c.o
+ /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/acado_auxiliary_functions.c
+ /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/acado_auxiliary_functions.h
+ /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/acado_common.h
+ /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/acado_qpoases_interface.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_integrator.c.o
+ /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/acado_common.h
+ /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/acado_integrator.c
+ /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/acado_qpoases_interface.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_solver.c.o
+ /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/acado_common.h
+ /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/acado_qpoases_interface.hpp
+ /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/acado_solver.c
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_qpoases_interface.cpp.o
+ /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/acado_common.h
+ /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/acado_qpoases_interface.cpp
+ /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/acado_qpoases_interface.hpp
+ qpoases/INCLUDE/Bounds.hpp
+ qpoases/INCLUDE/Constants.hpp
+ qpoases/INCLUDE/Constraints.hpp
+ qpoases/INCLUDE/CyclingManager.hpp
+ qpoases/INCLUDE/EXTRAS/SolutionAnalysis.hpp
+ qpoases/INCLUDE/Indexlist.hpp
+ qpoases/INCLUDE/MessageHandling.hpp
+ qpoases/INCLUDE/QProblem.hpp
+ qpoases/INCLUDE/QProblemB.hpp
+ qpoases/INCLUDE/SubjectTo.hpp
+ qpoases/INCLUDE/Types.hpp
+ qpoases/INCLUDE/Utils.hpp
+ qpoases/SRC/Bounds.ipp
+ qpoases/SRC/Constraints.ipp
+ qpoases/SRC/CyclingManager.ipp
+ qpoases/SRC/Indexlist.ipp
+ qpoases/SRC/MessageHandling.ipp
+ qpoases/SRC/QProblem.ipp
+ qpoases/SRC/QProblemB.ipp
+ qpoases/SRC/SubjectTo.ipp
+ qpoases/SRC/Utils.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Bounds.cpp.o
+ /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Bounds.cpp
+ acado_qpoases_interface.hpp
+ qpoases/INCLUDE/Bounds.hpp
+ qpoases/INCLUDE/Constants.hpp
+ qpoases/INCLUDE/Indexlist.hpp
+ qpoases/INCLUDE/MessageHandling.hpp
+ qpoases/INCLUDE/SubjectTo.hpp
+ qpoases/INCLUDE/Types.hpp
+ qpoases/INCLUDE/Utils.hpp
+ qpoases/SRC/Bounds.ipp
+ qpoases/SRC/Indexlist.ipp
+ qpoases/SRC/MessageHandling.ipp
+ qpoases/SRC/SubjectTo.ipp
+ qpoases/SRC/Utils.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Constraints.cpp.o
+ /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Constraints.cpp
+ acado_qpoases_interface.hpp
+ qpoases/INCLUDE/Constants.hpp
+ qpoases/INCLUDE/Constraints.hpp
+ qpoases/INCLUDE/Indexlist.hpp
+ qpoases/INCLUDE/MessageHandling.hpp
+ qpoases/INCLUDE/SubjectTo.hpp
+ qpoases/INCLUDE/Types.hpp
+ qpoases/INCLUDE/Utils.hpp
+ qpoases/SRC/Constraints.ipp
+ qpoases/SRC/Indexlist.ipp
+ qpoases/SRC/MessageHandling.ipp
+ qpoases/SRC/SubjectTo.ipp
+ qpoases/SRC/Utils.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/CyclingManager.cpp.o
+ /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/CyclingManager.cpp
+ acado_qpoases_interface.hpp
+ qpoases/INCLUDE/Constants.hpp
+ qpoases/INCLUDE/CyclingManager.hpp
+ qpoases/INCLUDE/MessageHandling.hpp
+ qpoases/INCLUDE/Types.hpp
+ qpoases/INCLUDE/Utils.hpp
+ qpoases/SRC/CyclingManager.ipp
+ qpoases/SRC/MessageHandling.ipp
+ qpoases/SRC/Utils.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp.o
+ /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp
+ acado_qpoases_interface.hpp
+ qpoases/INCLUDE/Bounds.hpp
+ qpoases/INCLUDE/Constants.hpp
+ qpoases/INCLUDE/Constraints.hpp
+ qpoases/INCLUDE/CyclingManager.hpp
+ qpoases/INCLUDE/EXTRAS/SolutionAnalysis.hpp
+ qpoases/INCLUDE/Indexlist.hpp
+ qpoases/INCLUDE/MessageHandling.hpp
+ qpoases/INCLUDE/QProblem.hpp
+ qpoases/INCLUDE/QProblemB.hpp
+ qpoases/INCLUDE/SubjectTo.hpp
+ qpoases/INCLUDE/Types.hpp
+ qpoases/INCLUDE/Utils.hpp
+ qpoases/SRC/Bounds.ipp
+ qpoases/SRC/Constraints.ipp
+ qpoases/SRC/CyclingManager.ipp
+ qpoases/SRC/Indexlist.ipp
+ qpoases/SRC/MessageHandling.ipp
+ qpoases/SRC/QProblem.ipp
+ qpoases/SRC/QProblemB.ipp
+ qpoases/SRC/SubjectTo.ipp
+ qpoases/SRC/Utils.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Indexlist.cpp.o
+ /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Indexlist.cpp
+ acado_qpoases_interface.hpp
+ qpoases/INCLUDE/Constants.hpp
+ qpoases/INCLUDE/Indexlist.hpp
+ qpoases/INCLUDE/MessageHandling.hpp
+ qpoases/INCLUDE/Types.hpp
+ qpoases/INCLUDE/Utils.hpp
+ qpoases/SRC/Indexlist.ipp
+ qpoases/SRC/MessageHandling.ipp
+ qpoases/SRC/Utils.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/MessageHandling.cpp.o
+ /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/MessageHandling.cpp
+ acado_qpoases_interface.hpp
+ qpoases/INCLUDE/Constants.hpp
+ qpoases/INCLUDE/MessageHandling.hpp
+ qpoases/INCLUDE/Types.hpp
+ qpoases/INCLUDE/Utils.hpp
+ qpoases/SRC/MessageHandling.ipp
+ qpoases/SRC/Utils.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblem.cpp.o
+ /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/QProblem.cpp
+ acado_qpoases_interface.hpp
+ qpoases/INCLUDE/Bounds.hpp
+ qpoases/INCLUDE/Constants.hpp
+ qpoases/INCLUDE/Constraints.hpp
+ qpoases/INCLUDE/CyclingManager.hpp
+ qpoases/INCLUDE/Indexlist.hpp
+ qpoases/INCLUDE/MessageHandling.hpp
+ qpoases/INCLUDE/QProblem.hpp
+ qpoases/INCLUDE/QProblemB.hpp
+ qpoases/INCLUDE/SubjectTo.hpp
+ qpoases/INCLUDE/Types.hpp
+ qpoases/INCLUDE/Utils.hpp
+ qpoases/SRC/Bounds.ipp
+ qpoases/SRC/Constraints.ipp
+ qpoases/SRC/CyclingManager.ipp
+ qpoases/SRC/Indexlist.ipp
+ qpoases/SRC/MessageHandling.ipp
+ qpoases/SRC/QProblem.ipp
+ qpoases/SRC/QProblemB.ipp
+ qpoases/SRC/SubjectTo.ipp
+ qpoases/SRC/Utils.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblemB.cpp.o
+ /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/QProblemB.cpp
+ acado_qpoases_interface.hpp
+ qpoases/INCLUDE/Bounds.hpp
+ qpoases/INCLUDE/Constants.hpp
+ qpoases/INCLUDE/Indexlist.hpp
+ qpoases/INCLUDE/MessageHandling.hpp
+ qpoases/INCLUDE/QProblemB.hpp
+ qpoases/INCLUDE/SubjectTo.hpp
+ qpoases/INCLUDE/Types.hpp
+ qpoases/INCLUDE/Utils.hpp
+ qpoases/SRC/Bounds.ipp
+ qpoases/SRC/Indexlist.ipp
+ qpoases/SRC/MessageHandling.ipp
+ qpoases/SRC/QProblemB.ipp
+ qpoases/SRC/SubjectTo.ipp
+ qpoases/SRC/Utils.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/SubjectTo.cpp.o
+ /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/SubjectTo.cpp
+ acado_qpoases_interface.hpp
+ qpoases/INCLUDE/Constants.hpp
+ qpoases/INCLUDE/Indexlist.hpp
+ qpoases/INCLUDE/MessageHandling.hpp
+ qpoases/INCLUDE/SubjectTo.hpp
+ qpoases/INCLUDE/Types.hpp
+ qpoases/INCLUDE/Utils.hpp
+ qpoases/SRC/Indexlist.ipp
+ qpoases/SRC/MessageHandling.ipp
+ qpoases/SRC/SubjectTo.ipp
+ qpoases/SRC/Utils.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Utils.cpp.o
+ /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Utils.cpp
+ acado_qpoases_interface.hpp
+ qpoases/INCLUDE/Constants.hpp
+ qpoases/INCLUDE/MessageHandling.hpp
+ qpoases/INCLUDE/Types.hpp
+ qpoases/INCLUDE/Utils.hpp
+ qpoases/SRC/MessageHandling.ipp
+ qpoases/SRC/Utils.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o
+ ../include/mav_nonlinear_mpc/nonlinear_mpc.h
+ /home/simhe502/catkin_ws/devel/include/geometry_msgs/Point.h
+ /home/simhe502/catkin_ws/devel/include/geometry_msgs/PointStamped.h
+ /home/simhe502/catkin_ws/devel/include/geometry_msgs/Pose.h
+ /home/simhe502/catkin_ws/devel/include/geometry_msgs/PoseStamped.h
+ /home/simhe502/catkin_ws/devel/include/geometry_msgs/Quaternion.h
+ /home/simhe502/catkin_ws/devel/include/geometry_msgs/QuaternionStamped.h
+ /home/simhe502/catkin_ws/devel/include/geometry_msgs/Transform.h
+ /home/simhe502/catkin_ws/devel/include/geometry_msgs/TransformStamped.h
+ /home/simhe502/catkin_ws/devel/include/geometry_msgs/Twist.h
+ /home/simhe502/catkin_ws/devel/include/geometry_msgs/Vector3.h
+ /home/simhe502/catkin_ws/devel/include/geometry_msgs/Vector3Stamped.h
+ /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/src/nonlinear_mpc.cc
+ /opt/ros/noetic/include/gazebo_msgs/GetModelState.h
+ /opt/ros/noetic/include/gazebo_msgs/GetModelStateRequest.h
+ /opt/ros/noetic/include/gazebo_msgs/GetModelStateResponse.h
+ /opt/ros/noetic/include/ros/advertise_options.h
+ /opt/ros/noetic/include/ros/advertise_service_options.h
+ /opt/ros/noetic/include/ros/assert.h
+ /opt/ros/noetic/include/ros/builtin_message_traits.h
+ /opt/ros/noetic/include/ros/common.h
+ /opt/ros/noetic/include/ros/console.h
+ /opt/ros/noetic/include/ros/console_backend.h
+ /opt/ros/noetic/include/ros/datatypes.h
+ /opt/ros/noetic/include/ros/duration.h
+ /opt/ros/noetic/include/ros/exception.h
+ /opt/ros/noetic/include/ros/exceptions.h
+ /opt/ros/noetic/include/ros/forwards.h
+ /opt/ros/noetic/include/ros/init.h
+ /opt/ros/noetic/include/ros/macros.h
+ /opt/ros/noetic/include/ros/master.h
+ /opt/ros/noetic/include/ros/message.h
+ /opt/ros/noetic/include/ros/message_event.h
+ /opt/ros/noetic/include/ros/message_forward.h
+ /opt/ros/noetic/include/ros/message_operations.h
+ /opt/ros/noetic/include/ros/message_traits.h
+ /opt/ros/noetic/include/ros/names.h
+ /opt/ros/noetic/include/ros/node_handle.h
+ /opt/ros/noetic/include/ros/param.h
+ /opt/ros/noetic/include/ros/parameter_adapter.h
+ /opt/ros/noetic/include/ros/platform.h
+ /opt/ros/noetic/include/ros/publisher.h
+ /opt/ros/noetic/include/ros/rate.h
+ /opt/ros/noetic/include/ros/ros.h
+ /opt/ros/noetic/include/ros/roscpp_serialization_macros.h
+ /opt/ros/noetic/include/ros/rostime_decl.h
+ /opt/ros/noetic/include/ros/serialization.h
+ /opt/ros/noetic/include/ros/serialized_message.h
+ /opt/ros/noetic/include/ros/service.h
+ /opt/ros/noetic/include/ros/service_callback_helper.h
+ /opt/ros/noetic/include/ros/service_client.h
+ /opt/ros/noetic/include/ros/service_client_options.h
+ /opt/ros/noetic/include/ros/service_server.h
+ /opt/ros/noetic/include/ros/service_traits.h
+ /opt/ros/noetic/include/ros/single_subscriber_publisher.h
+ /opt/ros/noetic/include/ros/spinner.h
+ /opt/ros/noetic/include/ros/static_assert.h
+ /opt/ros/noetic/include/ros/steady_timer.h
+ /opt/ros/noetic/include/ros/steady_timer_options.h
+ /opt/ros/noetic/include/ros/subscribe_options.h
+ /opt/ros/noetic/include/ros/subscriber.h
+ /opt/ros/noetic/include/ros/subscription_callback_helper.h
+ /opt/ros/noetic/include/ros/this_node.h
+ /opt/ros/noetic/include/ros/time.h
+ /opt/ros/noetic/include/ros/timer.h
+ /opt/ros/noetic/include/ros/timer_options.h
+ /opt/ros/noetic/include/ros/topic.h
+ /opt/ros/noetic/include/ros/transport_hints.h
+ /opt/ros/noetic/include/ros/types.h
+ /opt/ros/noetic/include/ros/wall_timer.h
+ /opt/ros/noetic/include/ros/wall_timer_options.h
+ /opt/ros/noetic/include/rosconsole/macros_generated.h
+ /opt/ros/noetic/include/std_msgs/Header.h
+ /opt/ros/noetic/include/std_srvs/Empty.h
+ /opt/ros/noetic/include/std_srvs/EmptyRequest.h
+ /opt/ros/noetic/include/std_srvs/EmptyResponse.h
+ /opt/ros/noetic/include/tf/LinearMath/Matrix3x3.h
+ /opt/ros/noetic/include/tf/LinearMath/MinMax.h
+ /opt/ros/noetic/include/tf/LinearMath/QuadWord.h
+ /opt/ros/noetic/include/tf/LinearMath/Quaternion.h
+ /opt/ros/noetic/include/tf/LinearMath/Scalar.h
+ /opt/ros/noetic/include/tf/LinearMath/Transform.h
+ /opt/ros/noetic/include/tf/LinearMath/Vector3.h
+ /opt/ros/noetic/include/tf/transform_datatypes.h
+ /opt/ros/noetic/include/xmlrpcpp/XmlRpcDecl.h
+ /opt/ros/noetic/include/xmlrpcpp/XmlRpcValue.h
+ /usr/include/eigen3/Eigen/Cholesky
+ /usr/include/eigen3/Eigen/Core
+ /usr/include/eigen3/Eigen/Dense
+ /usr/include/eigen3/Eigen/Eigen
+ /usr/include/eigen3/Eigen/Eigenvalues
+ /usr/include/eigen3/Eigen/Geometry
+ /usr/include/eigen3/Eigen/Householder
+ /usr/include/eigen3/Eigen/IterativeLinearSolvers
+ /usr/include/eigen3/Eigen/Jacobi
+ /usr/include/eigen3/Eigen/LU
+ /usr/include/eigen3/Eigen/OrderingMethods
+ /usr/include/eigen3/Eigen/QR
+ /usr/include/eigen3/Eigen/SVD
+ /usr/include/eigen3/Eigen/Sparse
+ /usr/include/eigen3/Eigen/SparseCholesky
+ /usr/include/eigen3/Eigen/SparseCore
+ /usr/include/eigen3/Eigen/SparseLU
+ /usr/include/eigen3/Eigen/SparseQR
+ /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h
+ /usr/include/eigen3/Eigen/src/Cholesky/LLT.h
+ /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h
+ /usr/include/eigen3/Eigen/src/Core/Array.h
+ /usr/include/eigen3/Eigen/src/Core/ArrayBase.h
+ /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h
+ /usr/include/eigen3/Eigen/src/Core/Assign.h
+ /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h
+ /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h
+ /usr/include/eigen3/Eigen/src/Core/BandMatrix.h
+ /usr/include/eigen3/Eigen/src/Core/Block.h
+ /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h
+ /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h
+ /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h
+ /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h
+ /usr/include/eigen3/Eigen/src/Core/CoreIterators.h
+ /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h
+ /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h
+ /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h
+ /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h
+ /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h
+ /usr/include/eigen3/Eigen/src/Core/DenseBase.h
+ /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h
+ /usr/include/eigen3/Eigen/src/Core/DenseStorage.h
+ /usr/include/eigen3/Eigen/src/Core/Diagonal.h
+ /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h
+ /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h
+ /usr/include/eigen3/Eigen/src/Core/Dot.h
+ /usr/include/eigen3/Eigen/src/Core/EigenBase.h
+ /usr/include/eigen3/Eigen/src/Core/Fuzzy.h
+ /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h
+ /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h
+ /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h
+ /usr/include/eigen3/Eigen/src/Core/IO.h
+ /usr/include/eigen3/Eigen/src/Core/Inverse.h
+ /usr/include/eigen3/Eigen/src/Core/Map.h
+ /usr/include/eigen3/Eigen/src/Core/MapBase.h
+ /usr/include/eigen3/Eigen/src/Core/MathFunctions.h
+ /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h
+ /usr/include/eigen3/Eigen/src/Core/Matrix.h
+ /usr/include/eigen3/Eigen/src/Core/MatrixBase.h
+ /usr/include/eigen3/Eigen/src/Core/NestByValue.h
+ /usr/include/eigen3/Eigen/src/Core/NoAlias.h
+ /usr/include/eigen3/Eigen/src/Core/NumTraits.h
+ /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h
+ /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h
+ /usr/include/eigen3/Eigen/src/Core/Product.h
+ /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h
+ /usr/include/eigen3/Eigen/src/Core/Random.h
+ /usr/include/eigen3/Eigen/src/Core/Redux.h
+ /usr/include/eigen3/Eigen/src/Core/Ref.h
+ /usr/include/eigen3/Eigen/src/Core/Replicate.h
+ /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h
+ /usr/include/eigen3/Eigen/src/Core/Reverse.h
+ /usr/include/eigen3/Eigen/src/Core/Select.h
+ /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h
+ /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h
+ /usr/include/eigen3/Eigen/src/Core/Solve.h
+ /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h
+ /usr/include/eigen3/Eigen/src/Core/SolverBase.h
+ /usr/include/eigen3/Eigen/src/Core/StableNorm.h
+ /usr/include/eigen3/Eigen/src/Core/Stride.h
+ /usr/include/eigen3/Eigen/src/Core/Swap.h
+ /usr/include/eigen3/Eigen/src/Core/Transpose.h
+ /usr/include/eigen3/Eigen/src/Core/Transpositions.h
+ /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h
+ /usr/include/eigen3/Eigen/src/Core/VectorBlock.h
+ /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h
+ /usr/include/eigen3/Eigen/src/Core/Visitor.h
+ /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h
+ /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h
+ /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h
+ /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h
+ /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h
+ /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h
+ /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h
+ /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h
+ /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h
+ /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h
+ /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h
+ /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h
+ /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h
+ /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h
+ /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h
+ /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h
+ /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h
+ /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h
+ /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h
+ /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h
+ /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h
+ /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h
+ /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h
+ /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h
+ /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h
+ /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h
+ /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h
+ /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h
+ /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h
+ /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h
+ /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h
+ /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h
+ /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h
+ /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h
+ /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h
+ /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h
+ /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h
+ /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h
+ /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h
+ /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h
+ /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h
+ /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h
+ /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h
+ /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h
+ /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h
+ /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h
+ /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h
+ /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h
+ /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h
+ /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h
+ /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h
+ /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h
+ /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h
+ /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h
+ /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h
+ /usr/include/eigen3/Eigen/src/Core/util/Constants.h
+ /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h
+ /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h
+ /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h
+ /usr/include/eigen3/Eigen/src/Core/util/Macros.h
+ /usr/include/eigen3/Eigen/src/Core/util/Memory.h
+ /usr/include/eigen3/Eigen/src/Core/util/Meta.h
+ /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h
+ /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h
+ /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h
+ /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h
+ /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h
+ /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h
+ /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h
+ /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h
+ /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h
+ /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h
+ /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h
+ /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h
+ /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h
+ /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h
+ /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h
+ /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h
+ /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h
+ /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h
+ /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h
+ /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h
+ /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h
+ /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h
+ /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h
+ /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h
+ /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h
+ /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h
+ /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h
+ /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h
+ /usr/include/eigen3/Eigen/src/Geometry/Scaling.h
+ /usr/include/eigen3/Eigen/src/Geometry/Transform.h
+ /usr/include/eigen3/Eigen/src/Geometry/Translation.h
+ /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h
+ /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h
+ /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h
+ /usr/include/eigen3/Eigen/src/Householder/Householder.h
+ /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h
+ /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h
+ /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h
+ /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h
+ /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h
+ /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h
+ /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h
+ /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h
+ /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h
+ /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h
+ /usr/include/eigen3/Eigen/src/LU/Determinant.h
+ /usr/include/eigen3/Eigen/src/LU/FullPivLU.h
+ /usr/include/eigen3/Eigen/src/LU/InverseImpl.h
+ /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h
+ /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h
+ /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h
+ /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h
+ /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h
+ /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h
+ /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h
+ /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h
+ /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h
+ /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h
+ /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h
+ /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h
+ /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h
+ /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h
+ /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h
+ /usr/include/eigen3/Eigen/src/SVD/SVDBase.h
+ /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h
+ /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h
+ /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h
+ /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h
+ /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h
+ /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h
+ /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h
+ /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h
+ /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h
+ /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h
+ /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h
+ /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h
+ /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h
+ /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h
+ /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h
+ /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h
+ /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h
+ /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h
+ /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h
+ /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h
+ /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h
+ /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h
+ /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h
+ /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h
+ /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h
+ /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h
+ /usr/include/eigen3/Eigen/src/misc/Image.h
+ /usr/include/eigen3/Eigen/src/misc/Kernel.h
+ /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h
+ /usr/include/eigen3/Eigen/src/misc/blas.h
+ /usr/include/eigen3/Eigen/src/misc/lapacke.h
+ /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h
+ /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h
+ /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h
+ /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h
+ /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h
+ /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h
+ /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h
+ /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h
+ acado_auxiliary_functions.h
+ acado_common.h
+ acado_qpoases_interface.hpp
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/depend.make
new file mode 100644
index 0000000..7683ac9
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/depend.make
@@ -0,0 +1,555 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_auxiliary_functions.c.o: acado_auxiliary_functions.c
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_auxiliary_functions.c.o: acado_auxiliary_functions.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_auxiliary_functions.c.o: acado_common.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_auxiliary_functions.c.o: acado_qpoases_interface.hpp
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_integrator.c.o: acado_common.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_integrator.c.o: acado_integrator.c
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_integrator.c.o: acado_qpoases_interface.hpp
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_solver.c.o: acado_common.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_solver.c.o: acado_qpoases_interface.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_solver.c.o: acado_solver.c
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_qpoases_interface.cpp.o: acado_common.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_qpoases_interface.cpp.o: acado_qpoases_interface.cpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_qpoases_interface.cpp.o: acado_qpoases_interface.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_qpoases_interface.cpp.o: qpoases/INCLUDE/Bounds.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_qpoases_interface.cpp.o: qpoases/INCLUDE/Constants.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_qpoases_interface.cpp.o: qpoases/INCLUDE/Constraints.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_qpoases_interface.cpp.o: qpoases/INCLUDE/CyclingManager.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_qpoases_interface.cpp.o: qpoases/INCLUDE/EXTRAS/SolutionAnalysis.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_qpoases_interface.cpp.o: qpoases/INCLUDE/Indexlist.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_qpoases_interface.cpp.o: qpoases/INCLUDE/MessageHandling.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_qpoases_interface.cpp.o: qpoases/INCLUDE/QProblem.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_qpoases_interface.cpp.o: qpoases/INCLUDE/QProblemB.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_qpoases_interface.cpp.o: qpoases/INCLUDE/SubjectTo.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_qpoases_interface.cpp.o: qpoases/INCLUDE/Types.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_qpoases_interface.cpp.o: qpoases/INCLUDE/Utils.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_qpoases_interface.cpp.o: qpoases/SRC/Bounds.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_qpoases_interface.cpp.o: qpoases/SRC/Constraints.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_qpoases_interface.cpp.o: qpoases/SRC/CyclingManager.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_qpoases_interface.cpp.o: qpoases/SRC/Indexlist.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_qpoases_interface.cpp.o: qpoases/SRC/MessageHandling.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_qpoases_interface.cpp.o: qpoases/SRC/QProblem.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_qpoases_interface.cpp.o: qpoases/SRC/QProblemB.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_qpoases_interface.cpp.o: qpoases/SRC/SubjectTo.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_qpoases_interface.cpp.o: qpoases/SRC/Utils.ipp
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Bounds.cpp.o: qpoases/SRC/Bounds.cpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Bounds.cpp.o: acado_qpoases_interface.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Bounds.cpp.o: qpoases/INCLUDE/Bounds.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Bounds.cpp.o: qpoases/INCLUDE/Constants.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Bounds.cpp.o: qpoases/INCLUDE/Indexlist.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Bounds.cpp.o: qpoases/INCLUDE/MessageHandling.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Bounds.cpp.o: qpoases/INCLUDE/SubjectTo.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Bounds.cpp.o: qpoases/INCLUDE/Types.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Bounds.cpp.o: qpoases/INCLUDE/Utils.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Bounds.cpp.o: qpoases/SRC/Bounds.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Bounds.cpp.o: qpoases/SRC/Indexlist.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Bounds.cpp.o: qpoases/SRC/MessageHandling.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Bounds.cpp.o: qpoases/SRC/SubjectTo.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Bounds.cpp.o: qpoases/SRC/Utils.ipp
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Constraints.cpp.o: qpoases/SRC/Constraints.cpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Constraints.cpp.o: acado_qpoases_interface.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Constraints.cpp.o: qpoases/INCLUDE/Constants.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Constraints.cpp.o: qpoases/INCLUDE/Constraints.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Constraints.cpp.o: qpoases/INCLUDE/Indexlist.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Constraints.cpp.o: qpoases/INCLUDE/MessageHandling.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Constraints.cpp.o: qpoases/INCLUDE/SubjectTo.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Constraints.cpp.o: qpoases/INCLUDE/Types.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Constraints.cpp.o: qpoases/INCLUDE/Utils.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Constraints.cpp.o: qpoases/SRC/Constraints.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Constraints.cpp.o: qpoases/SRC/Indexlist.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Constraints.cpp.o: qpoases/SRC/MessageHandling.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Constraints.cpp.o: qpoases/SRC/SubjectTo.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Constraints.cpp.o: qpoases/SRC/Utils.ipp
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/CyclingManager.cpp.o: qpoases/SRC/CyclingManager.cpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/CyclingManager.cpp.o: acado_qpoases_interface.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/CyclingManager.cpp.o: qpoases/INCLUDE/Constants.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/CyclingManager.cpp.o: qpoases/INCLUDE/CyclingManager.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/CyclingManager.cpp.o: qpoases/INCLUDE/MessageHandling.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/CyclingManager.cpp.o: qpoases/INCLUDE/Types.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/CyclingManager.cpp.o: qpoases/INCLUDE/Utils.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/CyclingManager.cpp.o: qpoases/SRC/CyclingManager.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/CyclingManager.cpp.o: qpoases/SRC/MessageHandling.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/CyclingManager.cpp.o: qpoases/SRC/Utils.ipp
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp.o: qpoases/SRC/EXTRAS/SolutionAnalysis.cpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp.o: acado_qpoases_interface.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp.o: qpoases/INCLUDE/Bounds.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp.o: qpoases/INCLUDE/Constants.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp.o: qpoases/INCLUDE/Constraints.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp.o: qpoases/INCLUDE/CyclingManager.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp.o: qpoases/INCLUDE/EXTRAS/SolutionAnalysis.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp.o: qpoases/INCLUDE/Indexlist.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp.o: qpoases/INCLUDE/MessageHandling.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp.o: qpoases/INCLUDE/QProblem.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp.o: qpoases/INCLUDE/QProblemB.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp.o: qpoases/INCLUDE/SubjectTo.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp.o: qpoases/INCLUDE/Types.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp.o: qpoases/INCLUDE/Utils.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp.o: qpoases/SRC/Bounds.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp.o: qpoases/SRC/Constraints.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp.o: qpoases/SRC/CyclingManager.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp.o: qpoases/SRC/Indexlist.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp.o: qpoases/SRC/MessageHandling.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp.o: qpoases/SRC/QProblem.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp.o: qpoases/SRC/QProblemB.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp.o: qpoases/SRC/SubjectTo.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp.o: qpoases/SRC/Utils.ipp
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Indexlist.cpp.o: qpoases/SRC/Indexlist.cpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Indexlist.cpp.o: acado_qpoases_interface.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Indexlist.cpp.o: qpoases/INCLUDE/Constants.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Indexlist.cpp.o: qpoases/INCLUDE/Indexlist.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Indexlist.cpp.o: qpoases/INCLUDE/MessageHandling.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Indexlist.cpp.o: qpoases/INCLUDE/Types.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Indexlist.cpp.o: qpoases/INCLUDE/Utils.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Indexlist.cpp.o: qpoases/SRC/Indexlist.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Indexlist.cpp.o: qpoases/SRC/MessageHandling.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Indexlist.cpp.o: qpoases/SRC/Utils.ipp
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/MessageHandling.cpp.o: qpoases/SRC/MessageHandling.cpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/MessageHandling.cpp.o: acado_qpoases_interface.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/MessageHandling.cpp.o: qpoases/INCLUDE/Constants.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/MessageHandling.cpp.o: qpoases/INCLUDE/MessageHandling.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/MessageHandling.cpp.o: qpoases/INCLUDE/Types.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/MessageHandling.cpp.o: qpoases/INCLUDE/Utils.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/MessageHandling.cpp.o: qpoases/SRC/MessageHandling.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/MessageHandling.cpp.o: qpoases/SRC/Utils.ipp
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblem.cpp.o: qpoases/SRC/QProblem.cpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblem.cpp.o: acado_qpoases_interface.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblem.cpp.o: qpoases/INCLUDE/Bounds.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblem.cpp.o: qpoases/INCLUDE/Constants.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblem.cpp.o: qpoases/INCLUDE/Constraints.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblem.cpp.o: qpoases/INCLUDE/CyclingManager.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblem.cpp.o: qpoases/INCLUDE/Indexlist.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblem.cpp.o: qpoases/INCLUDE/MessageHandling.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblem.cpp.o: qpoases/INCLUDE/QProblem.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblem.cpp.o: qpoases/INCLUDE/QProblemB.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblem.cpp.o: qpoases/INCLUDE/SubjectTo.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblem.cpp.o: qpoases/INCLUDE/Types.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblem.cpp.o: qpoases/INCLUDE/Utils.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblem.cpp.o: qpoases/SRC/Bounds.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblem.cpp.o: qpoases/SRC/Constraints.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblem.cpp.o: qpoases/SRC/CyclingManager.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblem.cpp.o: qpoases/SRC/Indexlist.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblem.cpp.o: qpoases/SRC/MessageHandling.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblem.cpp.o: qpoases/SRC/QProblem.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblem.cpp.o: qpoases/SRC/QProblemB.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblem.cpp.o: qpoases/SRC/SubjectTo.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblem.cpp.o: qpoases/SRC/Utils.ipp
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblemB.cpp.o: qpoases/SRC/QProblemB.cpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblemB.cpp.o: acado_qpoases_interface.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblemB.cpp.o: qpoases/INCLUDE/Bounds.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblemB.cpp.o: qpoases/INCLUDE/Constants.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblemB.cpp.o: qpoases/INCLUDE/Indexlist.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblemB.cpp.o: qpoases/INCLUDE/MessageHandling.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblemB.cpp.o: qpoases/INCLUDE/QProblemB.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblemB.cpp.o: qpoases/INCLUDE/SubjectTo.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblemB.cpp.o: qpoases/INCLUDE/Types.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblemB.cpp.o: qpoases/INCLUDE/Utils.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblemB.cpp.o: qpoases/SRC/Bounds.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblemB.cpp.o: qpoases/SRC/Indexlist.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblemB.cpp.o: qpoases/SRC/MessageHandling.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblemB.cpp.o: qpoases/SRC/QProblemB.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblemB.cpp.o: qpoases/SRC/SubjectTo.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblemB.cpp.o: qpoases/SRC/Utils.ipp
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/SubjectTo.cpp.o: qpoases/SRC/SubjectTo.cpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/SubjectTo.cpp.o: acado_qpoases_interface.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/SubjectTo.cpp.o: qpoases/INCLUDE/Constants.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/SubjectTo.cpp.o: qpoases/INCLUDE/Indexlist.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/SubjectTo.cpp.o: qpoases/INCLUDE/MessageHandling.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/SubjectTo.cpp.o: qpoases/INCLUDE/SubjectTo.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/SubjectTo.cpp.o: qpoases/INCLUDE/Types.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/SubjectTo.cpp.o: qpoases/INCLUDE/Utils.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/SubjectTo.cpp.o: qpoases/SRC/Indexlist.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/SubjectTo.cpp.o: qpoases/SRC/MessageHandling.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/SubjectTo.cpp.o: qpoases/SRC/SubjectTo.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/SubjectTo.cpp.o: qpoases/SRC/Utils.ipp
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Utils.cpp.o: qpoases/SRC/Utils.cpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Utils.cpp.o: acado_qpoases_interface.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Utils.cpp.o: qpoases/INCLUDE/Constants.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Utils.cpp.o: qpoases/INCLUDE/MessageHandling.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Utils.cpp.o: qpoases/INCLUDE/Types.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Utils.cpp.o: qpoases/INCLUDE/Utils.hpp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Utils.cpp.o: qpoases/SRC/MessageHandling.ipp
+CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Utils.cpp.o: qpoases/SRC/Utils.ipp
+
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: ../include/mav_nonlinear_mpc/nonlinear_mpc.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /home/simhe502/catkin_ws/devel/include/geometry_msgs/Point.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /home/simhe502/catkin_ws/devel/include/geometry_msgs/PointStamped.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /home/simhe502/catkin_ws/devel/include/geometry_msgs/Pose.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /home/simhe502/catkin_ws/devel/include/geometry_msgs/PoseStamped.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /home/simhe502/catkin_ws/devel/include/geometry_msgs/Quaternion.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /home/simhe502/catkin_ws/devel/include/geometry_msgs/QuaternionStamped.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /home/simhe502/catkin_ws/devel/include/geometry_msgs/Transform.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /home/simhe502/catkin_ws/devel/include/geometry_msgs/TransformStamped.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /home/simhe502/catkin_ws/devel/include/geometry_msgs/Twist.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /home/simhe502/catkin_ws/devel/include/geometry_msgs/Vector3.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /home/simhe502/catkin_ws/devel/include/geometry_msgs/Vector3Stamped.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: ../src/nonlinear_mpc.cc
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/gazebo_msgs/GetModelState.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/gazebo_msgs/GetModelStateRequest.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/gazebo_msgs/GetModelStateResponse.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/advertise_options.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/advertise_service_options.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/assert.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/builtin_message_traits.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/common.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/console.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/console_backend.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/datatypes.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/duration.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/exception.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/exceptions.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/forwards.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/init.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/macros.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/master.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/message.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/message_event.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/message_forward.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/message_operations.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/message_traits.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/names.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/node_handle.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/param.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/parameter_adapter.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/platform.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/publisher.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/rate.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/ros.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/roscpp_serialization_macros.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/rostime_decl.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/serialization.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/serialized_message.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/service.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/service_callback_helper.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/service_client.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/service_client_options.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/service_server.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/service_traits.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/single_subscriber_publisher.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/spinner.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/static_assert.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/steady_timer.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/steady_timer_options.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/subscribe_options.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/subscriber.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/subscription_callback_helper.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/this_node.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/time.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/timer.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/timer_options.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/topic.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/transport_hints.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/types.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/wall_timer.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/ros/wall_timer_options.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/rosconsole/macros_generated.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/std_msgs/Header.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/std_srvs/Empty.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/std_srvs/EmptyRequest.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/std_srvs/EmptyResponse.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/tf/LinearMath/Matrix3x3.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/tf/LinearMath/MinMax.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/tf/LinearMath/QuadWord.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/tf/LinearMath/Quaternion.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/tf/LinearMath/Scalar.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/tf/LinearMath/Transform.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/tf/LinearMath/Vector3.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/tf/transform_datatypes.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/xmlrpcpp/XmlRpcDecl.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /opt/ros/noetic/include/xmlrpcpp/XmlRpcValue.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/Cholesky
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/Core
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/Dense
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/Eigen
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/Eigenvalues
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/Geometry
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/Householder
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/IterativeLinearSolvers
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/Jacobi
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/LU
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/OrderingMethods
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/QR
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/SVD
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/Sparse
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/SparseCholesky
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/SparseCore
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/SparseLU
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/SparseQR
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Cholesky/LLT.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/Array.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/ArrayBase.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/Assign.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/BandMatrix.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/Block.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/CoreIterators.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/DenseBase.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/DenseStorage.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/Diagonal.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/Dot.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/EigenBase.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/Fuzzy.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/IO.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/Inverse.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/Map.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/MapBase.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/MathFunctions.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/Matrix.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/MatrixBase.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/NestByValue.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/NoAlias.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/NumTraits.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/Product.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/Random.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/Redux.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/Ref.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/Replicate.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/Reverse.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/Select.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/Solve.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/SolverBase.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/StableNorm.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/Stride.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/Swap.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/Transpose.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/Transpositions.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/VectorBlock.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/Visitor.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/util/Constants.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/util/Macros.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/util/Memory.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/util/Meta.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Geometry/Scaling.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Geometry/Transform.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Geometry/Translation.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Householder/Householder.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/LU/Determinant.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/LU/FullPivLU.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/LU/InverseImpl.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SVD/SVDBase.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/misc/Image.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/misc/Kernel.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/misc/blas.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/misc/lapacke.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: acado_auxiliary_functions.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: acado_common.h
+CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o: acado_qpoases_interface.hpp
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/flags.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/flags.make
new file mode 100644
index 0000000..430a48b
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/flags.make
@@ -0,0 +1,17 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# compile C with /usr/bin/cc
+# compile CXX with /usr/bin/c++
+C_FLAGS = -O3 -DNDEBUG -fPIC  
+
+C_DEFINES = -DROSCONSOLE_BACKEND_LOG4CXX -DROS_BUILD_SHARED_LIBS=1 -DROS_PACKAGE_NAME=\"mav_nonlinear_mpc\" -Dmav_nonlinear_mpc_lib_EXPORTS
+
+C_INCLUDES = -I/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel/include -I/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/include -I/home/simhe502/catkin_ws/devel/include -I/home/simhe502/catkin_ws/src/common_msgs/sensor_msgs/include -I/opt/ros/noetic/include -I/opt/ros/noetic/share/xmlrpcpp/cmake/../../../include/xmlrpcpp -I/usr/include/eigen3 -I/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver -I/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases -I/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE -I/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC 
+
+CXX_FLAGS =  -std=c++11 -O3 -DNDEBUG -fPIC  
+
+CXX_DEFINES = -DROSCONSOLE_BACKEND_LOG4CXX -DROS_BUILD_SHARED_LIBS=1 -DROS_PACKAGE_NAME=\"mav_nonlinear_mpc\" -Dmav_nonlinear_mpc_lib_EXPORTS
+
+CXX_INCLUDES = -I/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel/include -I/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/include -I/home/simhe502/catkin_ws/devel/include -I/home/simhe502/catkin_ws/src/common_msgs/sensor_msgs/include -I/opt/ros/noetic/include -I/opt/ros/noetic/share/xmlrpcpp/cmake/../../../include/xmlrpcpp -I/usr/include/eigen3 -I/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver -I/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases -I/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE -I/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC 
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/link.txt b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/link.txt
new file mode 100644
index 0000000..5bca8fc
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/link.txt
@@ -0,0 +1 @@
+/usr/bin/c++ -fPIC  -std=c++11 -O3 -DNDEBUG  -shared -Wl,-soname,libmav_nonlinear_mpc_lib.so -o devel/lib/libmav_nonlinear_mpc_lib.so CMakeFiles/mav_nonlinear_mpc_lib.dir/src/nonlinear_mpc.cc.o CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Bounds.cpp.o CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Constraints.cpp.o CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/CyclingManager.cpp.o CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Indexlist.cpp.o CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/MessageHandling.cpp.o CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblem.cpp.o CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/QProblemB.cpp.o CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/SubjectTo.cpp.o CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/Utils.cpp.o CMakeFiles/mav_nonlinear_mpc_lib.dir/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp.o CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_qpoases_interface.cpp.o CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_integrator.c.o CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_solver.c.o CMakeFiles/mav_nonlinear_mpc_lib.dir/acado_auxiliary_functions.c.o  -Wl,-rpath,/opt/ros/noetic/lib: /opt/ros/noetic/lib/libdynamic_reconfigure_config_init_mutex.so /opt/ros/noetic/lib/libtf.so /opt/ros/noetic/lib/libtf2_ros.so /opt/ros/noetic/lib/libactionlib.so /opt/ros/noetic/lib/libmessage_filters.so /opt/ros/noetic/lib/libroscpp.so -lpthread /usr/lib/x86_64-linux-gnu/libboost_chrono.so.1.71.0 /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.71.0 /opt/ros/noetic/lib/libxmlrpcpp.so /opt/ros/noetic/lib/libtf2.so /opt/ros/noetic/lib/libroscpp_serialization.so /opt/ros/noetic/lib/librosconsole.so /opt/ros/noetic/lib/librosconsole_log4cxx.so /opt/ros/noetic/lib/librosconsole_backend_interface.so -llog4cxx /usr/lib/x86_64-linux-gnu/libboost_regex.so.1.71.0 /opt/ros/noetic/lib/librostime.so /usr/lib/x86_64-linux-gnu/libboost_date_time.so.1.71.0 /opt/ros/noetic/lib/libcpp_common.so /usr/lib/x86_64-linux-gnu/libboost_system.so.1.71.0 /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.71.0 /usr/lib/x86_64-linux-gnu/libconsole_bridge.so.0.4 /opt/ros/noetic/lib/libdynamic_reconfigure_config_init_mutex.so /opt/ros/noetic/lib/libtf.so /opt/ros/noetic/lib/libtf2_ros.so /opt/ros/noetic/lib/libactionlib.so /opt/ros/noetic/lib/libmessage_filters.so /opt/ros/noetic/lib/libroscpp.so -lpthread /usr/lib/x86_64-linux-gnu/libboost_chrono.so.1.71.0 /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.71.0 /opt/ros/noetic/lib/libxmlrpcpp.so /opt/ros/noetic/lib/libtf2.so /opt/ros/noetic/lib/libroscpp_serialization.so /opt/ros/noetic/lib/librosconsole.so /opt/ros/noetic/lib/librosconsole_log4cxx.so /opt/ros/noetic/lib/librosconsole_backend_interface.so -llog4cxx /usr/lib/x86_64-linux-gnu/libboost_regex.so.1.71.0 /opt/ros/noetic/lib/librostime.so /usr/lib/x86_64-linux-gnu/libboost_date_time.so.1.71.0 /opt/ros/noetic/lib/libcpp_common.so /usr/lib/x86_64-linux-gnu/libboost_system.so.1.71.0 /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.71.0 /usr/lib/x86_64-linux-gnu/libconsole_bridge.so.0.4 
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/progress.make
new file mode 100644
index 0000000..e6cabbb
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/progress.make
@@ -0,0 +1,17 @@
+CMAKE_PROGRESS_1 = 10
+CMAKE_PROGRESS_2 = 11
+CMAKE_PROGRESS_3 = 12
+CMAKE_PROGRESS_4 = 13
+CMAKE_PROGRESS_5 = 14
+CMAKE_PROGRESS_6 = 15
+CMAKE_PROGRESS_7 = 16
+CMAKE_PROGRESS_8 = 17
+CMAKE_PROGRESS_9 = 18
+CMAKE_PROGRESS_10 = 19
+CMAKE_PROGRESS_11 = 20
+CMAKE_PROGRESS_12 = 21
+CMAKE_PROGRESS_13 = 22
+CMAKE_PROGRESS_14 = 23
+CMAKE_PROGRESS_15 = 24
+CMAKE_PROGRESS_16 = 25
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_package.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_package.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_package.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_package.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_package.dir/build.make
new file mode 100644
index 0000000..529bc2d
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_package.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for mav_nonlinear_mpc_package.
+
+# Include the progress variables for this target.
+include CMakeFiles/mav_nonlinear_mpc_package.dir/progress.make
+
+mav_nonlinear_mpc_package: CMakeFiles/mav_nonlinear_mpc_package.dir/build.make
+
+.PHONY : mav_nonlinear_mpc_package
+
+# Rule to build all files generated by this target.
+CMakeFiles/mav_nonlinear_mpc_package.dir/build: mav_nonlinear_mpc_package
+
+.PHONY : CMakeFiles/mav_nonlinear_mpc_package.dir/build
+
+CMakeFiles/mav_nonlinear_mpc_package.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/mav_nonlinear_mpc_package.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/mav_nonlinear_mpc_package.dir/clean
+
+CMakeFiles/mav_nonlinear_mpc_package.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_package.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/mav_nonlinear_mpc_package.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_package.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_package.dir/cmake_clean.cmake
new file mode 100644
index 0000000..702d9bb
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_package.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/mav_nonlinear_mpc_package.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_package.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_package.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_package.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/nonlinear_mpc_node.dir/CXX.includecache b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/nonlinear_mpc_node.dir/CXX.includecache
new file mode 100644
index 0000000..7f6d313
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/nonlinear_mpc_node.dir/CXX.includecache
@@ -0,0 +1,2640 @@
+#IncludeRegexLine: ^[ 	]*[#%][ 	]*(include|import)[ 	]*[<"]([^">]+)([">])
+
+#IncludeRegexScan: ^.*$
+
+#IncludeRegexComplain: ^$
+
+#IncludeRegexTransform: 
+
+../include/mav_nonlinear_mpc/nonlinear_mpc.h
+ros/ros.h
+-
+Eigen/Eigen
+-
+stdio.h
+-
+acado_common.h
+../include/mav_nonlinear_mpc/acado_common.h
+acado_auxiliary_functions.h
+../include/mav_nonlinear_mpc/acado_auxiliary_functions.h
+std_srvs/Empty.h
+-
+geometry_msgs/Twist.h
+-
+geometry_msgs/PoseStamped.h
+-
+gazebo_msgs/GetModelState.h
+-
+
+../include/mav_nonlinear_mpc/nonlinear_mpc_node.h
+boost/bind.hpp
+-
+Eigen/Eigen
+-
+stdio.h
+-
+ros/ros.h
+-
+ros/callback_queue.h
+-
+dynamic_reconfigure/server.h
+-
+mav_nonlinear_mpc/NonLinearMPCConfig.h
+-
+mav_nonlinear_mpc/nonlinear_mpc.h
+-
+
+/home/simhe502/catkin_ws/devel/include/geometry_msgs/Point.h
+string
+-
+vector
+-
+memory
+-
+ros/types.h
+-
+ros/serialization.h
+-
+ros/builtin_message_traits.h
+-
+ros/message_operations.h
+-
+
+/home/simhe502/catkin_ws/devel/include/geometry_msgs/Pose.h
+string
+-
+vector
+-
+memory
+-
+ros/types.h
+-
+ros/serialization.h
+-
+ros/builtin_message_traits.h
+-
+ros/message_operations.h
+-
+geometry_msgs/Point.h
+-
+geometry_msgs/Quaternion.h
+-
+
+/home/simhe502/catkin_ws/devel/include/geometry_msgs/PoseStamped.h
+string
+-
+vector
+-
+memory
+-
+ros/types.h
+-
+ros/serialization.h
+-
+ros/builtin_message_traits.h
+-
+ros/message_operations.h
+-
+std_msgs/Header.h
+-
+geometry_msgs/Pose.h
+-
+
+/home/simhe502/catkin_ws/devel/include/geometry_msgs/Quaternion.h
+string
+-
+vector
+-
+memory
+-
+ros/types.h
+-
+ros/serialization.h
+-
+ros/builtin_message_traits.h
+-
+ros/message_operations.h
+-
+
+/home/simhe502/catkin_ws/devel/include/geometry_msgs/Twist.h
+string
+-
+vector
+-
+memory
+-
+ros/types.h
+-
+ros/serialization.h
+-
+ros/builtin_message_traits.h
+-
+ros/message_operations.h
+-
+geometry_msgs/Vector3.h
+-
+geometry_msgs/Vector3.h
+-
+
+/home/simhe502/catkin_ws/devel/include/geometry_msgs/Vector3.h
+string
+-
+vector
+-
+memory
+-
+ros/types.h
+-
+ros/serialization.h
+-
+ros/builtin_message_traits.h
+-
+ros/message_operations.h
+-
+
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/src/nonlinear_mpc_node.cc
+ros/ros.h
+-
+mav_nonlinear_mpc/nonlinear_mpc_node.h
+-
+
+/opt/ros/noetic/include/dynamic_reconfigure/BoolParameter.h
+string
+-
+vector
+-
+memory
+-
+ros/types.h
+-
+ros/serialization.h
+-
+ros/builtin_message_traits.h
+-
+ros/message_operations.h
+-
+
+/opt/ros/noetic/include/dynamic_reconfigure/Config.h
+string
+-
+vector
+-
+memory
+-
+ros/types.h
+-
+ros/serialization.h
+-
+ros/builtin_message_traits.h
+-
+ros/message_operations.h
+-
+dynamic_reconfigure/BoolParameter.h
+-
+dynamic_reconfigure/IntParameter.h
+-
+dynamic_reconfigure/StrParameter.h
+-
+dynamic_reconfigure/DoubleParameter.h
+-
+dynamic_reconfigure/GroupState.h
+-
+
+/opt/ros/noetic/include/dynamic_reconfigure/ConfigDescription.h
+string
+-
+vector
+-
+memory
+-
+ros/types.h
+-
+ros/serialization.h
+-
+ros/builtin_message_traits.h
+-
+ros/message_operations.h
+-
+dynamic_reconfigure/Group.h
+-
+dynamic_reconfigure/Config.h
+-
+dynamic_reconfigure/Config.h
+-
+dynamic_reconfigure/Config.h
+-
+
+/opt/ros/noetic/include/dynamic_reconfigure/DoubleParameter.h
+string
+-
+vector
+-
+memory
+-
+ros/types.h
+-
+ros/serialization.h
+-
+ros/builtin_message_traits.h
+-
+ros/message_operations.h
+-
+
+/opt/ros/noetic/include/dynamic_reconfigure/Group.h
+string
+-
+vector
+-
+memory
+-
+ros/types.h
+-
+ros/serialization.h
+-
+ros/builtin_message_traits.h
+-
+ros/message_operations.h
+-
+dynamic_reconfigure/ParamDescription.h
+-
+
+/opt/ros/noetic/include/dynamic_reconfigure/GroupState.h
+string
+-
+vector
+-
+memory
+-
+ros/types.h
+-
+ros/serialization.h
+-
+ros/builtin_message_traits.h
+-
+ros/message_operations.h
+-
+
+/opt/ros/noetic/include/dynamic_reconfigure/IntParameter.h
+string
+-
+vector
+-
+memory
+-
+ros/types.h
+-
+ros/serialization.h
+-
+ros/builtin_message_traits.h
+-
+ros/message_operations.h
+-
+
+/opt/ros/noetic/include/dynamic_reconfigure/ParamDescription.h
+string
+-
+vector
+-
+memory
+-
+ros/types.h
+-
+ros/serialization.h
+-
+ros/builtin_message_traits.h
+-
+ros/message_operations.h
+-
+
+/opt/ros/noetic/include/dynamic_reconfigure/Reconfigure.h
+ros/service_traits.h
+-
+dynamic_reconfigure/ReconfigureRequest.h
+-
+dynamic_reconfigure/ReconfigureResponse.h
+-
+
+/opt/ros/noetic/include/dynamic_reconfigure/ReconfigureRequest.h
+string
+-
+vector
+-
+memory
+-
+ros/types.h
+-
+ros/serialization.h
+-
+ros/builtin_message_traits.h
+-
+ros/message_operations.h
+-
+dynamic_reconfigure/Config.h
+-
+
+/opt/ros/noetic/include/dynamic_reconfigure/ReconfigureResponse.h
+string
+-
+vector
+-
+memory
+-
+ros/types.h
+-
+ros/serialization.h
+-
+ros/builtin_message_traits.h
+-
+ros/message_operations.h
+-
+dynamic_reconfigure/Config.h
+-
+
+/opt/ros/noetic/include/dynamic_reconfigure/StrParameter.h
+string
+-
+vector
+-
+memory
+-
+ros/types.h
+-
+ros/serialization.h
+-
+ros/builtin_message_traits.h
+-
+ros/message_operations.h
+-
+
+/opt/ros/noetic/include/dynamic_reconfigure/config_init_mutex.h
+boost/thread/mutex.hpp
+-
+ros/macros.h
+-
+
+/opt/ros/noetic/include/dynamic_reconfigure/config_tools.h
+string
+-
+vector
+-
+dynamic_reconfigure/Config.h
+-
+dynamic_reconfigure/Group.h
+-
+
+/opt/ros/noetic/include/dynamic_reconfigure/server.h
+boost/function.hpp
+-
+boost/thread/recursive_mutex.hpp
+-
+ros/node_handle.h
+-
+dynamic_reconfigure/ConfigDescription.h
+-
+dynamic_reconfigure/Reconfigure.h
+-
+
+/opt/ros/noetic/include/gazebo_msgs/GetModelState.h
+ros/service_traits.h
+-
+gazebo_msgs/GetModelStateRequest.h
+-
+gazebo_msgs/GetModelStateResponse.h
+-
+
+/opt/ros/noetic/include/gazebo_msgs/GetModelStateRequest.h
+string
+-
+vector
+-
+memory
+-
+ros/types.h
+-
+ros/serialization.h
+-
+ros/builtin_message_traits.h
+-
+ros/message_operations.h
+-
+
+/opt/ros/noetic/include/gazebo_msgs/GetModelStateResponse.h
+string
+-
+vector
+-
+memory
+-
+ros/types.h
+-
+ros/serialization.h
+-
+ros/builtin_message_traits.h
+-
+ros/message_operations.h
+-
+std_msgs/Header.h
+-
+geometry_msgs/Pose.h
+-
+geometry_msgs/Twist.h
+-
+
+/opt/ros/noetic/include/ros/advertise_options.h
+ros/forwards.h
+/opt/ros/noetic/include/ros/ros/forwards.h
+ros/message_traits.h
+/opt/ros/noetic/include/ros/ros/message_traits.h
+common.h
+/opt/ros/noetic/include/ros/common.h
+
+/opt/ros/noetic/include/ros/advertise_service_options.h
+ros/forwards.h
+/opt/ros/noetic/include/ros/ros/forwards.h
+ros/service_callback_helper.h
+/opt/ros/noetic/include/ros/ros/service_callback_helper.h
+ros/service_traits.h
+/opt/ros/noetic/include/ros/ros/service_traits.h
+ros/message_traits.h
+/opt/ros/noetic/include/ros/ros/message_traits.h
+common.h
+/opt/ros/noetic/include/ros/common.h
+
+/opt/ros/noetic/include/ros/assert.h
+ros/console.h
+/opt/ros/noetic/include/ros/ros/console.h
+ros/static_assert.h
+/opt/ros/noetic/include/ros/ros/static_assert.h
+ros/platform.h
+-
+stdlib.h
+-
+
+/opt/ros/noetic/include/ros/builtin_message_traits.h
+message_traits.h
+/opt/ros/noetic/include/ros/message_traits.h
+ros/time.h
+/opt/ros/noetic/include/ros/ros/time.h
+
+/opt/ros/noetic/include/ros/callback_queue.h
+ros/callback_queue_interface.h
+/opt/ros/noetic/include/ros/ros/callback_queue_interface.h
+ros/time.h
+/opt/ros/noetic/include/ros/ros/time.h
+common.h
+/opt/ros/noetic/include/ros/common.h
+boost/shared_ptr.hpp
+-
+boost/thread/condition_variable.hpp
+-
+boost/thread/mutex.hpp
+-
+boost/thread/shared_mutex.hpp
+-
+boost/thread/tss.hpp
+-
+list
+-
+deque
+-
+
+/opt/ros/noetic/include/ros/callback_queue_interface.h
+boost/shared_ptr.hpp
+-
+common.h
+/opt/ros/noetic/include/ros/common.h
+ros/types.h
+/opt/ros/noetic/include/ros/ros/types.h
+
+/opt/ros/noetic/include/ros/common.h
+stdint.h
+-
+assert.h
+-
+stddef.h
+-
+string
+-
+ros/assert.h
+/opt/ros/noetic/include/ros/ros/assert.h
+ros/forwards.h
+/opt/ros/noetic/include/ros/ros/forwards.h
+ros/serialized_message.h
+/opt/ros/noetic/include/ros/ros/serialized_message.h
+boost/shared_array.hpp
+-
+ros/macros.h
+-
+
+/opt/ros/noetic/include/ros/console.h
+console_backend.h
+/opt/ros/noetic/include/ros/console_backend.h
+cstdio
+-
+sstream
+-
+ros/time.h
+-
+cstdarg
+-
+ros/macros.h
+-
+map
+-
+vector
+-
+log4cxx/level.h
+/opt/ros/noetic/include/ros/log4cxx/level.h
+rosconsole/macros_generated.h
+/opt/ros/noetic/include/ros/rosconsole/macros_generated.h
+
+/opt/ros/noetic/include/ros/console_backend.h
+ros/macros.h
+-
+
+/opt/ros/noetic/include/ros/datatypes.h
+string
+-
+vector
+-
+map
+-
+set
+-
+list
+-
+boost/shared_ptr.hpp
+-
+
+/opt/ros/noetic/include/ros/duration.h
+iostream
+-
+math.h
+-
+stdexcept
+-
+climits
+-
+stdint.h
+-
+rostime_decl.h
+/opt/ros/noetic/include/ros/rostime_decl.h
+
+/opt/ros/noetic/include/ros/exception.h
+stdexcept
+-
+
+/opt/ros/noetic/include/ros/exceptions.h
+ros/exception.h
+-
+
+/opt/ros/noetic/include/ros/forwards.h
+string
+-
+vector
+-
+map
+-
+set
+-
+list
+-
+boost/shared_ptr.hpp
+-
+boost/make_shared.hpp
+-
+boost/weak_ptr.hpp
+-
+boost/function.hpp
+-
+ros/time.h
+-
+ros/macros.h
+-
+exceptions.h
+/opt/ros/noetic/include/ros/exceptions.h
+ros/datatypes.h
+/opt/ros/noetic/include/ros/ros/datatypes.h
+
+/opt/ros/noetic/include/ros/init.h
+ros/forwards.h
+/opt/ros/noetic/include/ros/ros/forwards.h
+ros/spinner.h
+/opt/ros/noetic/include/ros/ros/spinner.h
+common.h
+/opt/ros/noetic/include/ros/common.h
+
+/opt/ros/noetic/include/ros/macros.h
+
+/opt/ros/noetic/include/ros/master.h
+forwards.h
+/opt/ros/noetic/include/ros/forwards.h
+xmlrpcpp/XmlRpcValue.h
+/opt/ros/noetic/include/ros/xmlrpcpp/XmlRpcValue.h
+common.h
+/opt/ros/noetic/include/ros/common.h
+
+/opt/ros/noetic/include/ros/message.h
+ros/macros.h
+/opt/ros/noetic/include/ros/ros/macros.h
+ros/assert.h
+/opt/ros/noetic/include/ros/ros/assert.h
+string
+-
+string.h
+-
+boost/shared_ptr.hpp
+-
+boost/array.hpp
+-
+stdint.h
+-
+
+/opt/ros/noetic/include/ros/message_event.h
+ros/time.h
+/opt/ros/noetic/include/ros/ros/time.h
+ros/datatypes.h
+-
+ros/message_traits.h
+-
+boost/type_traits/is_void.hpp
+-
+boost/type_traits/is_base_of.hpp
+-
+boost/type_traits/is_const.hpp
+-
+boost/type_traits/add_const.hpp
+-
+boost/type_traits/remove_const.hpp
+-
+boost/utility/enable_if.hpp
+-
+boost/function.hpp
+-
+boost/make_shared.hpp
+-
+
+/opt/ros/noetic/include/ros/message_forward.h
+cstddef
+-
+memory
+-
+
+/opt/ros/noetic/include/ros/message_operations.h
+ostream
+-
+
+/opt/ros/noetic/include/ros/message_traits.h
+message_forward.h
+/opt/ros/noetic/include/ros/message_forward.h
+ros/time.h
+-
+string
+-
+boost/utility/enable_if.hpp
+-
+boost/type_traits/remove_const.hpp
+-
+boost/type_traits/remove_reference.hpp
+-
+
+/opt/ros/noetic/include/ros/names.h
+forwards.h
+/opt/ros/noetic/include/ros/forwards.h
+common.h
+/opt/ros/noetic/include/ros/common.h
+
+/opt/ros/noetic/include/ros/node_handle.h
+ros/forwards.h
+/opt/ros/noetic/include/ros/ros/forwards.h
+ros/publisher.h
+/opt/ros/noetic/include/ros/ros/publisher.h
+ros/subscriber.h
+/opt/ros/noetic/include/ros/ros/subscriber.h
+ros/service_server.h
+/opt/ros/noetic/include/ros/ros/service_server.h
+ros/service_client.h
+/opt/ros/noetic/include/ros/ros/service_client.h
+ros/timer.h
+/opt/ros/noetic/include/ros/ros/timer.h
+ros/rate.h
+/opt/ros/noetic/include/ros/ros/rate.h
+ros/wall_timer.h
+/opt/ros/noetic/include/ros/ros/wall_timer.h
+ros/steady_timer.h
+/opt/ros/noetic/include/ros/ros/steady_timer.h
+ros/advertise_options.h
+/opt/ros/noetic/include/ros/ros/advertise_options.h
+ros/advertise_service_options.h
+/opt/ros/noetic/include/ros/ros/advertise_service_options.h
+ros/subscribe_options.h
+/opt/ros/noetic/include/ros/ros/subscribe_options.h
+ros/service_client_options.h
+/opt/ros/noetic/include/ros/ros/service_client_options.h
+ros/timer_options.h
+/opt/ros/noetic/include/ros/ros/timer_options.h
+ros/wall_timer_options.h
+/opt/ros/noetic/include/ros/ros/wall_timer_options.h
+ros/spinner.h
+/opt/ros/noetic/include/ros/ros/spinner.h
+ros/init.h
+/opt/ros/noetic/include/ros/ros/init.h
+common.h
+/opt/ros/noetic/include/ros/common.h
+boost/bind.hpp
+-
+xmlrpcpp/XmlRpcValue.h
+-
+
+/opt/ros/noetic/include/ros/param.h
+forwards.h
+/opt/ros/noetic/include/ros/forwards.h
+common.h
+/opt/ros/noetic/include/ros/common.h
+xmlrpcpp/XmlRpcValue.h
+/opt/ros/noetic/include/ros/xmlrpcpp/XmlRpcValue.h
+vector
+-
+map
+-
+
+/opt/ros/noetic/include/ros/parameter_adapter.h
+ros/forwards.h
+/opt/ros/noetic/include/ros/ros/forwards.h
+ros/message_event.h
+/opt/ros/noetic/include/ros/ros/message_event.h
+ros/static_assert.h
+-
+boost/type_traits/add_const.hpp
+-
+boost/type_traits/remove_const.hpp
+-
+boost/type_traits/remove_reference.hpp
+-
+
+/opt/ros/noetic/include/ros/platform.h
+stdlib.h
+-
+string
+-
+
+/opt/ros/noetic/include/ros/publisher.h
+ros/forwards.h
+/opt/ros/noetic/include/ros/ros/forwards.h
+ros/common.h
+/opt/ros/noetic/include/ros/ros/common.h
+ros/message.h
+/opt/ros/noetic/include/ros/ros/message.h
+ros/serialization.h
+/opt/ros/noetic/include/ros/ros/serialization.h
+boost/bind.hpp
+-
+boost/thread/mutex.hpp
+-
+
+/opt/ros/noetic/include/ros/rate.h
+ros/time.h
+/opt/ros/noetic/include/ros/ros/time.h
+rostime_decl.h
+/opt/ros/noetic/include/ros/rostime_decl.h
+
+/opt/ros/noetic/include/ros/ros.h
+ros/time.h
+/opt/ros/noetic/include/ros/ros/time.h
+ros/rate.h
+/opt/ros/noetic/include/ros/ros/rate.h
+ros/console.h
+/opt/ros/noetic/include/ros/ros/console.h
+ros/assert.h
+/opt/ros/noetic/include/ros/ros/assert.h
+ros/common.h
+/opt/ros/noetic/include/ros/ros/common.h
+ros/types.h
+/opt/ros/noetic/include/ros/ros/types.h
+ros/node_handle.h
+/opt/ros/noetic/include/ros/ros/node_handle.h
+ros/publisher.h
+/opt/ros/noetic/include/ros/ros/publisher.h
+ros/single_subscriber_publisher.h
+/opt/ros/noetic/include/ros/ros/single_subscriber_publisher.h
+ros/service_server.h
+/opt/ros/noetic/include/ros/ros/service_server.h
+ros/subscriber.h
+/opt/ros/noetic/include/ros/ros/subscriber.h
+ros/service.h
+/opt/ros/noetic/include/ros/ros/service.h
+ros/init.h
+/opt/ros/noetic/include/ros/ros/init.h
+ros/master.h
+/opt/ros/noetic/include/ros/ros/master.h
+ros/this_node.h
+/opt/ros/noetic/include/ros/ros/this_node.h
+ros/param.h
+/opt/ros/noetic/include/ros/ros/param.h
+ros/topic.h
+/opt/ros/noetic/include/ros/ros/topic.h
+ros/names.h
+/opt/ros/noetic/include/ros/ros/names.h
+
+/opt/ros/noetic/include/ros/roscpp_serialization_macros.h
+ros/macros.h
+-
+
+/opt/ros/noetic/include/ros/rostime_decl.h
+ros/macros.h
+-
+
+/opt/ros/noetic/include/ros/serialization.h
+roscpp_serialization_macros.h
+/opt/ros/noetic/include/ros/roscpp_serialization_macros.h
+ros/types.h
+-
+ros/time.h
+-
+serialized_message.h
+/opt/ros/noetic/include/ros/serialized_message.h
+ros/message_traits.h
+/opt/ros/noetic/include/ros/ros/message_traits.h
+ros/builtin_message_traits.h
+/opt/ros/noetic/include/ros/ros/builtin_message_traits.h
+ros/exception.h
+/opt/ros/noetic/include/ros/ros/exception.h
+ros/datatypes.h
+/opt/ros/noetic/include/ros/ros/datatypes.h
+vector
+-
+map
+-
+boost/array.hpp
+-
+boost/call_traits.hpp
+-
+boost/utility/enable_if.hpp
+-
+boost/mpl/and.hpp
+-
+boost/mpl/or.hpp
+-
+boost/mpl/not.hpp
+-
+cstring
+-
+
+/opt/ros/noetic/include/ros/serialized_message.h
+roscpp_serialization_macros.h
+/opt/ros/noetic/include/ros/roscpp_serialization_macros.h
+boost/shared_array.hpp
+-
+boost/shared_ptr.hpp
+-
+
+/opt/ros/noetic/include/ros/service.h
+string
+-
+ros/common.h
+/opt/ros/noetic/include/ros/ros/common.h
+ros/message.h
+/opt/ros/noetic/include/ros/ros/message.h
+ros/forwards.h
+/opt/ros/noetic/include/ros/ros/forwards.h
+ros/node_handle.h
+/opt/ros/noetic/include/ros/ros/node_handle.h
+ros/service_traits.h
+/opt/ros/noetic/include/ros/ros/service_traits.h
+ros/names.h
+/opt/ros/noetic/include/ros/ros/names.h
+boost/shared_ptr.hpp
+-
+
+/opt/ros/noetic/include/ros/service_callback_helper.h
+ros/forwards.h
+/opt/ros/noetic/include/ros/ros/forwards.h
+ros/common.h
+/opt/ros/noetic/include/ros/ros/common.h
+ros/message.h
+/opt/ros/noetic/include/ros/ros/message.h
+ros/message_traits.h
+/opt/ros/noetic/include/ros/ros/message_traits.h
+ros/service_traits.h
+/opt/ros/noetic/include/ros/ros/service_traits.h
+ros/serialization.h
+/opt/ros/noetic/include/ros/ros/serialization.h
+boost/type_traits/is_base_of.hpp
+-
+boost/utility/enable_if.hpp
+-
+
+/opt/ros/noetic/include/ros/service_client.h
+ros/forwards.h
+/opt/ros/noetic/include/ros/ros/forwards.h
+ros/common.h
+/opt/ros/noetic/include/ros/ros/common.h
+ros/service_traits.h
+/opt/ros/noetic/include/ros/ros/service_traits.h
+ros/serialization.h
+/opt/ros/noetic/include/ros/ros/serialization.h
+
+/opt/ros/noetic/include/ros/service_client_options.h
+ros/forwards.h
+/opt/ros/noetic/include/ros/ros/forwards.h
+common.h
+/opt/ros/noetic/include/ros/common.h
+ros/service_traits.h
+/opt/ros/noetic/include/ros/ros/service_traits.h
+
+/opt/ros/noetic/include/ros/service_server.h
+ros/forwards.h
+/opt/ros/noetic/include/ros/ros/forwards.h
+common.h
+/opt/ros/noetic/include/ros/common.h
+
+/opt/ros/noetic/include/ros/service_traits.h
+boost/type_traits/remove_reference.hpp
+-
+boost/type_traits/remove_const.hpp
+-
+
+/opt/ros/noetic/include/ros/single_subscriber_publisher.h
+ros/forwards.h
+/opt/ros/noetic/include/ros/ros/forwards.h
+ros/serialization.h
+/opt/ros/noetic/include/ros/ros/serialization.h
+common.h
+/opt/ros/noetic/include/ros/common.h
+boost/utility.hpp
+-
+
+/opt/ros/noetic/include/ros/spinner.h
+ros/types.h
+/opt/ros/noetic/include/ros/ros/types.h
+common.h
+/opt/ros/noetic/include/ros/common.h
+boost/shared_ptr.hpp
+-
+
+/opt/ros/noetic/include/ros/static_assert.h
+boost/static_assert.hpp
+-
+
+/opt/ros/noetic/include/ros/steady_timer.h
+common.h
+/opt/ros/noetic/include/ros/common.h
+forwards.h
+/opt/ros/noetic/include/ros/forwards.h
+steady_timer_options.h
+/opt/ros/noetic/include/ros/steady_timer_options.h
+
+/opt/ros/noetic/include/ros/steady_timer_options.h
+common.h
+/opt/ros/noetic/include/ros/common.h
+ros/forwards.h
+/opt/ros/noetic/include/ros/ros/forwards.h
+
+/opt/ros/noetic/include/ros/subscribe_options.h
+ros/forwards.h
+/opt/ros/noetic/include/ros/ros/forwards.h
+common.h
+/opt/ros/noetic/include/ros/common.h
+ros/transport_hints.h
+/opt/ros/noetic/include/ros/ros/transport_hints.h
+ros/message_traits.h
+/opt/ros/noetic/include/ros/ros/message_traits.h
+subscription_callback_helper.h
+/opt/ros/noetic/include/ros/subscription_callback_helper.h
+
+/opt/ros/noetic/include/ros/subscriber.h
+common.h
+/opt/ros/noetic/include/ros/common.h
+ros/forwards.h
+/opt/ros/noetic/include/ros/ros/forwards.h
+ros/subscription_callback_helper.h
+/opt/ros/noetic/include/ros/ros/subscription_callback_helper.h
+
+/opt/ros/noetic/include/ros/subscription_callback_helper.h
+typeinfo
+-
+common.h
+/opt/ros/noetic/include/ros/common.h
+ros/forwards.h
+/opt/ros/noetic/include/ros/ros/forwards.h
+ros/parameter_adapter.h
+/opt/ros/noetic/include/ros/ros/parameter_adapter.h
+ros/message_traits.h
+/opt/ros/noetic/include/ros/ros/message_traits.h
+ros/builtin_message_traits.h
+/opt/ros/noetic/include/ros/ros/builtin_message_traits.h
+ros/serialization.h
+/opt/ros/noetic/include/ros/ros/serialization.h
+ros/message_event.h
+/opt/ros/noetic/include/ros/ros/message_event.h
+ros/static_assert.h
+-
+boost/type_traits/add_const.hpp
+-
+boost/type_traits/remove_const.hpp
+-
+boost/type_traits/remove_reference.hpp
+-
+boost/type_traits/is_base_of.hpp
+-
+boost/utility/enable_if.hpp
+-
+boost/make_shared.hpp
+-
+
+/opt/ros/noetic/include/ros/this_node.h
+common.h
+/opt/ros/noetic/include/ros/common.h
+forwards.h
+/opt/ros/noetic/include/ros/forwards.h
+
+/opt/ros/noetic/include/ros/time.h
+ros/platform.h
+-
+iostream
+-
+cmath
+-
+ros/exception.h
+-
+duration.h
+/opt/ros/noetic/include/ros/duration.h
+boost/math/special_functions/round.hpp
+-
+rostime_decl.h
+/opt/ros/noetic/include/ros/rostime_decl.h
+sys/timeb.h
+-
+sys/time.h
+-
+
+/opt/ros/noetic/include/ros/timer.h
+common.h
+/opt/ros/noetic/include/ros/common.h
+forwards.h
+/opt/ros/noetic/include/ros/forwards.h
+timer_options.h
+/opt/ros/noetic/include/ros/timer_options.h
+
+/opt/ros/noetic/include/ros/timer_options.h
+common.h
+/opt/ros/noetic/include/ros/common.h
+ros/forwards.h
+/opt/ros/noetic/include/ros/ros/forwards.h
+
+/opt/ros/noetic/include/ros/topic.h
+common.h
+/opt/ros/noetic/include/ros/common.h
+node_handle.h
+/opt/ros/noetic/include/ros/node_handle.h
+boost/shared_ptr.hpp
+-
+
+/opt/ros/noetic/include/ros/transport_hints.h
+common.h
+/opt/ros/noetic/include/ros/common.h
+ros/forwards.h
+/opt/ros/noetic/include/ros/ros/forwards.h
+boost/lexical_cast.hpp
+-
+
+/opt/ros/noetic/include/ros/types.h
+stdint.h
+-
+
+/opt/ros/noetic/include/ros/wall_timer.h
+common.h
+/opt/ros/noetic/include/ros/common.h
+forwards.h
+/opt/ros/noetic/include/ros/forwards.h
+wall_timer_options.h
+/opt/ros/noetic/include/ros/wall_timer_options.h
+
+/opt/ros/noetic/include/ros/wall_timer_options.h
+common.h
+/opt/ros/noetic/include/ros/common.h
+ros/forwards.h
+/opt/ros/noetic/include/ros/ros/forwards.h
+
+/opt/ros/noetic/include/rosconsole/macros_generated.h
+
+/opt/ros/noetic/include/std_msgs/Header.h
+string
+-
+vector
+-
+memory
+-
+ros/types.h
+-
+ros/serialization.h
+-
+ros/builtin_message_traits.h
+-
+ros/message_operations.h
+-
+
+/opt/ros/noetic/include/std_srvs/Empty.h
+ros/service_traits.h
+-
+std_srvs/EmptyRequest.h
+-
+std_srvs/EmptyResponse.h
+-
+
+/opt/ros/noetic/include/std_srvs/EmptyRequest.h
+string
+-
+vector
+-
+memory
+-
+ros/types.h
+-
+ros/serialization.h
+-
+ros/builtin_message_traits.h
+-
+ros/message_operations.h
+-
+
+/opt/ros/noetic/include/std_srvs/EmptyResponse.h
+string
+-
+vector
+-
+memory
+-
+ros/types.h
+-
+ros/serialization.h
+-
+ros/builtin_message_traits.h
+-
+ros/message_operations.h
+-
+
+/opt/ros/noetic/include/xmlrpcpp/XmlRpcDecl.h
+ros/macros.h
+-
+
+/opt/ros/noetic/include/xmlrpcpp/XmlRpcValue.h
+xmlrpcpp/XmlRpcDecl.h
+/opt/ros/noetic/include/xmlrpcpp/xmlrpcpp/XmlRpcDecl.h
+map
+-
+string
+-
+vector
+-
+time.h
+-
+
+/usr/include/eigen3/Eigen/Cholesky
+Core
+/usr/include/eigen3/Eigen/Core
+Jacobi
+/usr/include/eigen3/Eigen/Jacobi
+src/Core/util/DisableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h
+src/Cholesky/LLT.h
+/usr/include/eigen3/Eigen/src/Cholesky/LLT.h
+src/Cholesky/LDLT.h
+/usr/include/eigen3/Eigen/src/Cholesky/LDLT.h
+mkl_lapacke.h
+/usr/include/eigen3/Eigen/mkl_lapacke.h
+src/misc/lapacke.h
+/usr/include/eigen3/Eigen/src/misc/lapacke.h
+src/Cholesky/LLT_LAPACKE.h
+/usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h
+src/Core/util/ReenableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h
+
+/usr/include/eigen3/Eigen/Core
+src/Core/util/DisableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h
+cuda_runtime.h
+-
+new
+-
+src/Core/util/Macros.h
+/usr/include/eigen3/Eigen/src/Core/util/Macros.h
+complex
+-
+src/Core/util/MKL_support.h
+/usr/include/eigen3/Eigen/src/Core/util/MKL_support.h
+malloc.h
+-
+immintrin.h
+-
+mmintrin.h
+-
+emmintrin.h
+-
+xmmintrin.h
+-
+pmmintrin.h
+-
+tmmintrin.h
+-
+smmintrin.h
+-
+nmmintrin.h
+-
+immintrin.h
+-
+altivec.h
+-
+altivec.h
+-
+arm_neon.h
+-
+vecintrin.h
+-
+vector_types.h
+-
+host_defines.h
+-
+cuda_fp16.h
+-
+omp.h
+-
+cerrno
+-
+cstddef
+-
+cstdlib
+-
+cmath
+-
+cassert
+-
+functional
+-
+iosfwd
+-
+cstring
+-
+string
+-
+limits
+-
+climits
+-
+algorithm
+-
+type_traits
+-
+iostream
+-
+intrin.h
+-
+src/Core/util/Constants.h
+/usr/include/eigen3/Eigen/src/Core/util/Constants.h
+src/Core/util/Meta.h
+/usr/include/eigen3/Eigen/src/Core/util/Meta.h
+src/Core/util/ForwardDeclarations.h
+/usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h
+src/Core/util/StaticAssert.h
+/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h
+src/Core/util/XprHelper.h
+/usr/include/eigen3/Eigen/src/Core/util/XprHelper.h
+src/Core/util/Memory.h
+/usr/include/eigen3/Eigen/src/Core/util/Memory.h
+src/Core/NumTraits.h
+/usr/include/eigen3/Eigen/src/Core/NumTraits.h
+src/Core/MathFunctions.h
+/usr/include/eigen3/Eigen/src/Core/MathFunctions.h
+src/Core/GenericPacketMath.h
+/usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h
+src/Core/MathFunctionsImpl.h
+/usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h
+src/Core/arch/Default/ConjHelper.h
+/usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h
+src/Core/arch/SSE/PacketMath.h
+/usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h
+src/Core/arch/AVX/PacketMath.h
+/usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h
+src/Core/arch/AVX512/PacketMath.h
+/usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h
+src/Core/arch/AVX512/MathFunctions.h
+/usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h
+src/Core/arch/SSE/PacketMath.h
+/usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h
+src/Core/arch/SSE/Complex.h
+/usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h
+src/Core/arch/SSE/MathFunctions.h
+/usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h
+src/Core/arch/AVX/PacketMath.h
+/usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h
+src/Core/arch/AVX/MathFunctions.h
+/usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h
+src/Core/arch/AVX/Complex.h
+/usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h
+src/Core/arch/AVX/TypeCasting.h
+/usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h
+src/Core/arch/SSE/TypeCasting.h
+/usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h
+src/Core/arch/SSE/PacketMath.h
+/usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h
+src/Core/arch/SSE/MathFunctions.h
+/usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h
+src/Core/arch/SSE/Complex.h
+/usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h
+src/Core/arch/SSE/TypeCasting.h
+/usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h
+src/Core/arch/AltiVec/PacketMath.h
+/usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h
+src/Core/arch/AltiVec/MathFunctions.h
+/usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h
+src/Core/arch/AltiVec/Complex.h
+/usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h
+src/Core/arch/NEON/PacketMath.h
+/usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h
+src/Core/arch/NEON/MathFunctions.h
+/usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h
+src/Core/arch/NEON/Complex.h
+/usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h
+src/Core/arch/ZVector/PacketMath.h
+/usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h
+src/Core/arch/ZVector/MathFunctions.h
+/usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h
+src/Core/arch/ZVector/Complex.h
+/usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h
+src/Core/arch/CUDA/Half.h
+/usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h
+src/Core/arch/CUDA/PacketMathHalf.h
+/usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h
+src/Core/arch/CUDA/TypeCasting.h
+/usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h
+src/Core/arch/CUDA/PacketMath.h
+/usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h
+src/Core/arch/CUDA/MathFunctions.h
+/usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h
+src/Core/arch/Default/Settings.h
+/usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h
+src/Core/functors/TernaryFunctors.h
+/usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h
+src/Core/functors/BinaryFunctors.h
+/usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h
+src/Core/functors/UnaryFunctors.h
+/usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h
+src/Core/functors/NullaryFunctors.h
+/usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h
+src/Core/functors/StlFunctors.h
+/usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h
+src/Core/functors/AssignmentFunctors.h
+/usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h
+src/Core/arch/CUDA/Complex.h
+/usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h
+src/Core/IO.h
+/usr/include/eigen3/Eigen/src/Core/IO.h
+src/Core/DenseCoeffsBase.h
+/usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h
+src/Core/DenseBase.h
+/usr/include/eigen3/Eigen/src/Core/DenseBase.h
+src/Core/MatrixBase.h
+/usr/include/eigen3/Eigen/src/Core/MatrixBase.h
+src/Core/EigenBase.h
+/usr/include/eigen3/Eigen/src/Core/EigenBase.h
+src/Core/Product.h
+/usr/include/eigen3/Eigen/src/Core/Product.h
+src/Core/CoreEvaluators.h
+/usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h
+src/Core/AssignEvaluator.h
+/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h
+src/Core/Assign.h
+/usr/include/eigen3/Eigen/src/Core/Assign.h
+src/Core/ArrayBase.h
+/usr/include/eigen3/Eigen/src/Core/ArrayBase.h
+src/Core/util/BlasUtil.h
+/usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h
+src/Core/DenseStorage.h
+/usr/include/eigen3/Eigen/src/Core/DenseStorage.h
+src/Core/NestByValue.h
+/usr/include/eigen3/Eigen/src/Core/NestByValue.h
+src/Core/ReturnByValue.h
+/usr/include/eigen3/Eigen/src/Core/ReturnByValue.h
+src/Core/NoAlias.h
+/usr/include/eigen3/Eigen/src/Core/NoAlias.h
+src/Core/PlainObjectBase.h
+/usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h
+src/Core/Matrix.h
+/usr/include/eigen3/Eigen/src/Core/Matrix.h
+src/Core/Array.h
+/usr/include/eigen3/Eigen/src/Core/Array.h
+src/Core/CwiseTernaryOp.h
+/usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h
+src/Core/CwiseBinaryOp.h
+/usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h
+src/Core/CwiseUnaryOp.h
+/usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h
+src/Core/CwiseNullaryOp.h
+/usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h
+src/Core/CwiseUnaryView.h
+/usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h
+src/Core/SelfCwiseBinaryOp.h
+/usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h
+src/Core/Dot.h
+/usr/include/eigen3/Eigen/src/Core/Dot.h
+src/Core/StableNorm.h
+/usr/include/eigen3/Eigen/src/Core/StableNorm.h
+src/Core/Stride.h
+/usr/include/eigen3/Eigen/src/Core/Stride.h
+src/Core/MapBase.h
+/usr/include/eigen3/Eigen/src/Core/MapBase.h
+src/Core/Map.h
+/usr/include/eigen3/Eigen/src/Core/Map.h
+src/Core/Ref.h
+/usr/include/eigen3/Eigen/src/Core/Ref.h
+src/Core/Block.h
+/usr/include/eigen3/Eigen/src/Core/Block.h
+src/Core/VectorBlock.h
+/usr/include/eigen3/Eigen/src/Core/VectorBlock.h
+src/Core/Transpose.h
+/usr/include/eigen3/Eigen/src/Core/Transpose.h
+src/Core/DiagonalMatrix.h
+/usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h
+src/Core/Diagonal.h
+/usr/include/eigen3/Eigen/src/Core/Diagonal.h
+src/Core/DiagonalProduct.h
+/usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h
+src/Core/Redux.h
+/usr/include/eigen3/Eigen/src/Core/Redux.h
+src/Core/Visitor.h
+/usr/include/eigen3/Eigen/src/Core/Visitor.h
+src/Core/Fuzzy.h
+/usr/include/eigen3/Eigen/src/Core/Fuzzy.h
+src/Core/Swap.h
+/usr/include/eigen3/Eigen/src/Core/Swap.h
+src/Core/CommaInitializer.h
+/usr/include/eigen3/Eigen/src/Core/CommaInitializer.h
+src/Core/GeneralProduct.h
+/usr/include/eigen3/Eigen/src/Core/GeneralProduct.h
+src/Core/Solve.h
+/usr/include/eigen3/Eigen/src/Core/Solve.h
+src/Core/Inverse.h
+/usr/include/eigen3/Eigen/src/Core/Inverse.h
+src/Core/SolverBase.h
+/usr/include/eigen3/Eigen/src/Core/SolverBase.h
+src/Core/PermutationMatrix.h
+/usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h
+src/Core/Transpositions.h
+/usr/include/eigen3/Eigen/src/Core/Transpositions.h
+src/Core/TriangularMatrix.h
+/usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h
+src/Core/SelfAdjointView.h
+/usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h
+src/Core/products/GeneralBlockPanelKernel.h
+/usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h
+src/Core/products/Parallelizer.h
+/usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h
+src/Core/ProductEvaluators.h
+/usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h
+src/Core/products/GeneralMatrixVector.h
+/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h
+src/Core/products/GeneralMatrixMatrix.h
+/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h
+src/Core/SolveTriangular.h
+/usr/include/eigen3/Eigen/src/Core/SolveTriangular.h
+src/Core/products/GeneralMatrixMatrixTriangular.h
+/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h
+src/Core/products/SelfadjointMatrixVector.h
+/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h
+src/Core/products/SelfadjointMatrixMatrix.h
+/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h
+src/Core/products/SelfadjointProduct.h
+/usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h
+src/Core/products/SelfadjointRank2Update.h
+/usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h
+src/Core/products/TriangularMatrixVector.h
+/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h
+src/Core/products/TriangularMatrixMatrix.h
+/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h
+src/Core/products/TriangularSolverMatrix.h
+/usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h
+src/Core/products/TriangularSolverVector.h
+/usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h
+src/Core/BandMatrix.h
+/usr/include/eigen3/Eigen/src/Core/BandMatrix.h
+src/Core/CoreIterators.h
+/usr/include/eigen3/Eigen/src/Core/CoreIterators.h
+src/Core/ConditionEstimator.h
+/usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h
+src/Core/BooleanRedux.h
+/usr/include/eigen3/Eigen/src/Core/BooleanRedux.h
+src/Core/Select.h
+/usr/include/eigen3/Eigen/src/Core/Select.h
+src/Core/VectorwiseOp.h
+/usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h
+src/Core/Random.h
+/usr/include/eigen3/Eigen/src/Core/Random.h
+src/Core/Replicate.h
+/usr/include/eigen3/Eigen/src/Core/Replicate.h
+src/Core/Reverse.h
+/usr/include/eigen3/Eigen/src/Core/Reverse.h
+src/Core/ArrayWrapper.h
+/usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h
+src/Core/products/GeneralMatrixMatrix_BLAS.h
+/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h
+src/Core/products/GeneralMatrixVector_BLAS.h
+/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h
+src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h
+/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h
+src/Core/products/SelfadjointMatrixMatrix_BLAS.h
+/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h
+src/Core/products/SelfadjointMatrixVector_BLAS.h
+/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h
+src/Core/products/TriangularMatrixMatrix_BLAS.h
+/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h
+src/Core/products/TriangularMatrixVector_BLAS.h
+/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h
+src/Core/products/TriangularSolverMatrix_BLAS.h
+/usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h
+src/Core/Assign_MKL.h
+/usr/include/eigen3/Eigen/src/Core/Assign_MKL.h
+src/Core/GlobalFunctions.h
+/usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h
+src/Core/util/ReenableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h
+
+/usr/include/eigen3/Eigen/Dense
+Core
+/usr/include/eigen3/Eigen/Core
+LU
+/usr/include/eigen3/Eigen/LU
+Cholesky
+/usr/include/eigen3/Eigen/Cholesky
+QR
+/usr/include/eigen3/Eigen/QR
+SVD
+/usr/include/eigen3/Eigen/SVD
+Geometry
+/usr/include/eigen3/Eigen/Geometry
+Eigenvalues
+/usr/include/eigen3/Eigen/Eigenvalues
+
+/usr/include/eigen3/Eigen/Eigen
+Dense
+/usr/include/eigen3/Eigen/Dense
+Sparse
+/usr/include/eigen3/Eigen/Sparse
+
+/usr/include/eigen3/Eigen/Eigenvalues
+Core
+/usr/include/eigen3/Eigen/Core
+src/Core/util/DisableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h
+Cholesky
+/usr/include/eigen3/Eigen/Cholesky
+Jacobi
+/usr/include/eigen3/Eigen/Jacobi
+Householder
+/usr/include/eigen3/Eigen/Householder
+LU
+/usr/include/eigen3/Eigen/LU
+Geometry
+/usr/include/eigen3/Eigen/Geometry
+src/misc/RealSvd2x2.h
+/usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h
+src/Eigenvalues/Tridiagonalization.h
+/usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h
+src/Eigenvalues/RealSchur.h
+/usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h
+src/Eigenvalues/EigenSolver.h
+/usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h
+src/Eigenvalues/SelfAdjointEigenSolver.h
+/usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h
+src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h
+/usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h
+src/Eigenvalues/HessenbergDecomposition.h
+/usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h
+src/Eigenvalues/ComplexSchur.h
+/usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h
+src/Eigenvalues/ComplexEigenSolver.h
+/usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h
+src/Eigenvalues/RealQZ.h
+/usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h
+src/Eigenvalues/GeneralizedEigenSolver.h
+/usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h
+src/Eigenvalues/MatrixBaseEigenvalues.h
+/usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h
+mkl_lapacke.h
+/usr/include/eigen3/Eigen/mkl_lapacke.h
+src/misc/lapacke.h
+/usr/include/eigen3/Eigen/src/misc/lapacke.h
+src/Eigenvalues/RealSchur_LAPACKE.h
+/usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h
+src/Eigenvalues/ComplexSchur_LAPACKE.h
+/usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h
+src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h
+/usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h
+src/Core/util/ReenableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h
+
+/usr/include/eigen3/Eigen/Geometry
+Core
+/usr/include/eigen3/Eigen/Core
+src/Core/util/DisableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h
+SVD
+/usr/include/eigen3/Eigen/SVD
+LU
+/usr/include/eigen3/Eigen/LU
+limits
+-
+src/Geometry/OrthoMethods.h
+/usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h
+src/Geometry/EulerAngles.h
+/usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h
+src/Geometry/Homogeneous.h
+/usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h
+src/Geometry/RotationBase.h
+/usr/include/eigen3/Eigen/src/Geometry/RotationBase.h
+src/Geometry/Rotation2D.h
+/usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h
+src/Geometry/Quaternion.h
+/usr/include/eigen3/Eigen/src/Geometry/Quaternion.h
+src/Geometry/AngleAxis.h
+/usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h
+src/Geometry/Transform.h
+/usr/include/eigen3/Eigen/src/Geometry/Transform.h
+src/Geometry/Translation.h
+/usr/include/eigen3/Eigen/src/Geometry/Translation.h
+src/Geometry/Scaling.h
+/usr/include/eigen3/Eigen/src/Geometry/Scaling.h
+src/Geometry/Hyperplane.h
+/usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h
+src/Geometry/ParametrizedLine.h
+/usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h
+src/Geometry/AlignedBox.h
+/usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h
+src/Geometry/Umeyama.h
+/usr/include/eigen3/Eigen/src/Geometry/Umeyama.h
+src/Geometry/arch/Geometry_SSE.h
+/usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h
+src/Core/util/ReenableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h
+
+/usr/include/eigen3/Eigen/Householder
+Core
+/usr/include/eigen3/Eigen/Core
+src/Core/util/DisableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h
+src/Householder/Householder.h
+/usr/include/eigen3/Eigen/src/Householder/Householder.h
+src/Householder/HouseholderSequence.h
+/usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h
+src/Householder/BlockHouseholder.h
+/usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h
+src/Core/util/ReenableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h
+
+/usr/include/eigen3/Eigen/IterativeLinearSolvers
+SparseCore
+/usr/include/eigen3/Eigen/SparseCore
+OrderingMethods
+/usr/include/eigen3/Eigen/OrderingMethods
+src/Core/util/DisableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h
+Eigen/IterativeLinearSolvers
+-
+src/IterativeLinearSolvers/SolveWithGuess.h
+/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h
+src/IterativeLinearSolvers/IterativeSolverBase.h
+/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h
+src/IterativeLinearSolvers/BasicPreconditioners.h
+/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h
+src/IterativeLinearSolvers/ConjugateGradient.h
+/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h
+src/IterativeLinearSolvers/LeastSquareConjugateGradient.h
+/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h
+src/IterativeLinearSolvers/BiCGSTAB.h
+/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h
+src/IterativeLinearSolvers/IncompleteLUT.h
+/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h
+src/IterativeLinearSolvers/IncompleteCholesky.h
+/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h
+src/Core/util/ReenableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h
+
+/usr/include/eigen3/Eigen/Jacobi
+Core
+/usr/include/eigen3/Eigen/Core
+src/Core/util/DisableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h
+src/Jacobi/Jacobi.h
+/usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h
+src/Core/util/ReenableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h
+
+/usr/include/eigen3/Eigen/LU
+Core
+/usr/include/eigen3/Eigen/Core
+src/Core/util/DisableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h
+src/misc/Kernel.h
+/usr/include/eigen3/Eigen/src/misc/Kernel.h
+src/misc/Image.h
+/usr/include/eigen3/Eigen/src/misc/Image.h
+src/LU/FullPivLU.h
+/usr/include/eigen3/Eigen/src/LU/FullPivLU.h
+src/LU/PartialPivLU.h
+/usr/include/eigen3/Eigen/src/LU/PartialPivLU.h
+mkl_lapacke.h
+/usr/include/eigen3/Eigen/mkl_lapacke.h
+src/misc/lapacke.h
+/usr/include/eigen3/Eigen/src/misc/lapacke.h
+src/LU/PartialPivLU_LAPACKE.h
+/usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h
+src/LU/Determinant.h
+/usr/include/eigen3/Eigen/src/LU/Determinant.h
+src/LU/InverseImpl.h
+/usr/include/eigen3/Eigen/src/LU/InverseImpl.h
+src/LU/arch/Inverse_SSE.h
+/usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h
+src/Core/util/ReenableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h
+
+/usr/include/eigen3/Eigen/OrderingMethods
+SparseCore
+/usr/include/eigen3/Eigen/SparseCore
+src/Core/util/DisableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h
+src/OrderingMethods/Amd.h
+/usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h
+src/OrderingMethods/Ordering.h
+/usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h
+src/Core/util/ReenableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h
+
+/usr/include/eigen3/Eigen/QR
+Core
+/usr/include/eigen3/Eigen/Core
+src/Core/util/DisableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h
+Cholesky
+/usr/include/eigen3/Eigen/Cholesky
+Jacobi
+/usr/include/eigen3/Eigen/Jacobi
+Householder
+/usr/include/eigen3/Eigen/Householder
+src/QR/HouseholderQR.h
+/usr/include/eigen3/Eigen/src/QR/HouseholderQR.h
+src/QR/FullPivHouseholderQR.h
+/usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h
+src/QR/ColPivHouseholderQR.h
+/usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h
+src/QR/CompleteOrthogonalDecomposition.h
+/usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h
+mkl_lapacke.h
+/usr/include/eigen3/Eigen/mkl_lapacke.h
+src/misc/lapacke.h
+/usr/include/eigen3/Eigen/src/misc/lapacke.h
+src/QR/HouseholderQR_LAPACKE.h
+/usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h
+src/QR/ColPivHouseholderQR_LAPACKE.h
+/usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h
+src/Core/util/ReenableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h
+
+/usr/include/eigen3/Eigen/SVD
+QR
+/usr/include/eigen3/Eigen/QR
+Householder
+/usr/include/eigen3/Eigen/Householder
+Jacobi
+/usr/include/eigen3/Eigen/Jacobi
+src/Core/util/DisableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h
+src/misc/RealSvd2x2.h
+/usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h
+src/SVD/UpperBidiagonalization.h
+/usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h
+src/SVD/SVDBase.h
+/usr/include/eigen3/Eigen/src/SVD/SVDBase.h
+src/SVD/JacobiSVD.h
+/usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h
+src/SVD/BDCSVD.h
+/usr/include/eigen3/Eigen/src/SVD/BDCSVD.h
+mkl_lapacke.h
+/usr/include/eigen3/Eigen/mkl_lapacke.h
+src/misc/lapacke.h
+/usr/include/eigen3/Eigen/src/misc/lapacke.h
+src/SVD/JacobiSVD_LAPACKE.h
+/usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h
+src/Core/util/ReenableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h
+
+/usr/include/eigen3/Eigen/Sparse
+Eigen/Sparse
+-
+SparseCore
+/usr/include/eigen3/Eigen/SparseCore
+OrderingMethods
+/usr/include/eigen3/Eigen/OrderingMethods
+SparseCholesky
+/usr/include/eigen3/Eigen/SparseCholesky
+SparseLU
+/usr/include/eigen3/Eigen/SparseLU
+SparseQR
+/usr/include/eigen3/Eigen/SparseQR
+IterativeLinearSolvers
+/usr/include/eigen3/Eigen/IterativeLinearSolvers
+
+/usr/include/eigen3/Eigen/SparseCholesky
+SparseCore
+/usr/include/eigen3/Eigen/SparseCore
+OrderingMethods
+/usr/include/eigen3/Eigen/OrderingMethods
+src/Core/util/DisableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h
+src/SparseCholesky/SimplicialCholesky.h
+/usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h
+src/SparseCholesky/SimplicialCholesky_impl.h
+/usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h
+src/Core/util/ReenableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h
+
+/usr/include/eigen3/Eigen/SparseCore
+Core
+/usr/include/eigen3/Eigen/Core
+src/Core/util/DisableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h
+vector
+-
+map
+-
+cstdlib
+-
+cstring
+-
+algorithm
+-
+src/SparseCore/SparseUtil.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h
+src/SparseCore/SparseMatrixBase.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h
+src/SparseCore/SparseAssign.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h
+src/SparseCore/CompressedStorage.h
+/usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h
+src/SparseCore/AmbiVector.h
+/usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h
+src/SparseCore/SparseCompressedBase.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h
+src/SparseCore/SparseMatrix.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h
+src/SparseCore/SparseMap.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h
+src/SparseCore/MappedSparseMatrix.h
+/usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h
+src/SparseCore/SparseVector.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h
+src/SparseCore/SparseRef.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h
+src/SparseCore/SparseCwiseUnaryOp.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h
+src/SparseCore/SparseCwiseBinaryOp.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h
+src/SparseCore/SparseTranspose.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h
+src/SparseCore/SparseBlock.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h
+src/SparseCore/SparseDot.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h
+src/SparseCore/SparseRedux.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h
+src/SparseCore/SparseView.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseView.h
+src/SparseCore/SparseDiagonalProduct.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h
+src/SparseCore/ConservativeSparseSparseProduct.h
+/usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h
+src/SparseCore/SparseSparseProductWithPruning.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h
+src/SparseCore/SparseProduct.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h
+src/SparseCore/SparseDenseProduct.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h
+src/SparseCore/SparseSelfAdjointView.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h
+src/SparseCore/SparseTriangularView.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h
+src/SparseCore/TriangularSolver.h
+/usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h
+src/SparseCore/SparsePermutation.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h
+src/SparseCore/SparseFuzzy.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h
+src/SparseCore/SparseSolverBase.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h
+src/Core/util/ReenableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h
+
+/usr/include/eigen3/Eigen/SparseLU
+SparseCore
+/usr/include/eigen3/Eigen/SparseCore
+OrderingMethods
+/usr/include/eigen3/Eigen/OrderingMethods
+src/SparseLU/SparseLU_gemm_kernel.h
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h
+src/SparseLU/SparseLU_Structs.h
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h
+src/SparseLU/SparseLU_SupernodalMatrix.h
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h
+src/SparseLU/SparseLUImpl.h
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h
+src/SparseCore/SparseColEtree.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h
+src/SparseLU/SparseLU_Memory.h
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h
+src/SparseLU/SparseLU_heap_relax_snode.h
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h
+src/SparseLU/SparseLU_relax_snode.h
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h
+src/SparseLU/SparseLU_pivotL.h
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h
+src/SparseLU/SparseLU_panel_dfs.h
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h
+src/SparseLU/SparseLU_kernel_bmod.h
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h
+src/SparseLU/SparseLU_panel_bmod.h
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h
+src/SparseLU/SparseLU_column_dfs.h
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h
+src/SparseLU/SparseLU_column_bmod.h
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h
+src/SparseLU/SparseLU_copy_to_ucol.h
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h
+src/SparseLU/SparseLU_pruneL.h
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h
+src/SparseLU/SparseLU_Utils.h
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h
+src/SparseLU/SparseLU.h
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h
+
+/usr/include/eigen3/Eigen/SparseQR
+SparseCore
+/usr/include/eigen3/Eigen/SparseCore
+OrderingMethods
+/usr/include/eigen3/Eigen/OrderingMethods
+src/Core/util/DisableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h
+OrderingMethods
+/usr/include/eigen3/Eigen/OrderingMethods
+src/SparseCore/SparseColEtree.h
+/usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h
+src/SparseQR/SparseQR.h
+/usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h
+src/Core/util/ReenableStupidWarnings.h
+/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h
+
+/usr/include/eigen3/Eigen/src/Cholesky/LDLT.h
+
+/usr/include/eigen3/Eigen/src/Cholesky/LLT.h
+
+/usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h
+
+/usr/include/eigen3/Eigen/src/Core/Array.h
+
+/usr/include/eigen3/Eigen/src/Core/ArrayBase.h
+../plugins/CommonCwiseUnaryOps.h
+/usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h
+../plugins/MatrixCwiseUnaryOps.h
+/usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h
+../plugins/ArrayCwiseUnaryOps.h
+/usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h
+../plugins/CommonCwiseBinaryOps.h
+/usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h
+../plugins/MatrixCwiseBinaryOps.h
+/usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h
+../plugins/ArrayCwiseBinaryOps.h
+/usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h
+
+/usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h
+
+/usr/include/eigen3/Eigen/src/Core/Assign.h
+
+/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h
+
+/usr/include/eigen3/Eigen/src/Core/Assign_MKL.h
+
+/usr/include/eigen3/Eigen/src/Core/BandMatrix.h
+
+/usr/include/eigen3/Eigen/src/Core/Block.h
+
+/usr/include/eigen3/Eigen/src/Core/BooleanRedux.h
+
+/usr/include/eigen3/Eigen/src/Core/CommaInitializer.h
+
+/usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h
+
+/usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h
+
+/usr/include/eigen3/Eigen/src/Core/CoreIterators.h
+
+/usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h
+
+/usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h
+
+/usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h
+
+/usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h
+
+/usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h
+
+/usr/include/eigen3/Eigen/src/Core/DenseBase.h
+../plugins/BlockMethods.h
+/usr/include/eigen3/Eigen/src/plugins/BlockMethods.h
+
+/usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h
+
+/usr/include/eigen3/Eigen/src/Core/DenseStorage.h
+
+/usr/include/eigen3/Eigen/src/Core/Diagonal.h
+
+/usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h
+
+/usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h
+
+/usr/include/eigen3/Eigen/src/Core/Dot.h
+
+/usr/include/eigen3/Eigen/src/Core/EigenBase.h
+
+/usr/include/eigen3/Eigen/src/Core/Fuzzy.h
+
+/usr/include/eigen3/Eigen/src/Core/GeneralProduct.h
+
+/usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h
+
+/usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h
+
+/usr/include/eigen3/Eigen/src/Core/IO.h
+
+/usr/include/eigen3/Eigen/src/Core/Inverse.h
+
+/usr/include/eigen3/Eigen/src/Core/Map.h
+
+/usr/include/eigen3/Eigen/src/Core/MapBase.h
+
+/usr/include/eigen3/Eigen/src/Core/MathFunctions.h
+
+/usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h
+
+/usr/include/eigen3/Eigen/src/Core/Matrix.h
+
+/usr/include/eigen3/Eigen/src/Core/MatrixBase.h
+../plugins/CommonCwiseUnaryOps.h
+/usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h
+../plugins/CommonCwiseBinaryOps.h
+/usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h
+../plugins/MatrixCwiseUnaryOps.h
+/usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h
+../plugins/MatrixCwiseBinaryOps.h
+/usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h
+
+/usr/include/eigen3/Eigen/src/Core/NestByValue.h
+
+/usr/include/eigen3/Eigen/src/Core/NoAlias.h
+
+/usr/include/eigen3/Eigen/src/Core/NumTraits.h
+
+/usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h
+
+/usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h
+
+/usr/include/eigen3/Eigen/src/Core/Product.h
+
+/usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h
+
+/usr/include/eigen3/Eigen/src/Core/Random.h
+
+/usr/include/eigen3/Eigen/src/Core/Redux.h
+
+/usr/include/eigen3/Eigen/src/Core/Ref.h
+
+/usr/include/eigen3/Eigen/src/Core/Replicate.h
+
+/usr/include/eigen3/Eigen/src/Core/ReturnByValue.h
+
+/usr/include/eigen3/Eigen/src/Core/Reverse.h
+
+/usr/include/eigen3/Eigen/src/Core/Select.h
+
+/usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h
+
+/usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h
+
+/usr/include/eigen3/Eigen/src/Core/Solve.h
+
+/usr/include/eigen3/Eigen/src/Core/SolveTriangular.h
+
+/usr/include/eigen3/Eigen/src/Core/SolverBase.h
+
+/usr/include/eigen3/Eigen/src/Core/StableNorm.h
+
+/usr/include/eigen3/Eigen/src/Core/Stride.h
+
+/usr/include/eigen3/Eigen/src/Core/Swap.h
+
+/usr/include/eigen3/Eigen/src/Core/Transpose.h
+
+/usr/include/eigen3/Eigen/src/Core/Transpositions.h
+
+/usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h
+
+/usr/include/eigen3/Eigen/src/Core/VectorBlock.h
+
+/usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h
+
+/usr/include/eigen3/Eigen/src/Core/Visitor.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h
+
+/usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h
+stdint.h
+-
+
+/usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h
+
+/usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h
+
+/usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h
+
+/usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h
+
+/usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h
+
+/usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h
+
+/usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h
+
+/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h
+
+/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h
+
+/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h
+
+/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h
+
+/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h
+
+/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h
+
+/usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h
+
+/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h
+
+/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h
+
+/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h
+
+/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h
+
+/usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h
+
+/usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h
+
+/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h
+
+/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h
+
+/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h
+
+/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h
+
+/usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h
+
+/usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h
+
+/usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h
+
+/usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h
+
+/usr/include/eigen3/Eigen/src/Core/util/Constants.h
+
+/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h
+
+/usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h
+
+/usr/include/eigen3/Eigen/src/Core/util/MKL_support.h
+mkl.h
+-
+../../misc/blas.h
+/usr/include/eigen3/Eigen/src/misc/blas.h
+
+/usr/include/eigen3/Eigen/src/Core/util/Macros.h
+cstdlib
+-
+iostream
+-
+
+/usr/include/eigen3/Eigen/src/Core/util/Memory.h
+
+/usr/include/eigen3/Eigen/src/Core/util/Meta.h
+cfloat
+-
+math_constants.h
+-
+cstdint
+-
+
+/usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h
+
+/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h
+
+/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h
+
+/usr/include/eigen3/Eigen/src/Core/util/XprHelper.h
+
+/usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h
+./ComplexSchur.h
+/usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h
+
+/usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h
+./HessenbergDecomposition.h
+/usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h
+
+/usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h
+
+/usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h
+./RealSchur.h
+/usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h
+
+/usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h
+./RealQZ.h
+/usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h
+
+/usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h
+./Tridiagonalization.h
+/usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h
+
+/usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h
+
+/usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h
+
+/usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h
+
+/usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h
+./HessenbergDecomposition.h
+/usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h
+
+/usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h
+
+/usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h
+./Tridiagonalization.h
+/usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h
+
+/usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h
+
+/usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h
+
+/usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h
+
+/usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h
+
+/usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h
+
+/usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h
+
+/usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h
+
+/usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h
+
+/usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h
+
+/usr/include/eigen3/Eigen/src/Geometry/Quaternion.h
+
+/usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h
+
+/usr/include/eigen3/Eigen/src/Geometry/RotationBase.h
+
+/usr/include/eigen3/Eigen/src/Geometry/Scaling.h
+
+/usr/include/eigen3/Eigen/src/Geometry/Transform.h
+
+/usr/include/eigen3/Eigen/src/Geometry/Translation.h
+
+/usr/include/eigen3/Eigen/src/Geometry/Umeyama.h
+
+/usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h
+
+/usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h
+
+/usr/include/eigen3/Eigen/src/Householder/Householder.h
+
+/usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h
+
+/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h
+
+/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h
+
+/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h
+
+/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h
+vector
+-
+list
+-
+
+/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h
+
+/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h
+
+/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h
+
+/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h
+
+/usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h
+
+/usr/include/eigen3/Eigen/src/LU/Determinant.h
+
+/usr/include/eigen3/Eigen/src/LU/FullPivLU.h
+
+/usr/include/eigen3/Eigen/src/LU/InverseImpl.h
+
+/usr/include/eigen3/Eigen/src/LU/PartialPivLU.h
+
+/usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h
+
+/usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h
+
+/usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h
+../Core/util/NonMPL2.h
+/usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h
+
+/usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h
+
+/usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h
+Eigen_Colamd.h
+/usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h
+
+/usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h
+
+/usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h
+
+/usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h
+
+/usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h
+
+/usr/include/eigen3/Eigen/src/QR/HouseholderQR.h
+
+/usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h
+
+/usr/include/eigen3/Eigen/src/SVD/BDCSVD.h
+
+/usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h
+
+/usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h
+
+/usr/include/eigen3/Eigen/src/SVD/SVDBase.h
+
+/usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h
+
+/usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h
+
+/usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h
+../Core/util/NonMPL2.h
+/usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h
+../plugins/CommonCwiseUnaryOps.h
+/usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h
+../plugins/CommonCwiseBinaryOps.h
+/usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h
+../plugins/MatrixCwiseUnaryOps.h
+/usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h
+../plugins/MatrixCwiseBinaryOps.h
+/usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h
+../plugins/BlockMethods.h
+/usr/include/eigen3/Eigen/src/plugins/BlockMethods.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/SparseView.h
+
+/usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h
+
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h
+
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h
+
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h
+
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h
+
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h
+
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h
+
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h
+
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h
+
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h
+
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h
+
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h
+
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h
+
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h
+
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h
+
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h
+
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h
+
+/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h
+
+/usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h
+
+/usr/include/eigen3/Eigen/src/misc/Image.h
+
+/usr/include/eigen3/Eigen/src/misc/Kernel.h
+
+/usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h
+
+/usr/include/eigen3/Eigen/src/misc/blas.h
+
+/usr/include/eigen3/Eigen/src/misc/lapacke.h
+lapacke_config.h
+/usr/include/eigen3/Eigen/src/misc/lapacke_config.h
+stdlib.h
+-
+complex.h
+-
+complex.h
+-
+lapacke_mangling.h
+/usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h
+
+/usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h
+
+/usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h
+
+/usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h
+
+/usr/include/eigen3/Eigen/src/plugins/BlockMethods.h
+
+/usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h
+
+/usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h
+
+/usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h
+
+/usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h
+
+acado_auxiliary_functions.h
+acado_common.h
+acado_common.h
+Windows.h
+-
+unistd.h
+unistd.h
+mach/mach_time.h
+-
+time.h
+-
+sys/stat.h
+-
+sys/time.h
+-
+
+acado_common.h
+math.h
+-
+string.h
+-
+acado_qpoases_interface.hpp
+acado_qpoases_interface.hpp
+
+acado_qpoases_interface.hpp
+stdio.h
+-
+math.h
+-
+
+devel/include/mav_nonlinear_mpc/NonLinearMPCConfig.h
+dynamic_reconfigure/config_tools.h
+-
+limits
+-
+ros/node_handle.h
+-
+dynamic_reconfigure/ConfigDescription.h
+-
+dynamic_reconfigure/ParamDescription.h
+-
+dynamic_reconfigure/Group.h
+-
+dynamic_reconfigure/config_init_mutex.h
+-
+boost/any.hpp
+-
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/nonlinear_mpc_node.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/nonlinear_mpc_node.dir/DependInfo.cmake
new file mode 100644
index 0000000..52b9e88
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/nonlinear_mpc_node.dir/DependInfo.cmake
@@ -0,0 +1,39 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  "CXX"
+  )
+# The set of files for implicit dependencies of each language:
+set(CMAKE_DEPENDS_CHECK_CXX
+  "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/src/nonlinear_mpc_node.cc" "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o"
+  )
+set(CMAKE_CXX_COMPILER_ID "GNU")
+
+# Preprocessor definitions for this target.
+set(CMAKE_TARGET_DEFINITIONS_CXX
+  "ROSCONSOLE_BACKEND_LOG4CXX"
+  "ROS_BUILD_SHARED_LIBS=1"
+  "ROS_PACKAGE_NAME=\"mav_nonlinear_mpc\""
+  )
+
+# The include file search paths:
+set(CMAKE_CXX_TARGET_INCLUDE_PATH
+  "devel/include"
+  "../include"
+  "/home/simhe502/catkin_ws/devel/include"
+  "/home/simhe502/catkin_ws/src/common_msgs/sensor_msgs/include"
+  "/opt/ros/noetic/include"
+  "/opt/ros/noetic/share/xmlrpcpp/cmake/../../../include/xmlrpcpp"
+  "/usr/include/eigen3"
+  "."
+  "qpoases"
+  "qpoases/INCLUDE"
+  "qpoases/SRC"
+  )
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/mav_nonlinear_mpc_lib.dir/DependInfo.cmake"
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/nonlinear_mpc_node.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/nonlinear_mpc_node.dir/build.make
new file mode 100644
index 0000000..22da921
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/nonlinear_mpc_node.dir/build.make
@@ -0,0 +1,145 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Include any dependencies generated for this target.
+include CMakeFiles/nonlinear_mpc_node.dir/depend.make
+
+# Include the progress variables for this target.
+include CMakeFiles/nonlinear_mpc_node.dir/progress.make
+
+# Include the compile flags for this target's objects.
+include CMakeFiles/nonlinear_mpc_node.dir/flags.make
+
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: CMakeFiles/nonlinear_mpc_node.dir/flags.make
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: ../src/nonlinear_mpc_node.cc
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o"
+	/usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o -c /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/src/nonlinear_mpc_node.cc
+
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.i"
+	/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/src/nonlinear_mpc_node.cc > CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.i
+
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.s"
+	/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/src/nonlinear_mpc_node.cc -o CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.s
+
+# Object files for target nonlinear_mpc_node
+nonlinear_mpc_node_OBJECTS = \
+"CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o"
+
+# External object files for target nonlinear_mpc_node
+nonlinear_mpc_node_EXTERNAL_OBJECTS =
+
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: CMakeFiles/nonlinear_mpc_node.dir/build.make
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /opt/ros/noetic/lib/libdynamic_reconfigure_config_init_mutex.so
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /opt/ros/noetic/lib/libtf.so
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /opt/ros/noetic/lib/libtf2_ros.so
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /opt/ros/noetic/lib/libactionlib.so
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /opt/ros/noetic/lib/libmessage_filters.so
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /opt/ros/noetic/lib/libroscpp.so
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /usr/lib/x86_64-linux-gnu/libpthread.so
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /usr/lib/x86_64-linux-gnu/libboost_chrono.so.1.71.0
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.71.0
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /opt/ros/noetic/lib/libxmlrpcpp.so
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /opt/ros/noetic/lib/libtf2.so
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /opt/ros/noetic/lib/libroscpp_serialization.so
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /opt/ros/noetic/lib/librosconsole.so
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /opt/ros/noetic/lib/librosconsole_log4cxx.so
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /opt/ros/noetic/lib/librosconsole_backend_interface.so
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /usr/lib/x86_64-linux-gnu/liblog4cxx.so
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /usr/lib/x86_64-linux-gnu/libboost_regex.so.1.71.0
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /opt/ros/noetic/lib/librostime.so
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /usr/lib/x86_64-linux-gnu/libboost_date_time.so.1.71.0
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /opt/ros/noetic/lib/libcpp_common.so
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /usr/lib/x86_64-linux-gnu/libboost_system.so.1.71.0
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.71.0
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /usr/lib/x86_64-linux-gnu/libconsole_bridge.so.0.4
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: devel/lib/libmav_nonlinear_mpc_lib.so
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /opt/ros/noetic/lib/libdynamic_reconfigure_config_init_mutex.so
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /opt/ros/noetic/lib/libtf.so
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /opt/ros/noetic/lib/libtf2_ros.so
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /opt/ros/noetic/lib/libactionlib.so
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /opt/ros/noetic/lib/libmessage_filters.so
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /opt/ros/noetic/lib/libroscpp.so
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /usr/lib/x86_64-linux-gnu/libpthread.so
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /usr/lib/x86_64-linux-gnu/libboost_chrono.so.1.71.0
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.71.0
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /opt/ros/noetic/lib/libxmlrpcpp.so
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /opt/ros/noetic/lib/libtf2.so
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /opt/ros/noetic/lib/libroscpp_serialization.so
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /opt/ros/noetic/lib/librosconsole.so
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /opt/ros/noetic/lib/librosconsole_log4cxx.so
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /opt/ros/noetic/lib/librosconsole_backend_interface.so
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /usr/lib/x86_64-linux-gnu/liblog4cxx.so
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /usr/lib/x86_64-linux-gnu/libboost_regex.so.1.71.0
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /opt/ros/noetic/lib/librostime.so
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /usr/lib/x86_64-linux-gnu/libboost_date_time.so.1.71.0
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /opt/ros/noetic/lib/libcpp_common.so
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /usr/lib/x86_64-linux-gnu/libboost_system.so.1.71.0
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.71.0
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: /usr/lib/x86_64-linux-gnu/libconsole_bridge.so.0.4
+devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node: CMakeFiles/nonlinear_mpc_node.dir/link.txt
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node"
+	$(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/nonlinear_mpc_node.dir/link.txt --verbose=$(VERBOSE)
+
+# Rule to build all files generated by this target.
+CMakeFiles/nonlinear_mpc_node.dir/build: devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node
+
+.PHONY : CMakeFiles/nonlinear_mpc_node.dir/build
+
+CMakeFiles/nonlinear_mpc_node.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/nonlinear_mpc_node.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/nonlinear_mpc_node.dir/clean
+
+CMakeFiles/nonlinear_mpc_node.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/nonlinear_mpc_node.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/nonlinear_mpc_node.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/nonlinear_mpc_node.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/nonlinear_mpc_node.dir/cmake_clean.cmake
new file mode 100644
index 0000000..c9b3552
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/nonlinear_mpc_node.dir/cmake_clean.cmake
@@ -0,0 +1,10 @@
+file(REMOVE_RECURSE
+  "CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o"
+  "devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node"
+  "devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node.pdb"
+)
+
+# Per-language clean rules from dependency scanning.
+foreach(lang CXX)
+  include(CMakeFiles/nonlinear_mpc_node.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/nonlinear_mpc_node.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/nonlinear_mpc_node.dir/depend.internal
new file mode 100644
index 0000000..aa69d3a
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/nonlinear_mpc_node.dir/depend.internal
@@ -0,0 +1,376 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o
+ ../include/mav_nonlinear_mpc/nonlinear_mpc.h
+ ../include/mav_nonlinear_mpc/nonlinear_mpc_node.h
+ /home/simhe502/catkin_ws/devel/include/geometry_msgs/Point.h
+ /home/simhe502/catkin_ws/devel/include/geometry_msgs/Pose.h
+ /home/simhe502/catkin_ws/devel/include/geometry_msgs/PoseStamped.h
+ /home/simhe502/catkin_ws/devel/include/geometry_msgs/Quaternion.h
+ /home/simhe502/catkin_ws/devel/include/geometry_msgs/Twist.h
+ /home/simhe502/catkin_ws/devel/include/geometry_msgs/Vector3.h
+ /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/src/nonlinear_mpc_node.cc
+ /opt/ros/noetic/include/dynamic_reconfigure/BoolParameter.h
+ /opt/ros/noetic/include/dynamic_reconfigure/Config.h
+ /opt/ros/noetic/include/dynamic_reconfigure/ConfigDescription.h
+ /opt/ros/noetic/include/dynamic_reconfigure/DoubleParameter.h
+ /opt/ros/noetic/include/dynamic_reconfigure/Group.h
+ /opt/ros/noetic/include/dynamic_reconfigure/GroupState.h
+ /opt/ros/noetic/include/dynamic_reconfigure/IntParameter.h
+ /opt/ros/noetic/include/dynamic_reconfigure/ParamDescription.h
+ /opt/ros/noetic/include/dynamic_reconfigure/Reconfigure.h
+ /opt/ros/noetic/include/dynamic_reconfigure/ReconfigureRequest.h
+ /opt/ros/noetic/include/dynamic_reconfigure/ReconfigureResponse.h
+ /opt/ros/noetic/include/dynamic_reconfigure/StrParameter.h
+ /opt/ros/noetic/include/dynamic_reconfigure/config_init_mutex.h
+ /opt/ros/noetic/include/dynamic_reconfigure/config_tools.h
+ /opt/ros/noetic/include/dynamic_reconfigure/server.h
+ /opt/ros/noetic/include/gazebo_msgs/GetModelState.h
+ /opt/ros/noetic/include/gazebo_msgs/GetModelStateRequest.h
+ /opt/ros/noetic/include/gazebo_msgs/GetModelStateResponse.h
+ /opt/ros/noetic/include/ros/advertise_options.h
+ /opt/ros/noetic/include/ros/advertise_service_options.h
+ /opt/ros/noetic/include/ros/assert.h
+ /opt/ros/noetic/include/ros/builtin_message_traits.h
+ /opt/ros/noetic/include/ros/callback_queue.h
+ /opt/ros/noetic/include/ros/callback_queue_interface.h
+ /opt/ros/noetic/include/ros/common.h
+ /opt/ros/noetic/include/ros/console.h
+ /opt/ros/noetic/include/ros/console_backend.h
+ /opt/ros/noetic/include/ros/datatypes.h
+ /opt/ros/noetic/include/ros/duration.h
+ /opt/ros/noetic/include/ros/exception.h
+ /opt/ros/noetic/include/ros/exceptions.h
+ /opt/ros/noetic/include/ros/forwards.h
+ /opt/ros/noetic/include/ros/init.h
+ /opt/ros/noetic/include/ros/macros.h
+ /opt/ros/noetic/include/ros/master.h
+ /opt/ros/noetic/include/ros/message.h
+ /opt/ros/noetic/include/ros/message_event.h
+ /opt/ros/noetic/include/ros/message_forward.h
+ /opt/ros/noetic/include/ros/message_operations.h
+ /opt/ros/noetic/include/ros/message_traits.h
+ /opt/ros/noetic/include/ros/names.h
+ /opt/ros/noetic/include/ros/node_handle.h
+ /opt/ros/noetic/include/ros/param.h
+ /opt/ros/noetic/include/ros/parameter_adapter.h
+ /opt/ros/noetic/include/ros/platform.h
+ /opt/ros/noetic/include/ros/publisher.h
+ /opt/ros/noetic/include/ros/rate.h
+ /opt/ros/noetic/include/ros/ros.h
+ /opt/ros/noetic/include/ros/roscpp_serialization_macros.h
+ /opt/ros/noetic/include/ros/rostime_decl.h
+ /opt/ros/noetic/include/ros/serialization.h
+ /opt/ros/noetic/include/ros/serialized_message.h
+ /opt/ros/noetic/include/ros/service.h
+ /opt/ros/noetic/include/ros/service_callback_helper.h
+ /opt/ros/noetic/include/ros/service_client.h
+ /opt/ros/noetic/include/ros/service_client_options.h
+ /opt/ros/noetic/include/ros/service_server.h
+ /opt/ros/noetic/include/ros/service_traits.h
+ /opt/ros/noetic/include/ros/single_subscriber_publisher.h
+ /opt/ros/noetic/include/ros/spinner.h
+ /opt/ros/noetic/include/ros/static_assert.h
+ /opt/ros/noetic/include/ros/steady_timer.h
+ /opt/ros/noetic/include/ros/steady_timer_options.h
+ /opt/ros/noetic/include/ros/subscribe_options.h
+ /opt/ros/noetic/include/ros/subscriber.h
+ /opt/ros/noetic/include/ros/subscription_callback_helper.h
+ /opt/ros/noetic/include/ros/this_node.h
+ /opt/ros/noetic/include/ros/time.h
+ /opt/ros/noetic/include/ros/timer.h
+ /opt/ros/noetic/include/ros/timer_options.h
+ /opt/ros/noetic/include/ros/topic.h
+ /opt/ros/noetic/include/ros/transport_hints.h
+ /opt/ros/noetic/include/ros/types.h
+ /opt/ros/noetic/include/ros/wall_timer.h
+ /opt/ros/noetic/include/ros/wall_timer_options.h
+ /opt/ros/noetic/include/rosconsole/macros_generated.h
+ /opt/ros/noetic/include/std_msgs/Header.h
+ /opt/ros/noetic/include/std_srvs/Empty.h
+ /opt/ros/noetic/include/std_srvs/EmptyRequest.h
+ /opt/ros/noetic/include/std_srvs/EmptyResponse.h
+ /opt/ros/noetic/include/xmlrpcpp/XmlRpcDecl.h
+ /opt/ros/noetic/include/xmlrpcpp/XmlRpcValue.h
+ /usr/include/eigen3/Eigen/Cholesky
+ /usr/include/eigen3/Eigen/Core
+ /usr/include/eigen3/Eigen/Dense
+ /usr/include/eigen3/Eigen/Eigen
+ /usr/include/eigen3/Eigen/Eigenvalues
+ /usr/include/eigen3/Eigen/Geometry
+ /usr/include/eigen3/Eigen/Householder
+ /usr/include/eigen3/Eigen/IterativeLinearSolvers
+ /usr/include/eigen3/Eigen/Jacobi
+ /usr/include/eigen3/Eigen/LU
+ /usr/include/eigen3/Eigen/OrderingMethods
+ /usr/include/eigen3/Eigen/QR
+ /usr/include/eigen3/Eigen/SVD
+ /usr/include/eigen3/Eigen/Sparse
+ /usr/include/eigen3/Eigen/SparseCholesky
+ /usr/include/eigen3/Eigen/SparseCore
+ /usr/include/eigen3/Eigen/SparseLU
+ /usr/include/eigen3/Eigen/SparseQR
+ /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h
+ /usr/include/eigen3/Eigen/src/Cholesky/LLT.h
+ /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h
+ /usr/include/eigen3/Eigen/src/Core/Array.h
+ /usr/include/eigen3/Eigen/src/Core/ArrayBase.h
+ /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h
+ /usr/include/eigen3/Eigen/src/Core/Assign.h
+ /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h
+ /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h
+ /usr/include/eigen3/Eigen/src/Core/BandMatrix.h
+ /usr/include/eigen3/Eigen/src/Core/Block.h
+ /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h
+ /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h
+ /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h
+ /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h
+ /usr/include/eigen3/Eigen/src/Core/CoreIterators.h
+ /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h
+ /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h
+ /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h
+ /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h
+ /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h
+ /usr/include/eigen3/Eigen/src/Core/DenseBase.h
+ /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h
+ /usr/include/eigen3/Eigen/src/Core/DenseStorage.h
+ /usr/include/eigen3/Eigen/src/Core/Diagonal.h
+ /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h
+ /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h
+ /usr/include/eigen3/Eigen/src/Core/Dot.h
+ /usr/include/eigen3/Eigen/src/Core/EigenBase.h
+ /usr/include/eigen3/Eigen/src/Core/Fuzzy.h
+ /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h
+ /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h
+ /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h
+ /usr/include/eigen3/Eigen/src/Core/IO.h
+ /usr/include/eigen3/Eigen/src/Core/Inverse.h
+ /usr/include/eigen3/Eigen/src/Core/Map.h
+ /usr/include/eigen3/Eigen/src/Core/MapBase.h
+ /usr/include/eigen3/Eigen/src/Core/MathFunctions.h
+ /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h
+ /usr/include/eigen3/Eigen/src/Core/Matrix.h
+ /usr/include/eigen3/Eigen/src/Core/MatrixBase.h
+ /usr/include/eigen3/Eigen/src/Core/NestByValue.h
+ /usr/include/eigen3/Eigen/src/Core/NoAlias.h
+ /usr/include/eigen3/Eigen/src/Core/NumTraits.h
+ /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h
+ /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h
+ /usr/include/eigen3/Eigen/src/Core/Product.h
+ /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h
+ /usr/include/eigen3/Eigen/src/Core/Random.h
+ /usr/include/eigen3/Eigen/src/Core/Redux.h
+ /usr/include/eigen3/Eigen/src/Core/Ref.h
+ /usr/include/eigen3/Eigen/src/Core/Replicate.h
+ /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h
+ /usr/include/eigen3/Eigen/src/Core/Reverse.h
+ /usr/include/eigen3/Eigen/src/Core/Select.h
+ /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h
+ /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h
+ /usr/include/eigen3/Eigen/src/Core/Solve.h
+ /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h
+ /usr/include/eigen3/Eigen/src/Core/SolverBase.h
+ /usr/include/eigen3/Eigen/src/Core/StableNorm.h
+ /usr/include/eigen3/Eigen/src/Core/Stride.h
+ /usr/include/eigen3/Eigen/src/Core/Swap.h
+ /usr/include/eigen3/Eigen/src/Core/Transpose.h
+ /usr/include/eigen3/Eigen/src/Core/Transpositions.h
+ /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h
+ /usr/include/eigen3/Eigen/src/Core/VectorBlock.h
+ /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h
+ /usr/include/eigen3/Eigen/src/Core/Visitor.h
+ /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h
+ /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h
+ /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h
+ /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h
+ /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h
+ /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h
+ /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h
+ /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h
+ /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h
+ /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h
+ /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h
+ /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h
+ /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h
+ /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h
+ /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h
+ /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h
+ /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h
+ /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h
+ /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h
+ /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h
+ /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h
+ /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h
+ /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h
+ /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h
+ /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h
+ /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h
+ /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h
+ /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h
+ /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h
+ /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h
+ /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h
+ /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h
+ /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h
+ /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h
+ /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h
+ /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h
+ /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h
+ /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h
+ /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h
+ /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h
+ /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h
+ /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h
+ /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h
+ /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h
+ /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h
+ /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h
+ /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h
+ /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h
+ /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h
+ /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h
+ /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h
+ /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h
+ /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h
+ /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h
+ /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h
+ /usr/include/eigen3/Eigen/src/Core/util/Constants.h
+ /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h
+ /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h
+ /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h
+ /usr/include/eigen3/Eigen/src/Core/util/Macros.h
+ /usr/include/eigen3/Eigen/src/Core/util/Memory.h
+ /usr/include/eigen3/Eigen/src/Core/util/Meta.h
+ /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h
+ /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h
+ /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h
+ /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h
+ /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h
+ /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h
+ /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h
+ /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h
+ /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h
+ /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h
+ /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h
+ /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h
+ /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h
+ /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h
+ /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h
+ /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h
+ /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h
+ /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h
+ /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h
+ /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h
+ /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h
+ /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h
+ /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h
+ /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h
+ /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h
+ /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h
+ /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h
+ /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h
+ /usr/include/eigen3/Eigen/src/Geometry/Scaling.h
+ /usr/include/eigen3/Eigen/src/Geometry/Transform.h
+ /usr/include/eigen3/Eigen/src/Geometry/Translation.h
+ /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h
+ /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h
+ /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h
+ /usr/include/eigen3/Eigen/src/Householder/Householder.h
+ /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h
+ /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h
+ /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h
+ /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h
+ /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h
+ /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h
+ /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h
+ /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h
+ /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h
+ /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h
+ /usr/include/eigen3/Eigen/src/LU/Determinant.h
+ /usr/include/eigen3/Eigen/src/LU/FullPivLU.h
+ /usr/include/eigen3/Eigen/src/LU/InverseImpl.h
+ /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h
+ /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h
+ /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h
+ /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h
+ /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h
+ /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h
+ /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h
+ /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h
+ /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h
+ /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h
+ /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h
+ /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h
+ /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h
+ /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h
+ /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h
+ /usr/include/eigen3/Eigen/src/SVD/SVDBase.h
+ /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h
+ /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h
+ /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h
+ /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h
+ /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h
+ /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h
+ /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h
+ /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h
+ /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h
+ /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h
+ /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h
+ /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h
+ /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h
+ /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h
+ /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h
+ /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h
+ /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h
+ /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h
+ /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h
+ /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h
+ /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h
+ /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h
+ /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h
+ /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h
+ /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h
+ /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h
+ /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h
+ /usr/include/eigen3/Eigen/src/misc/Image.h
+ /usr/include/eigen3/Eigen/src/misc/Kernel.h
+ /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h
+ /usr/include/eigen3/Eigen/src/misc/blas.h
+ /usr/include/eigen3/Eigen/src/misc/lapacke.h
+ /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h
+ /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h
+ /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h
+ /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h
+ /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h
+ /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h
+ /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h
+ /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h
+ acado_auxiliary_functions.h
+ acado_common.h
+ acado_qpoases_interface.hpp
+ devel/include/mav_nonlinear_mpc/NonLinearMPCConfig.h
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/nonlinear_mpc_node.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/nonlinear_mpc_node.dir/depend.make
new file mode 100644
index 0000000..3863e7c
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/nonlinear_mpc_node.dir/depend.make
@@ -0,0 +1,376 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: ../include/mav_nonlinear_mpc/nonlinear_mpc.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: ../include/mav_nonlinear_mpc/nonlinear_mpc_node.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /home/simhe502/catkin_ws/devel/include/geometry_msgs/Point.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /home/simhe502/catkin_ws/devel/include/geometry_msgs/Pose.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /home/simhe502/catkin_ws/devel/include/geometry_msgs/PoseStamped.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /home/simhe502/catkin_ws/devel/include/geometry_msgs/Quaternion.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /home/simhe502/catkin_ws/devel/include/geometry_msgs/Twist.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /home/simhe502/catkin_ws/devel/include/geometry_msgs/Vector3.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: ../src/nonlinear_mpc_node.cc
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/dynamic_reconfigure/BoolParameter.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/dynamic_reconfigure/Config.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/dynamic_reconfigure/ConfigDescription.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/dynamic_reconfigure/DoubleParameter.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/dynamic_reconfigure/Group.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/dynamic_reconfigure/GroupState.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/dynamic_reconfigure/IntParameter.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/dynamic_reconfigure/ParamDescription.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/dynamic_reconfigure/Reconfigure.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/dynamic_reconfigure/ReconfigureRequest.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/dynamic_reconfigure/ReconfigureResponse.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/dynamic_reconfigure/StrParameter.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/dynamic_reconfigure/config_init_mutex.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/dynamic_reconfigure/config_tools.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/dynamic_reconfigure/server.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/gazebo_msgs/GetModelState.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/gazebo_msgs/GetModelStateRequest.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/gazebo_msgs/GetModelStateResponse.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/advertise_options.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/advertise_service_options.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/assert.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/builtin_message_traits.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/callback_queue.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/callback_queue_interface.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/common.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/console.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/console_backend.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/datatypes.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/duration.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/exception.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/exceptions.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/forwards.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/init.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/macros.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/master.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/message.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/message_event.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/message_forward.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/message_operations.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/message_traits.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/names.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/node_handle.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/param.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/parameter_adapter.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/platform.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/publisher.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/rate.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/ros.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/roscpp_serialization_macros.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/rostime_decl.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/serialization.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/serialized_message.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/service.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/service_callback_helper.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/service_client.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/service_client_options.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/service_server.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/service_traits.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/single_subscriber_publisher.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/spinner.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/static_assert.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/steady_timer.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/steady_timer_options.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/subscribe_options.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/subscriber.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/subscription_callback_helper.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/this_node.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/time.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/timer.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/timer_options.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/topic.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/transport_hints.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/types.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/wall_timer.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/ros/wall_timer_options.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/rosconsole/macros_generated.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/std_msgs/Header.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/std_srvs/Empty.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/std_srvs/EmptyRequest.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/std_srvs/EmptyResponse.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/xmlrpcpp/XmlRpcDecl.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /opt/ros/noetic/include/xmlrpcpp/XmlRpcValue.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/Cholesky
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/Core
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/Dense
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/Eigen
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/Eigenvalues
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/Geometry
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/Householder
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/IterativeLinearSolvers
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/Jacobi
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/LU
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/OrderingMethods
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/QR
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/SVD
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/Sparse
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/SparseCholesky
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/SparseCore
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/SparseLU
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/SparseQR
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Cholesky/LLT.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/Array.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/ArrayBase.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/Assign.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/BandMatrix.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/Block.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/CoreIterators.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/DenseBase.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/DenseStorage.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/Diagonal.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/Dot.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/EigenBase.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/Fuzzy.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/IO.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/Inverse.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/Map.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/MapBase.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/MathFunctions.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/Matrix.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/MatrixBase.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/NestByValue.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/NoAlias.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/NumTraits.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/Product.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/Random.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/Redux.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/Ref.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/Replicate.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/Reverse.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/Select.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/Solve.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/SolverBase.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/StableNorm.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/Stride.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/Swap.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/Transpose.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/Transpositions.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/VectorBlock.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/Visitor.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/util/Constants.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/util/Macros.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/util/Memory.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/util/Meta.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Geometry/Scaling.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Geometry/Transform.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Geometry/Translation.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Householder/Householder.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/LU/Determinant.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/LU/FullPivLU.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/LU/InverseImpl.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SVD/SVDBase.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/misc/Image.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/misc/Kernel.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/misc/blas.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/misc/lapacke.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: acado_auxiliary_functions.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: acado_common.h
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: acado_qpoases_interface.hpp
+CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o: devel/include/mav_nonlinear_mpc/NonLinearMPCConfig.h
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/nonlinear_mpc_node.dir/flags.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/nonlinear_mpc_node.dir/flags.make
new file mode 100644
index 0000000..f8a0be5
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/nonlinear_mpc_node.dir/flags.make
@@ -0,0 +1,10 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# compile CXX with /usr/bin/c++
+CXX_FLAGS =  -std=c++11 -O3 -DNDEBUG  
+
+CXX_DEFINES = -DROSCONSOLE_BACKEND_LOG4CXX -DROS_BUILD_SHARED_LIBS=1 -DROS_PACKAGE_NAME=\"mav_nonlinear_mpc\"
+
+CXX_INCLUDES = -I/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel/include -I/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/include -I/home/simhe502/catkin_ws/devel/include -I/home/simhe502/catkin_ws/src/common_msgs/sensor_msgs/include -I/opt/ros/noetic/include -I/opt/ros/noetic/share/xmlrpcpp/cmake/../../../include/xmlrpcpp -I/usr/include/eigen3 -I/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver -I/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases -I/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE -I/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC 
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/nonlinear_mpc_node.dir/link.txt b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/nonlinear_mpc_node.dir/link.txt
new file mode 100644
index 0000000..1e808cc
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/nonlinear_mpc_node.dir/link.txt
@@ -0,0 +1 @@
+/usr/bin/c++   -std=c++11 -O3 -DNDEBUG  -rdynamic CMakeFiles/nonlinear_mpc_node.dir/src/nonlinear_mpc_node.cc.o  -o devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node  -Wl,-rpath,/opt/ros/noetic/lib:/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel/lib: /opt/ros/noetic/lib/libdynamic_reconfigure_config_init_mutex.so /opt/ros/noetic/lib/libtf.so /opt/ros/noetic/lib/libtf2_ros.so /opt/ros/noetic/lib/libactionlib.so /opt/ros/noetic/lib/libmessage_filters.so /opt/ros/noetic/lib/libroscpp.so -lpthread /usr/lib/x86_64-linux-gnu/libboost_chrono.so.1.71.0 /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.71.0 /opt/ros/noetic/lib/libxmlrpcpp.so /opt/ros/noetic/lib/libtf2.so /opt/ros/noetic/lib/libroscpp_serialization.so /opt/ros/noetic/lib/librosconsole.so /opt/ros/noetic/lib/librosconsole_log4cxx.so /opt/ros/noetic/lib/librosconsole_backend_interface.so -llog4cxx /usr/lib/x86_64-linux-gnu/libboost_regex.so.1.71.0 /opt/ros/noetic/lib/librostime.so /usr/lib/x86_64-linux-gnu/libboost_date_time.so.1.71.0 /opt/ros/noetic/lib/libcpp_common.so /usr/lib/x86_64-linux-gnu/libboost_system.so.1.71.0 /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.71.0 /usr/lib/x86_64-linux-gnu/libconsole_bridge.so.0.4 devel/lib/libmav_nonlinear_mpc_lib.so /opt/ros/noetic/lib/libdynamic_reconfigure_config_init_mutex.so /opt/ros/noetic/lib/libtf.so /opt/ros/noetic/lib/libtf2_ros.so /opt/ros/noetic/lib/libactionlib.so /opt/ros/noetic/lib/libmessage_filters.so /opt/ros/noetic/lib/libroscpp.so -lpthread /usr/lib/x86_64-linux-gnu/libboost_chrono.so.1.71.0 /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.71.0 /opt/ros/noetic/lib/libxmlrpcpp.so /opt/ros/noetic/lib/libtf2.so /opt/ros/noetic/lib/libroscpp_serialization.so /opt/ros/noetic/lib/librosconsole.so /opt/ros/noetic/lib/librosconsole_log4cxx.so /opt/ros/noetic/lib/librosconsole_backend_interface.so -llog4cxx /usr/lib/x86_64-linux-gnu/libboost_regex.so.1.71.0 /opt/ros/noetic/lib/librostime.so /usr/lib/x86_64-linux-gnu/libboost_date_time.so.1.71.0 /opt/ros/noetic/lib/libcpp_common.so /usr/lib/x86_64-linux-gnu/libboost_system.so.1.71.0 /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.71.0 /usr/lib/x86_64-linux-gnu/libconsole_bridge.so.0.4 
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/nonlinear_mpc_node.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/nonlinear_mpc_node.dir/progress.make
new file mode 100644
index 0000000..3244467
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/nonlinear_mpc_node.dir/progress.make
@@ -0,0 +1,3 @@
+CMAKE_PROGRESS_1 = 26
+CMAKE_PROGRESS_2 = 27
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/progress.marks b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/progress.marks
new file mode 100644
index 0000000..d6b2404
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/progress.marks
@@ -0,0 +1 @@
+19
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_cpp.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_cpp.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_cpp.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_cpp.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_cpp.dir/build.make
new file mode 100644
index 0000000..3fdd303
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_cpp.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for roscpp_generate_messages_cpp.
+
+# Include the progress variables for this target.
+include CMakeFiles/roscpp_generate_messages_cpp.dir/progress.make
+
+roscpp_generate_messages_cpp: CMakeFiles/roscpp_generate_messages_cpp.dir/build.make
+
+.PHONY : roscpp_generate_messages_cpp
+
+# Rule to build all files generated by this target.
+CMakeFiles/roscpp_generate_messages_cpp.dir/build: roscpp_generate_messages_cpp
+
+.PHONY : CMakeFiles/roscpp_generate_messages_cpp.dir/build
+
+CMakeFiles/roscpp_generate_messages_cpp.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/roscpp_generate_messages_cpp.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/roscpp_generate_messages_cpp.dir/clean
+
+CMakeFiles/roscpp_generate_messages_cpp.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_cpp.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/roscpp_generate_messages_cpp.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_cpp.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_cpp.dir/cmake_clean.cmake
new file mode 100644
index 0000000..bf35365
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_cpp.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/roscpp_generate_messages_cpp.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_cpp.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_cpp.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_cpp.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_cpp.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_cpp.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_cpp.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_cpp.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_cpp.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_cpp.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_eus.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_eus.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_eus.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_eus.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_eus.dir/build.make
new file mode 100644
index 0000000..a14f52d
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_eus.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for roscpp_generate_messages_eus.
+
+# Include the progress variables for this target.
+include CMakeFiles/roscpp_generate_messages_eus.dir/progress.make
+
+roscpp_generate_messages_eus: CMakeFiles/roscpp_generate_messages_eus.dir/build.make
+
+.PHONY : roscpp_generate_messages_eus
+
+# Rule to build all files generated by this target.
+CMakeFiles/roscpp_generate_messages_eus.dir/build: roscpp_generate_messages_eus
+
+.PHONY : CMakeFiles/roscpp_generate_messages_eus.dir/build
+
+CMakeFiles/roscpp_generate_messages_eus.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/roscpp_generate_messages_eus.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/roscpp_generate_messages_eus.dir/clean
+
+CMakeFiles/roscpp_generate_messages_eus.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_eus.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/roscpp_generate_messages_eus.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_eus.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_eus.dir/cmake_clean.cmake
new file mode 100644
index 0000000..61700fa
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_eus.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/roscpp_generate_messages_eus.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_eus.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_eus.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_eus.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_eus.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_eus.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_eus.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_eus.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_eus.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_eus.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_lisp.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_lisp.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_lisp.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_lisp.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_lisp.dir/build.make
new file mode 100644
index 0000000..db43be4
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_lisp.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for roscpp_generate_messages_lisp.
+
+# Include the progress variables for this target.
+include CMakeFiles/roscpp_generate_messages_lisp.dir/progress.make
+
+roscpp_generate_messages_lisp: CMakeFiles/roscpp_generate_messages_lisp.dir/build.make
+
+.PHONY : roscpp_generate_messages_lisp
+
+# Rule to build all files generated by this target.
+CMakeFiles/roscpp_generate_messages_lisp.dir/build: roscpp_generate_messages_lisp
+
+.PHONY : CMakeFiles/roscpp_generate_messages_lisp.dir/build
+
+CMakeFiles/roscpp_generate_messages_lisp.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/roscpp_generate_messages_lisp.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/roscpp_generate_messages_lisp.dir/clean
+
+CMakeFiles/roscpp_generate_messages_lisp.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_lisp.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/roscpp_generate_messages_lisp.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_lisp.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_lisp.dir/cmake_clean.cmake
new file mode 100644
index 0000000..492a50b
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_lisp.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/roscpp_generate_messages_lisp.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_lisp.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_lisp.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_lisp.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_lisp.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_lisp.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_lisp.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_lisp.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_lisp.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_lisp.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_nodejs.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_nodejs.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_nodejs.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_nodejs.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_nodejs.dir/build.make
new file mode 100644
index 0000000..bfecfd4
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_nodejs.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for roscpp_generate_messages_nodejs.
+
+# Include the progress variables for this target.
+include CMakeFiles/roscpp_generate_messages_nodejs.dir/progress.make
+
+roscpp_generate_messages_nodejs: CMakeFiles/roscpp_generate_messages_nodejs.dir/build.make
+
+.PHONY : roscpp_generate_messages_nodejs
+
+# Rule to build all files generated by this target.
+CMakeFiles/roscpp_generate_messages_nodejs.dir/build: roscpp_generate_messages_nodejs
+
+.PHONY : CMakeFiles/roscpp_generate_messages_nodejs.dir/build
+
+CMakeFiles/roscpp_generate_messages_nodejs.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/roscpp_generate_messages_nodejs.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/roscpp_generate_messages_nodejs.dir/clean
+
+CMakeFiles/roscpp_generate_messages_nodejs.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_nodejs.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/roscpp_generate_messages_nodejs.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_nodejs.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_nodejs.dir/cmake_clean.cmake
new file mode 100644
index 0000000..37945a6
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_nodejs.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/roscpp_generate_messages_nodejs.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_nodejs.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_nodejs.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_nodejs.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_nodejs.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_nodejs.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_nodejs.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_nodejs.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_nodejs.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_nodejs.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_py.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_py.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_py.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_py.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_py.dir/build.make
new file mode 100644
index 0000000..a34c394
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_py.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for roscpp_generate_messages_py.
+
+# Include the progress variables for this target.
+include CMakeFiles/roscpp_generate_messages_py.dir/progress.make
+
+roscpp_generate_messages_py: CMakeFiles/roscpp_generate_messages_py.dir/build.make
+
+.PHONY : roscpp_generate_messages_py
+
+# Rule to build all files generated by this target.
+CMakeFiles/roscpp_generate_messages_py.dir/build: roscpp_generate_messages_py
+
+.PHONY : CMakeFiles/roscpp_generate_messages_py.dir/build
+
+CMakeFiles/roscpp_generate_messages_py.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/roscpp_generate_messages_py.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/roscpp_generate_messages_py.dir/clean
+
+CMakeFiles/roscpp_generate_messages_py.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_py.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/roscpp_generate_messages_py.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_py.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_py.dir/cmake_clean.cmake
new file mode 100644
index 0000000..2c13747
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_py.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/roscpp_generate_messages_py.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_py.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_py.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_py.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_py.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_py.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_py.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_py.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_py.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/roscpp_generate_messages_py.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/build.make
new file mode 100644
index 0000000..86f859e
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for rosgraph_msgs_generate_messages_cpp.
+
+# Include the progress variables for this target.
+include CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/progress.make
+
+rosgraph_msgs_generate_messages_cpp: CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/build.make
+
+.PHONY : rosgraph_msgs_generate_messages_cpp
+
+# Rule to build all files generated by this target.
+CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/build: rosgraph_msgs_generate_messages_cpp
+
+.PHONY : CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/build
+
+CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/clean
+
+CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/cmake_clean.cmake
new file mode 100644
index 0000000..720bdd0
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_cpp.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/build.make
new file mode 100644
index 0000000..cf0bbd3
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for rosgraph_msgs_generate_messages_eus.
+
+# Include the progress variables for this target.
+include CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/progress.make
+
+rosgraph_msgs_generate_messages_eus: CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/build.make
+
+.PHONY : rosgraph_msgs_generate_messages_eus
+
+# Rule to build all files generated by this target.
+CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/build: rosgraph_msgs_generate_messages_eus
+
+.PHONY : CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/build
+
+CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/clean
+
+CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/cmake_clean.cmake
new file mode 100644
index 0000000..5610f84
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_eus.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/build.make
new file mode 100644
index 0000000..a710cf8
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for rosgraph_msgs_generate_messages_lisp.
+
+# Include the progress variables for this target.
+include CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/progress.make
+
+rosgraph_msgs_generate_messages_lisp: CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/build.make
+
+.PHONY : rosgraph_msgs_generate_messages_lisp
+
+# Rule to build all files generated by this target.
+CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/build: rosgraph_msgs_generate_messages_lisp
+
+.PHONY : CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/build
+
+CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/clean
+
+CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/cmake_clean.cmake
new file mode 100644
index 0000000..cdd6e3f
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_lisp.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/build.make
new file mode 100644
index 0000000..ca76558
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for rosgraph_msgs_generate_messages_nodejs.
+
+# Include the progress variables for this target.
+include CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/progress.make
+
+rosgraph_msgs_generate_messages_nodejs: CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/build.make
+
+.PHONY : rosgraph_msgs_generate_messages_nodejs
+
+# Rule to build all files generated by this target.
+CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/build: rosgraph_msgs_generate_messages_nodejs
+
+.PHONY : CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/build
+
+CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/clean
+
+CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/cmake_clean.cmake
new file mode 100644
index 0000000..37bf13d
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_nodejs.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_py.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_py.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_py.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_py.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_py.dir/build.make
new file mode 100644
index 0000000..8134fce
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_py.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for rosgraph_msgs_generate_messages_py.
+
+# Include the progress variables for this target.
+include CMakeFiles/rosgraph_msgs_generate_messages_py.dir/progress.make
+
+rosgraph_msgs_generate_messages_py: CMakeFiles/rosgraph_msgs_generate_messages_py.dir/build.make
+
+.PHONY : rosgraph_msgs_generate_messages_py
+
+# Rule to build all files generated by this target.
+CMakeFiles/rosgraph_msgs_generate_messages_py.dir/build: rosgraph_msgs_generate_messages_py
+
+.PHONY : CMakeFiles/rosgraph_msgs_generate_messages_py.dir/build
+
+CMakeFiles/rosgraph_msgs_generate_messages_py.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/rosgraph_msgs_generate_messages_py.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/rosgraph_msgs_generate_messages_py.dir/clean
+
+CMakeFiles/rosgraph_msgs_generate_messages_py.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_py.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/rosgraph_msgs_generate_messages_py.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_py.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_py.dir/cmake_clean.cmake
new file mode 100644
index 0000000..de801d4
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_py.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/rosgraph_msgs_generate_messages_py.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_py.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_py.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_py.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_py.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_py.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_py.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_py.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_py.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/rosgraph_msgs_generate_messages_py.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/run_tests.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/run_tests.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/run_tests.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/run_tests.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/run_tests.dir/build.make
new file mode 100644
index 0000000..a7e1919
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/run_tests.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for run_tests.
+
+# Include the progress variables for this target.
+include CMakeFiles/run_tests.dir/progress.make
+
+run_tests: CMakeFiles/run_tests.dir/build.make
+
+.PHONY : run_tests
+
+# Rule to build all files generated by this target.
+CMakeFiles/run_tests.dir/build: run_tests
+
+.PHONY : CMakeFiles/run_tests.dir/build
+
+CMakeFiles/run_tests.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/run_tests.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/run_tests.dir/clean
+
+CMakeFiles/run_tests.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/run_tests.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/run_tests.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/run_tests.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/run_tests.dir/cmake_clean.cmake
new file mode 100644
index 0000000..e67d34f
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/run_tests.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/run_tests.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/run_tests.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/run_tests.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/run_tests.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_cpp.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_cpp.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_cpp.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_cpp.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_cpp.dir/build.make
new file mode 100644
index 0000000..4ac27d8
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_cpp.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for sensor_msgs_generate_messages_cpp.
+
+# Include the progress variables for this target.
+include CMakeFiles/sensor_msgs_generate_messages_cpp.dir/progress.make
+
+sensor_msgs_generate_messages_cpp: CMakeFiles/sensor_msgs_generate_messages_cpp.dir/build.make
+
+.PHONY : sensor_msgs_generate_messages_cpp
+
+# Rule to build all files generated by this target.
+CMakeFiles/sensor_msgs_generate_messages_cpp.dir/build: sensor_msgs_generate_messages_cpp
+
+.PHONY : CMakeFiles/sensor_msgs_generate_messages_cpp.dir/build
+
+CMakeFiles/sensor_msgs_generate_messages_cpp.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/sensor_msgs_generate_messages_cpp.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/sensor_msgs_generate_messages_cpp.dir/clean
+
+CMakeFiles/sensor_msgs_generate_messages_cpp.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_cpp.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/sensor_msgs_generate_messages_cpp.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_cpp.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_cpp.dir/cmake_clean.cmake
new file mode 100644
index 0000000..1716093
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_cpp.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/sensor_msgs_generate_messages_cpp.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_cpp.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_cpp.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_cpp.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_cpp.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_cpp.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_cpp.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_cpp.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_cpp.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_cpp.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_eus.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_eus.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_eus.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_eus.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_eus.dir/build.make
new file mode 100644
index 0000000..5dc13d8
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_eus.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for sensor_msgs_generate_messages_eus.
+
+# Include the progress variables for this target.
+include CMakeFiles/sensor_msgs_generate_messages_eus.dir/progress.make
+
+sensor_msgs_generate_messages_eus: CMakeFiles/sensor_msgs_generate_messages_eus.dir/build.make
+
+.PHONY : sensor_msgs_generate_messages_eus
+
+# Rule to build all files generated by this target.
+CMakeFiles/sensor_msgs_generate_messages_eus.dir/build: sensor_msgs_generate_messages_eus
+
+.PHONY : CMakeFiles/sensor_msgs_generate_messages_eus.dir/build
+
+CMakeFiles/sensor_msgs_generate_messages_eus.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/sensor_msgs_generate_messages_eus.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/sensor_msgs_generate_messages_eus.dir/clean
+
+CMakeFiles/sensor_msgs_generate_messages_eus.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_eus.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/sensor_msgs_generate_messages_eus.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_eus.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_eus.dir/cmake_clean.cmake
new file mode 100644
index 0000000..eabddd7
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_eus.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/sensor_msgs_generate_messages_eus.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_eus.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_eus.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_eus.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_eus.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_eus.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_eus.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_eus.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_eus.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_eus.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_lisp.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_lisp.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_lisp.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_lisp.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_lisp.dir/build.make
new file mode 100644
index 0000000..ee16d80
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_lisp.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for sensor_msgs_generate_messages_lisp.
+
+# Include the progress variables for this target.
+include CMakeFiles/sensor_msgs_generate_messages_lisp.dir/progress.make
+
+sensor_msgs_generate_messages_lisp: CMakeFiles/sensor_msgs_generate_messages_lisp.dir/build.make
+
+.PHONY : sensor_msgs_generate_messages_lisp
+
+# Rule to build all files generated by this target.
+CMakeFiles/sensor_msgs_generate_messages_lisp.dir/build: sensor_msgs_generate_messages_lisp
+
+.PHONY : CMakeFiles/sensor_msgs_generate_messages_lisp.dir/build
+
+CMakeFiles/sensor_msgs_generate_messages_lisp.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/sensor_msgs_generate_messages_lisp.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/sensor_msgs_generate_messages_lisp.dir/clean
+
+CMakeFiles/sensor_msgs_generate_messages_lisp.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_lisp.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/sensor_msgs_generate_messages_lisp.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_lisp.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_lisp.dir/cmake_clean.cmake
new file mode 100644
index 0000000..ecc0226
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_lisp.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/sensor_msgs_generate_messages_lisp.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_lisp.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_lisp.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_lisp.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_lisp.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_lisp.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_lisp.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_lisp.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_lisp.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_lisp.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/build.make
new file mode 100644
index 0000000..446fbea
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for sensor_msgs_generate_messages_nodejs.
+
+# Include the progress variables for this target.
+include CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/progress.make
+
+sensor_msgs_generate_messages_nodejs: CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/build.make
+
+.PHONY : sensor_msgs_generate_messages_nodejs
+
+# Rule to build all files generated by this target.
+CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/build: sensor_msgs_generate_messages_nodejs
+
+.PHONY : CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/build
+
+CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/clean
+
+CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/cmake_clean.cmake
new file mode 100644
index 0000000..534a2e5
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_nodejs.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_py.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_py.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_py.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_py.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_py.dir/build.make
new file mode 100644
index 0000000..6706362
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_py.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for sensor_msgs_generate_messages_py.
+
+# Include the progress variables for this target.
+include CMakeFiles/sensor_msgs_generate_messages_py.dir/progress.make
+
+sensor_msgs_generate_messages_py: CMakeFiles/sensor_msgs_generate_messages_py.dir/build.make
+
+.PHONY : sensor_msgs_generate_messages_py
+
+# Rule to build all files generated by this target.
+CMakeFiles/sensor_msgs_generate_messages_py.dir/build: sensor_msgs_generate_messages_py
+
+.PHONY : CMakeFiles/sensor_msgs_generate_messages_py.dir/build
+
+CMakeFiles/sensor_msgs_generate_messages_py.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/sensor_msgs_generate_messages_py.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/sensor_msgs_generate_messages_py.dir/clean
+
+CMakeFiles/sensor_msgs_generate_messages_py.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_py.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/sensor_msgs_generate_messages_py.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_py.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_py.dir/cmake_clean.cmake
new file mode 100644
index 0000000..a5188ef
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_py.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/sensor_msgs_generate_messages_py.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_py.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_py.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_py.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_py.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_py.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_py.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_py.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_py.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/sensor_msgs_generate_messages_py.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_cpp.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_cpp.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_cpp.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_cpp.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_cpp.dir/build.make
new file mode 100644
index 0000000..e9e4038
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_cpp.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for std_msgs_generate_messages_cpp.
+
+# Include the progress variables for this target.
+include CMakeFiles/std_msgs_generate_messages_cpp.dir/progress.make
+
+std_msgs_generate_messages_cpp: CMakeFiles/std_msgs_generate_messages_cpp.dir/build.make
+
+.PHONY : std_msgs_generate_messages_cpp
+
+# Rule to build all files generated by this target.
+CMakeFiles/std_msgs_generate_messages_cpp.dir/build: std_msgs_generate_messages_cpp
+
+.PHONY : CMakeFiles/std_msgs_generate_messages_cpp.dir/build
+
+CMakeFiles/std_msgs_generate_messages_cpp.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/std_msgs_generate_messages_cpp.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/std_msgs_generate_messages_cpp.dir/clean
+
+CMakeFiles/std_msgs_generate_messages_cpp.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_cpp.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/std_msgs_generate_messages_cpp.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_cpp.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_cpp.dir/cmake_clean.cmake
new file mode 100644
index 0000000..0d092bf
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_cpp.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/std_msgs_generate_messages_cpp.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_cpp.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_cpp.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_cpp.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_cpp.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_cpp.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_cpp.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_cpp.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_cpp.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_cpp.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_eus.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_eus.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_eus.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_eus.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_eus.dir/build.make
new file mode 100644
index 0000000..3051cd0
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_eus.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for std_msgs_generate_messages_eus.
+
+# Include the progress variables for this target.
+include CMakeFiles/std_msgs_generate_messages_eus.dir/progress.make
+
+std_msgs_generate_messages_eus: CMakeFiles/std_msgs_generate_messages_eus.dir/build.make
+
+.PHONY : std_msgs_generate_messages_eus
+
+# Rule to build all files generated by this target.
+CMakeFiles/std_msgs_generate_messages_eus.dir/build: std_msgs_generate_messages_eus
+
+.PHONY : CMakeFiles/std_msgs_generate_messages_eus.dir/build
+
+CMakeFiles/std_msgs_generate_messages_eus.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/std_msgs_generate_messages_eus.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/std_msgs_generate_messages_eus.dir/clean
+
+CMakeFiles/std_msgs_generate_messages_eus.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_eus.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/std_msgs_generate_messages_eus.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_eus.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_eus.dir/cmake_clean.cmake
new file mode 100644
index 0000000..855155e
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_eus.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/std_msgs_generate_messages_eus.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_eus.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_eus.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_eus.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_eus.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_eus.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_eus.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_eus.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_eus.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_eus.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_lisp.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_lisp.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_lisp.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_lisp.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_lisp.dir/build.make
new file mode 100644
index 0000000..0495f61
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_lisp.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for std_msgs_generate_messages_lisp.
+
+# Include the progress variables for this target.
+include CMakeFiles/std_msgs_generate_messages_lisp.dir/progress.make
+
+std_msgs_generate_messages_lisp: CMakeFiles/std_msgs_generate_messages_lisp.dir/build.make
+
+.PHONY : std_msgs_generate_messages_lisp
+
+# Rule to build all files generated by this target.
+CMakeFiles/std_msgs_generate_messages_lisp.dir/build: std_msgs_generate_messages_lisp
+
+.PHONY : CMakeFiles/std_msgs_generate_messages_lisp.dir/build
+
+CMakeFiles/std_msgs_generate_messages_lisp.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/std_msgs_generate_messages_lisp.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/std_msgs_generate_messages_lisp.dir/clean
+
+CMakeFiles/std_msgs_generate_messages_lisp.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_lisp.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/std_msgs_generate_messages_lisp.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_lisp.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_lisp.dir/cmake_clean.cmake
new file mode 100644
index 0000000..b995112
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_lisp.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/std_msgs_generate_messages_lisp.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_lisp.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_lisp.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_lisp.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_lisp.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_lisp.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_lisp.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_lisp.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_lisp.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_lisp.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_nodejs.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_nodejs.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_nodejs.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_nodejs.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_nodejs.dir/build.make
new file mode 100644
index 0000000..b3196de
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_nodejs.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for std_msgs_generate_messages_nodejs.
+
+# Include the progress variables for this target.
+include CMakeFiles/std_msgs_generate_messages_nodejs.dir/progress.make
+
+std_msgs_generate_messages_nodejs: CMakeFiles/std_msgs_generate_messages_nodejs.dir/build.make
+
+.PHONY : std_msgs_generate_messages_nodejs
+
+# Rule to build all files generated by this target.
+CMakeFiles/std_msgs_generate_messages_nodejs.dir/build: std_msgs_generate_messages_nodejs
+
+.PHONY : CMakeFiles/std_msgs_generate_messages_nodejs.dir/build
+
+CMakeFiles/std_msgs_generate_messages_nodejs.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/std_msgs_generate_messages_nodejs.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/std_msgs_generate_messages_nodejs.dir/clean
+
+CMakeFiles/std_msgs_generate_messages_nodejs.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_nodejs.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/std_msgs_generate_messages_nodejs.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_nodejs.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_nodejs.dir/cmake_clean.cmake
new file mode 100644
index 0000000..f5f42ae
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_nodejs.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/std_msgs_generate_messages_nodejs.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_nodejs.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_nodejs.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_nodejs.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_nodejs.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_nodejs.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_nodejs.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_nodejs.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_nodejs.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_nodejs.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_py.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_py.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_py.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_py.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_py.dir/build.make
new file mode 100644
index 0000000..80cb9a6
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_py.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for std_msgs_generate_messages_py.
+
+# Include the progress variables for this target.
+include CMakeFiles/std_msgs_generate_messages_py.dir/progress.make
+
+std_msgs_generate_messages_py: CMakeFiles/std_msgs_generate_messages_py.dir/build.make
+
+.PHONY : std_msgs_generate_messages_py
+
+# Rule to build all files generated by this target.
+CMakeFiles/std_msgs_generate_messages_py.dir/build: std_msgs_generate_messages_py
+
+.PHONY : CMakeFiles/std_msgs_generate_messages_py.dir/build
+
+CMakeFiles/std_msgs_generate_messages_py.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/std_msgs_generate_messages_py.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/std_msgs_generate_messages_py.dir/clean
+
+CMakeFiles/std_msgs_generate_messages_py.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_py.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/std_msgs_generate_messages_py.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_py.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_py.dir/cmake_clean.cmake
new file mode 100644
index 0000000..15da12c
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_py.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/std_msgs_generate_messages_py.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_py.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_py.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_py.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_py.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_py.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_py.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_py.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_py.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/std_msgs_generate_messages_py.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tests.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tests.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tests.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tests.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tests.dir/build.make
new file mode 100644
index 0000000..41e0d13
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tests.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for tests.
+
+# Include the progress variables for this target.
+include CMakeFiles/tests.dir/progress.make
+
+tests: CMakeFiles/tests.dir/build.make
+
+.PHONY : tests
+
+# Rule to build all files generated by this target.
+CMakeFiles/tests.dir/build: tests
+
+.PHONY : CMakeFiles/tests.dir/build
+
+CMakeFiles/tests.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/tests.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/tests.dir/clean
+
+CMakeFiles/tests.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tests.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/tests.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tests.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tests.dir/cmake_clean.cmake
new file mode 100644
index 0000000..910f04d
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tests.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/tests.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tests.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tests.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tests.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_cpp.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_cpp.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_cpp.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_cpp.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_cpp.dir/build.make
new file mode 100644
index 0000000..78dd22c
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_cpp.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for tf2_msgs_generate_messages_cpp.
+
+# Include the progress variables for this target.
+include CMakeFiles/tf2_msgs_generate_messages_cpp.dir/progress.make
+
+tf2_msgs_generate_messages_cpp: CMakeFiles/tf2_msgs_generate_messages_cpp.dir/build.make
+
+.PHONY : tf2_msgs_generate_messages_cpp
+
+# Rule to build all files generated by this target.
+CMakeFiles/tf2_msgs_generate_messages_cpp.dir/build: tf2_msgs_generate_messages_cpp
+
+.PHONY : CMakeFiles/tf2_msgs_generate_messages_cpp.dir/build
+
+CMakeFiles/tf2_msgs_generate_messages_cpp.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/tf2_msgs_generate_messages_cpp.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/tf2_msgs_generate_messages_cpp.dir/clean
+
+CMakeFiles/tf2_msgs_generate_messages_cpp.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_cpp.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/tf2_msgs_generate_messages_cpp.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_cpp.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_cpp.dir/cmake_clean.cmake
new file mode 100644
index 0000000..97cac24
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_cpp.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/tf2_msgs_generate_messages_cpp.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_cpp.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_cpp.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_cpp.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_cpp.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_cpp.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_cpp.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_cpp.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_cpp.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_cpp.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_eus.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_eus.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_eus.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_eus.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_eus.dir/build.make
new file mode 100644
index 0000000..871db4e
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_eus.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for tf2_msgs_generate_messages_eus.
+
+# Include the progress variables for this target.
+include CMakeFiles/tf2_msgs_generate_messages_eus.dir/progress.make
+
+tf2_msgs_generate_messages_eus: CMakeFiles/tf2_msgs_generate_messages_eus.dir/build.make
+
+.PHONY : tf2_msgs_generate_messages_eus
+
+# Rule to build all files generated by this target.
+CMakeFiles/tf2_msgs_generate_messages_eus.dir/build: tf2_msgs_generate_messages_eus
+
+.PHONY : CMakeFiles/tf2_msgs_generate_messages_eus.dir/build
+
+CMakeFiles/tf2_msgs_generate_messages_eus.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/tf2_msgs_generate_messages_eus.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/tf2_msgs_generate_messages_eus.dir/clean
+
+CMakeFiles/tf2_msgs_generate_messages_eus.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_eus.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/tf2_msgs_generate_messages_eus.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_eus.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_eus.dir/cmake_clean.cmake
new file mode 100644
index 0000000..29107f6
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_eus.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/tf2_msgs_generate_messages_eus.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_eus.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_eus.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_eus.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_eus.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_eus.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_eus.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_eus.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_eus.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_eus.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_lisp.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_lisp.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_lisp.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_lisp.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_lisp.dir/build.make
new file mode 100644
index 0000000..d65725a
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_lisp.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for tf2_msgs_generate_messages_lisp.
+
+# Include the progress variables for this target.
+include CMakeFiles/tf2_msgs_generate_messages_lisp.dir/progress.make
+
+tf2_msgs_generate_messages_lisp: CMakeFiles/tf2_msgs_generate_messages_lisp.dir/build.make
+
+.PHONY : tf2_msgs_generate_messages_lisp
+
+# Rule to build all files generated by this target.
+CMakeFiles/tf2_msgs_generate_messages_lisp.dir/build: tf2_msgs_generate_messages_lisp
+
+.PHONY : CMakeFiles/tf2_msgs_generate_messages_lisp.dir/build
+
+CMakeFiles/tf2_msgs_generate_messages_lisp.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/tf2_msgs_generate_messages_lisp.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/tf2_msgs_generate_messages_lisp.dir/clean
+
+CMakeFiles/tf2_msgs_generate_messages_lisp.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_lisp.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/tf2_msgs_generate_messages_lisp.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_lisp.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_lisp.dir/cmake_clean.cmake
new file mode 100644
index 0000000..9618867
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_lisp.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/tf2_msgs_generate_messages_lisp.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_lisp.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_lisp.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_lisp.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_lisp.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_lisp.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_lisp.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_lisp.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_lisp.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_lisp.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/build.make
new file mode 100644
index 0000000..9948ba2
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for tf2_msgs_generate_messages_nodejs.
+
+# Include the progress variables for this target.
+include CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/progress.make
+
+tf2_msgs_generate_messages_nodejs: CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/build.make
+
+.PHONY : tf2_msgs_generate_messages_nodejs
+
+# Rule to build all files generated by this target.
+CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/build: tf2_msgs_generate_messages_nodejs
+
+.PHONY : CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/build
+
+CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/clean
+
+CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/cmake_clean.cmake
new file mode 100644
index 0000000..bd97d95
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_nodejs.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_py.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_py.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_py.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_py.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_py.dir/build.make
new file mode 100644
index 0000000..175ab2f
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_py.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for tf2_msgs_generate_messages_py.
+
+# Include the progress variables for this target.
+include CMakeFiles/tf2_msgs_generate_messages_py.dir/progress.make
+
+tf2_msgs_generate_messages_py: CMakeFiles/tf2_msgs_generate_messages_py.dir/build.make
+
+.PHONY : tf2_msgs_generate_messages_py
+
+# Rule to build all files generated by this target.
+CMakeFiles/tf2_msgs_generate_messages_py.dir/build: tf2_msgs_generate_messages_py
+
+.PHONY : CMakeFiles/tf2_msgs_generate_messages_py.dir/build
+
+CMakeFiles/tf2_msgs_generate_messages_py.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/tf2_msgs_generate_messages_py.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/tf2_msgs_generate_messages_py.dir/clean
+
+CMakeFiles/tf2_msgs_generate_messages_py.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_py.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/tf2_msgs_generate_messages_py.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_py.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_py.dir/cmake_clean.cmake
new file mode 100644
index 0000000..3effb9b
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_py.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/tf2_msgs_generate_messages_py.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_py.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_py.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_py.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_py.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_py.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_py.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_py.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_py.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf2_msgs_generate_messages_py.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_cpp.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_cpp.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_cpp.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_cpp.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_cpp.dir/build.make
new file mode 100644
index 0000000..b7592af
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_cpp.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for tf_generate_messages_cpp.
+
+# Include the progress variables for this target.
+include CMakeFiles/tf_generate_messages_cpp.dir/progress.make
+
+tf_generate_messages_cpp: CMakeFiles/tf_generate_messages_cpp.dir/build.make
+
+.PHONY : tf_generate_messages_cpp
+
+# Rule to build all files generated by this target.
+CMakeFiles/tf_generate_messages_cpp.dir/build: tf_generate_messages_cpp
+
+.PHONY : CMakeFiles/tf_generate_messages_cpp.dir/build
+
+CMakeFiles/tf_generate_messages_cpp.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/tf_generate_messages_cpp.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/tf_generate_messages_cpp.dir/clean
+
+CMakeFiles/tf_generate_messages_cpp.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_cpp.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/tf_generate_messages_cpp.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_cpp.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_cpp.dir/cmake_clean.cmake
new file mode 100644
index 0000000..5378e20
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_cpp.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/tf_generate_messages_cpp.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_cpp.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_cpp.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_cpp.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_cpp.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_cpp.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_cpp.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_cpp.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_cpp.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_cpp.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_eus.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_eus.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_eus.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_eus.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_eus.dir/build.make
new file mode 100644
index 0000000..b61e52c
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_eus.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for tf_generate_messages_eus.
+
+# Include the progress variables for this target.
+include CMakeFiles/tf_generate_messages_eus.dir/progress.make
+
+tf_generate_messages_eus: CMakeFiles/tf_generate_messages_eus.dir/build.make
+
+.PHONY : tf_generate_messages_eus
+
+# Rule to build all files generated by this target.
+CMakeFiles/tf_generate_messages_eus.dir/build: tf_generate_messages_eus
+
+.PHONY : CMakeFiles/tf_generate_messages_eus.dir/build
+
+CMakeFiles/tf_generate_messages_eus.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/tf_generate_messages_eus.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/tf_generate_messages_eus.dir/clean
+
+CMakeFiles/tf_generate_messages_eus.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_eus.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/tf_generate_messages_eus.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_eus.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_eus.dir/cmake_clean.cmake
new file mode 100644
index 0000000..fbc2fb8
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_eus.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/tf_generate_messages_eus.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_eus.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_eus.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_eus.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_eus.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_eus.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_eus.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_eus.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_eus.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_eus.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_lisp.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_lisp.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_lisp.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_lisp.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_lisp.dir/build.make
new file mode 100644
index 0000000..82ac13d
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_lisp.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for tf_generate_messages_lisp.
+
+# Include the progress variables for this target.
+include CMakeFiles/tf_generate_messages_lisp.dir/progress.make
+
+tf_generate_messages_lisp: CMakeFiles/tf_generate_messages_lisp.dir/build.make
+
+.PHONY : tf_generate_messages_lisp
+
+# Rule to build all files generated by this target.
+CMakeFiles/tf_generate_messages_lisp.dir/build: tf_generate_messages_lisp
+
+.PHONY : CMakeFiles/tf_generate_messages_lisp.dir/build
+
+CMakeFiles/tf_generate_messages_lisp.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/tf_generate_messages_lisp.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/tf_generate_messages_lisp.dir/clean
+
+CMakeFiles/tf_generate_messages_lisp.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_lisp.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/tf_generate_messages_lisp.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_lisp.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_lisp.dir/cmake_clean.cmake
new file mode 100644
index 0000000..c66eb7b
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_lisp.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/tf_generate_messages_lisp.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_lisp.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_lisp.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_lisp.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_lisp.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_lisp.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_lisp.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_lisp.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_lisp.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_lisp.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_nodejs.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_nodejs.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_nodejs.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_nodejs.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_nodejs.dir/build.make
new file mode 100644
index 0000000..7b7663e
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_nodejs.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for tf_generate_messages_nodejs.
+
+# Include the progress variables for this target.
+include CMakeFiles/tf_generate_messages_nodejs.dir/progress.make
+
+tf_generate_messages_nodejs: CMakeFiles/tf_generate_messages_nodejs.dir/build.make
+
+.PHONY : tf_generate_messages_nodejs
+
+# Rule to build all files generated by this target.
+CMakeFiles/tf_generate_messages_nodejs.dir/build: tf_generate_messages_nodejs
+
+.PHONY : CMakeFiles/tf_generate_messages_nodejs.dir/build
+
+CMakeFiles/tf_generate_messages_nodejs.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/tf_generate_messages_nodejs.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/tf_generate_messages_nodejs.dir/clean
+
+CMakeFiles/tf_generate_messages_nodejs.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_nodejs.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/tf_generate_messages_nodejs.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_nodejs.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_nodejs.dir/cmake_clean.cmake
new file mode 100644
index 0000000..ed543e1
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_nodejs.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/tf_generate_messages_nodejs.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_nodejs.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_nodejs.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_nodejs.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_nodejs.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_nodejs.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_nodejs.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_nodejs.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_nodejs.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_nodejs.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_py.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_py.dir/DependInfo.cmake
new file mode 100644
index 0000000..19fab21
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_py.dir/DependInfo.cmake
@@ -0,0 +1,11 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  )
+# The set of files for implicit dependencies of each language:
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_py.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_py.dir/build.make
new file mode 100644
index 0000000..cff3526
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_py.dir/build.make
@@ -0,0 +1,72 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Utility rule file for tf_generate_messages_py.
+
+# Include the progress variables for this target.
+include CMakeFiles/tf_generate_messages_py.dir/progress.make
+
+tf_generate_messages_py: CMakeFiles/tf_generate_messages_py.dir/build.make
+
+.PHONY : tf_generate_messages_py
+
+# Rule to build all files generated by this target.
+CMakeFiles/tf_generate_messages_py.dir/build: tf_generate_messages_py
+
+.PHONY : CMakeFiles/tf_generate_messages_py.dir/build
+
+CMakeFiles/tf_generate_messages_py.dir/clean:
+	$(CMAKE_COMMAND) -P CMakeFiles/tf_generate_messages_py.dir/cmake_clean.cmake
+.PHONY : CMakeFiles/tf_generate_messages_py.dir/clean
+
+CMakeFiles/tf_generate_messages_py.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_py.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : CMakeFiles/tf_generate_messages_py.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_py.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_py.dir/cmake_clean.cmake
new file mode 100644
index 0000000..36912c7
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_py.dir/cmake_clean.cmake
@@ -0,0 +1,5 @@
+
+# Per-language clean rules from dependency scanning.
+foreach(lang )
+  include(CMakeFiles/tf_generate_messages_py.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_py.dir/depend.internal b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_py.dir/depend.internal
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_py.dir/depend.internal
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_py.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_py.dir/depend.make
new file mode 100644
index 0000000..f647855
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_py.dir/depend.make
@@ -0,0 +1,3 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_py.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_py.dir/progress.make
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles/tf_generate_messages_py.dir/progress.make
@@ -0,0 +1 @@
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CTestConfiguration.ini b/mav_control_rw/mav_nonlinear_mpc/solver/CTestConfiguration.ini
new file mode 100644
index 0000000..6593c9e
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CTestConfiguration.ini
@@ -0,0 +1,105 @@
+# This file is configured by CMake automatically as DartConfiguration.tcl
+# If you choose not to use CMake, this file may be hand configured, by
+# filling in the required variables.
+
+
+# Configuration directories and files
+SourceDirectory: /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+BuildDirectory: /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Where to place the cost data store
+CostDataFile: 
+
+# Site is something like machine.domain, i.e. pragmatic.crd
+Site: olympen1-112
+
+# Build name is osname-revision-compiler, i.e. Linux-2.4.2-2smp-c++
+BuildName: 
+
+# Subprojects
+LabelsForSubprojects: 
+
+# Submission information
+SubmitURL: 
+
+# Dashboard start time
+NightlyStartTime: 
+
+# Commands for the build/test/submit cycle
+ConfigureCommand: "/usr/bin/cmake" "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc"
+MakeCommand: 
+DefaultCTestConfigurationType: 
+
+# version control
+UpdateVersionOnly: 
+
+# CVS options
+# Default is "-d -P -A"
+CVSCommand: 
+CVSUpdateOptions: 
+
+# Subversion options
+SVNCommand: 
+SVNOptions: 
+SVNUpdateOptions: 
+
+# Git options
+GITCommand: 
+GITInitSubmodules: 
+GITUpdateOptions: 
+GITUpdateCustom: 
+
+# Perforce options
+P4Command: 
+P4Client: 
+P4Options: 
+P4UpdateOptions: 
+P4UpdateCustom: 
+
+# Generic update command
+UpdateCommand: 
+UpdateOptions: 
+UpdateType: 
+
+# Compiler info
+Compiler: /usr/bin/c++
+CompilerVersion: 9.4.0
+
+# Dynamic analysis (MemCheck)
+PurifyCommand: 
+ValgrindCommand: 
+ValgrindCommandOptions: 
+MemoryCheckType: 
+MemoryCheckSanitizerOptions: 
+MemoryCheckCommand: 
+MemoryCheckCommandOptions: 
+MemoryCheckSuppressionFile: 
+
+# Coverage
+CoverageCommand: 
+CoverageExtraFlags: 
+
+# Cluster commands
+SlurmBatchCommand: 
+SlurmRunCommand: 
+
+# Testing options
+# TimeOut is the amount of time in seconds to wait for processes
+# to complete during testing.  After TimeOut seconds, the
+# process will be summarily terminated.
+# Currently set to 25 minutes
+TimeOut: 
+
+# During parallel testing CTest will not start a new test if doing
+# so would cause the system load to exceed this value.
+TestLoad: 
+
+UseLaunchers: 
+CurlOptions: 
+# warning, if you add new options here that have to do with submit,
+# you have to update cmCTestSubmitCommand.cxx
+
+# For CTest submissions that timeout, these options
+# specify behavior for retrying the submission
+CTestSubmitRetryDelay: 
+CTestSubmitRetryCount: 
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CTestCustom.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CTestCustom.cmake
new file mode 100644
index 0000000..14956f3
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CTestCustom.cmake
@@ -0,0 +1,2 @@
+set(CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE 0)
+set(CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE 0)
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/CTestTestfile.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/CTestTestfile.cmake
new file mode 100644
index 0000000..59cc222
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/CTestTestfile.cmake
@@ -0,0 +1,7 @@
+# CMake generated Testfile for 
+# Source directory: /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+# Build directory: /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+# 
+# This file includes the relevant testing commands required for 
+# testing this directory and lists subdirectories to be tested as well.
+subdirs("gtest")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/Makefile b/mav_control_rw/mav_nonlinear_mpc/solver/Makefile
new file mode 100644
index 0000000..2c30c7a
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/Makefile
@@ -0,0 +1,70 @@
+#
+#    This file was auto-generated using the ACADO Toolkit.
+#    
+#    While ACADO Toolkit is free software released under the terms of
+#    the GNU Lesser General Public License (LGPL), the generated code
+#    as such remains the property of the user who used ACADO Toolkit
+#    to generate this code. In particular, user dependent data of the code
+#    do not inherit the GNU LGPL license. On the other hand, parts of the
+#    generated code that are a direct copy of source code from the
+#    ACADO Toolkit or the software tools it is based on, remain, as derived
+#    work, automatically covered by the LGPL license.
+#    
+#    ACADO Toolkit 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.
+#    
+
+
+UNAME := $(shell uname)
+
+LDLIBS = -lm -lstdc++
+ifeq ($(UNAME), Linux)
+	LDLIBS += -lrt
+endif
+
+CCACHE_APP := $(shell which ccache 2>/dev/null)
+
+CFLAGS = -O3 -finline-functions -I. -I./qpoases
+CXXFLAGS = -O3 -finline-functions -I. -I./qpoases -I./qpoases/INCLUDE -I./qpoases/SRC
+CC     = $(CCACHE_APP) gcc
+CXX    = $(CCACHE_APP) g++
+
+OBJECTS = \
+	./qpoases/SRC/Bounds.o \
+	./qpoases/SRC/Constraints.o \
+	./qpoases/SRC/CyclingManager.o \
+	./qpoases/SRC/Indexlist.o \
+	./qpoases/SRC/MessageHandling.o \
+	./qpoases/SRC/QProblem.o \
+	./qpoases/SRC/QProblemB.o \
+	./qpoases/SRC/SubjectTo.o \
+	./qpoases/SRC/Utils.o \
+	./qpoases/SRC/EXTRAS/SolutionAnalysis.o \
+	acado_qpoases_interface.o \
+	acado_integrator.o \
+	acado_solver.o \
+	acado_auxiliary_functions.o
+
+.PHONY: all
+all: libacado_exported_rti.a test
+
+test: ${OBJECTS} test.o
+
+acado_qpoases_interface.o   : acado_qpoases_interface.hpp
+acado_solver.o              : acado_common.h
+acado_integrator.o          : acado_common.h
+acado_auxiliary_functions.o : acado_common.h \
+                              acado_auxiliary_functions.h
+test.o                      : acado_common.h \
+                              acado_qpoases_interface.hpp \
+                              acado_auxiliary_functions.h
+
+libacado_exported_rti.a: ${OBJECTS}
+	ar r $@ $?
+
+${OBJECTS} : acado_qpoases_interface.hpp
+
+.PHONY : clean
+clean :
+	-rm -f *.o *.a ./qpoases/*.o ./qpoases/SRC/*.o ./qpoases/SRC/*.a test
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/acado_auxiliary_functions.c b/mav_control_rw/mav_nonlinear_mpc/solver/acado_auxiliary_functions.c
new file mode 100644
index 0000000..6f0bb70
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/acado_auxiliary_functions.c
@@ -0,0 +1,212 @@
+/*
+ *    This file was auto-generated using the ACADO Toolkit.
+ *    
+ *    While ACADO Toolkit is free software released under the terms of
+ *    the GNU Lesser General Public License (LGPL), the generated code
+ *    as such remains the property of the user who used ACADO Toolkit
+ *    to generate this code. In particular, user dependent data of the code
+ *    do not inherit the GNU LGPL license. On the other hand, parts of the
+ *    generated code that are a direct copy of source code from the
+ *    ACADO Toolkit or the software tools it is based on, remain, as derived
+ *    work, automatically covered by the LGPL license.
+ *    
+ *    ACADO Toolkit 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.
+ *    
+ */
+
+
+#include "acado_auxiliary_functions.h"
+
+#include <stdio.h>
+
+real_t* acado_getVariablesX( )
+{
+	return acadoVariables.x;
+}
+
+real_t* acado_getVariablesU( )
+{
+	return acadoVariables.u;
+}
+
+#if ACADO_NY > 0
+real_t* acado_getVariablesY( )
+{
+	return acadoVariables.y;
+}
+#endif
+
+#if ACADO_NYN > 0
+real_t* acado_getVariablesYN( )
+{
+	return acadoVariables.yN;
+}
+#endif
+
+real_t* acado_getVariablesX0( )
+{
+#if ACADO_INITIAL_VALUE_FIXED
+	return acadoVariables.x0;
+#else
+	return 0;
+#endif
+}
+
+/** Print differential variables. */
+void acado_printDifferentialVariables( )
+{
+	int i, j;
+	printf("\nDifferential variables:\n[\n");
+	for (i = 0; i < ACADO_N + 1; ++i)
+	{
+		for (j = 0; j < ACADO_NX; ++j)
+			printf("\t%e", acadoVariables.x[i * ACADO_NX + j]);
+		printf("\n");
+	}
+	printf("]\n\n");
+}
+
+/** Print control variables. */
+void acado_printControlVariables( )
+{
+	int i, j;
+	printf("\nControl variables:\n[\n");
+	for (i = 0; i < ACADO_N; ++i)
+	{
+		for (j = 0; j < ACADO_NU; ++j)
+			printf("\t%e", acadoVariables.u[i * ACADO_NU + j]);
+		printf("\n");
+	}
+	printf("]\n\n");
+}
+
+/** Print ACADO code generation notice. */
+void acado_printHeader( )
+{
+	printf(
+		"\nACADO Toolkit -- A Toolkit for Automatic Control and Dynamic Optimization.\n"
+		"Copyright (C) 2008-2015 by Boris Houska, Hans Joachim Ferreau,\n" 
+		"Milan Vukov and Rien Quirynen, KU Leuven.\n"
+	);
+	
+	printf(
+		"Developed within the Optimization in Engineering Center (OPTEC) under\n"
+		"supervision of Moritz Diehl. All rights reserved.\n\n"
+		"ACADO Toolkit is distributed under the terms of the GNU Lesser\n"
+		"General Public License 3 in the hope that it will be useful,\n"
+		"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+		"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+		"GNU Lesser General Public License for more details.\n\n"
+	);
+}
+
+#if !(defined _DSPACE)
+#if (defined _WIN32 || defined _WIN64) && !(defined __MINGW32__ || defined __MINGW64__)
+
+void acado_tic( acado_timer* t )
+{
+	QueryPerformanceFrequency(&t->freq);
+	QueryPerformanceCounter(&t->tic);
+}
+
+real_t acado_toc( acado_timer* t )
+{
+	QueryPerformanceCounter(&t->toc);
+	return ((t->toc.QuadPart - t->tic.QuadPart) / (real_t)t->freq.QuadPart);
+}
+
+
+#elif (defined __APPLE__)
+
+void acado_tic( acado_timer* t )
+{
+    /* read current clock cycles */
+    t->tic = mach_absolute_time();
+}
+
+real_t acado_toc( acado_timer* t )
+{
+
+    uint64_t duration; /* elapsed time in clock cycles*/
+    
+    t->toc = mach_absolute_time();
+    duration = t->toc - t->tic;
+    
+    /*conversion from clock cycles to nanoseconds*/
+    mach_timebase_info(&(t->tinfo));
+    duration *= t->tinfo.numer;
+    duration /= t->tinfo.denom;
+
+    return (real_t)duration / 1e9;
+}
+
+#else
+
+#if __STDC_VERSION__ >= 199901L
+/* C99 mode */
+
+/* read current time */
+void acado_tic( acado_timer* t )
+{
+	gettimeofday(&t->tic, 0);
+}
+
+/* return time passed since last call to tic on this timer */
+real_t acado_toc( acado_timer* t )
+{
+	struct timeval temp;
+	
+	gettimeofday(&t->toc, 0);
+    
+	if ((t->toc.tv_usec - t->tic.tv_usec) < 0)
+	{
+		temp.tv_sec = t->toc.tv_sec - t->tic.tv_sec - 1;
+		temp.tv_usec = 1000000 + t->toc.tv_usec - t->tic.tv_usec;
+	}
+	else
+	{
+		temp.tv_sec = t->toc.tv_sec - t->tic.tv_sec;
+		temp.tv_usec = t->toc.tv_usec - t->tic.tv_usec;
+	}
+	
+	return (real_t)temp.tv_sec + (real_t)temp.tv_usec / 1e6;
+}
+
+#else
+/* ANSI */
+
+/* read current time */
+void acado_tic( acado_timer* t )
+{
+	clock_gettime(CLOCK_MONOTONIC, &t->tic);
+}
+
+
+/* return time passed since last call to tic on this timer */
+real_t acado_toc( acado_timer* t )
+{
+	struct timespec temp;
+    
+	clock_gettime(CLOCK_MONOTONIC, &t->toc);	
+    
+	if ((t->toc.tv_nsec - t->tic.tv_nsec) < 0)
+	{
+		temp.tv_sec = t->toc.tv_sec - t->tic.tv_sec - 1;
+		temp.tv_nsec = 1000000000+t->toc.tv_nsec - t->tic.tv_nsec;
+	}
+	else
+	{
+		temp.tv_sec = t->toc.tv_sec - t->tic.tv_sec;
+		temp.tv_nsec = t->toc.tv_nsec - t->tic.tv_nsec;
+	}
+	
+	return (real_t)temp.tv_sec + (real_t)temp.tv_nsec / 1e9;
+}
+
+#endif /* __STDC_VERSION__ >= 199901L */
+
+#endif /* (defined _WIN32 || _WIN64) */
+
+#endif
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/acado_auxiliary_functions.h b/mav_control_rw/mav_nonlinear_mpc/solver/acado_auxiliary_functions.h
new file mode 100644
index 0000000..b1be0a6
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/acado_auxiliary_functions.h
@@ -0,0 +1,138 @@
+/*
+ *    This file was auto-generated using the ACADO Toolkit.
+ *    
+ *    While ACADO Toolkit is free software released under the terms of
+ *    the GNU Lesser General Public License (LGPL), the generated code
+ *    as such remains the property of the user who used ACADO Toolkit
+ *    to generate this code. In particular, user dependent data of the code
+ *    do not inherit the GNU LGPL license. On the other hand, parts of the
+ *    generated code that are a direct copy of source code from the
+ *    ACADO Toolkit or the software tools it is based on, remain, as derived
+ *    work, automatically covered by the LGPL license.
+ *    
+ *    ACADO Toolkit 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.
+ *    
+ */
+
+
+#ifndef ACADO_AUXILIARY_FUNCTIONS_H
+#define ACADO_AUXILIARY_FUNCTIONS_H
+
+#include "acado_common.h"
+
+#ifndef __MATLAB__
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+#endif /* __MATLAB__ */
+
+/** Get pointer to the matrix with differential variables. */
+real_t* acado_getVariablesX( );
+
+/** Get pointer to the matrix with control variables. */
+real_t* acado_getVariablesU( );
+
+#if ACADO_NY > 0
+/** Get pointer to the matrix with references/measurements. */
+real_t* acado_getVariablesY( );
+#endif
+
+#if ACADO_NYN > 0
+/** Get pointer to the vector with references/measurement on the last node. */
+real_t* acado_getVariablesYN( );
+#endif
+
+/** Get pointer to the current state feedback vector. Only applicable for NMPC. */
+real_t* acado_getVariablesX0( );
+
+/** Print differential variables. */
+void acado_printDifferentialVariables( );
+
+/** Print control variables. */
+void acado_printControlVariables( );
+
+/** Print ACADO code generation notice. */
+void acado_printHeader( );
+
+/*
+ * A huge thanks goes to Alexander Domahidi from ETHZ, Switzerland, for 
+ * providing us with the following timing routines.
+ */
+
+#if !(defined _DSPACE)
+#if (defined _WIN32 || defined _WIN64) && !(defined __MINGW32__ || defined __MINGW64__)
+
+/* Use Windows QueryPerformanceCounter for timing. */
+#include <Windows.h>
+
+/** A structure for keeping internal timer data. */
+typedef struct acado_timer_
+{
+	LARGE_INTEGER tic;
+	LARGE_INTEGER toc;
+	LARGE_INTEGER freq;
+} acado_timer;
+
+
+#elif (defined __APPLE__)
+
+#include "unistd.h"
+#include <mach/mach_time.h>
+
+/** A structure for keeping internal timer data. */
+typedef struct acado_timer_
+{
+	uint64_t tic;
+	uint64_t toc;
+	mach_timebase_info_data_t tinfo;
+} acado_timer;
+
+#else
+
+/* Use POSIX clock_gettime() for timing on non-Windows machines. */
+#include <time.h>
+
+#if __STDC_VERSION__ >= 199901L
+/* C99 mode of operation. */
+
+#include <sys/stat.h>
+#include <sys/time.h>
+
+typedef struct acado_timer_
+{
+	struct timeval tic;
+	struct timeval toc;
+} acado_timer;
+
+#else
+/* ANSI C */
+
+/** A structure for keeping internal timer data. */
+typedef struct acado_timer_
+{
+	struct timespec tic;
+	struct timespec toc;
+} acado_timer;
+
+#endif /* __STDC_VERSION__ >= 199901L */
+
+#endif /* (defined _WIN32 || defined _WIN64) */
+
+/** A function for measurement of the current time. */
+void acado_tic( acado_timer* t );
+
+/** A function which returns the elapsed time. */
+real_t acado_toc( acado_timer* t );
+
+#endif
+
+#ifndef __MATLAB__
+#ifdef __cplusplus
+} /* extern "C" */
+#endif /* __cplusplus */
+#endif /* __MATLAB__ */
+
+#endif /* ACADO_AUXILIARY_FUNCTIONS_H */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/acado_common.h b/mav_control_rw/mav_nonlinear_mpc/solver/acado_common.h
new file mode 100644
index 0000000..535b7e2
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/acado_common.h
@@ -0,0 +1,399 @@
+/*
+ *    This file was auto-generated using the ACADO Toolkit.
+ *    
+ *    While ACADO Toolkit is free software released under the terms of
+ *    the GNU Lesser General Public License (LGPL), the generated code
+ *    as such remains the property of the user who used ACADO Toolkit
+ *    to generate this code. In particular, user dependent data of the code
+ *    do not inherit the GNU LGPL license. On the other hand, parts of the
+ *    generated code that are a direct copy of source code from the
+ *    ACADO Toolkit or the software tools it is based on, remain, as derived
+ *    work, automatically covered by the LGPL license.
+ *    
+ *    ACADO Toolkit 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.
+ *    
+ */
+
+
+#ifndef ACADO_COMMON_H
+#define ACADO_COMMON_H
+
+#include <math.h>
+#include <string.h>
+
+#ifndef __MATLAB__
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+#endif /* __MATLAB__ */
+
+/** \defgroup ACADO ACADO CGT generated module. */
+/** @{ */
+
+/** qpOASES QP solver indicator. */
+#define ACADO_QPOASES  0
+#define ACADO_QPOASES3 1
+/** FORCES QP solver indicator.*/
+#define ACADO_FORCES   2
+/** qpDUNES QP solver indicator.*/
+#define ACADO_QPDUNES  3
+/** HPMPC QP solver indicator. */
+#define ACADO_HPMPC    4
+#define ACADO_GENERIC    5
+
+/** Indicator for determining the QP solver used by the ACADO solver code. */
+#define ACADO_QP_SOLVER ACADO_QPOASES
+
+#include "acado_qpoases_interface.hpp"
+
+
+/*
+ * Common definitions
+ */
+/** User defined block based condensing. */
+#define ACADO_BLOCK_CONDENSING 0
+/** Compute covariance matrix of the last state estimate. */
+#define ACADO_COMPUTE_COVARIANCE_MATRIX 0
+/** Flag indicating whether constraint values are hard-coded or not. */
+#define ACADO_HARDCODED_CONSTRAINT_VALUES 0
+/** Indicator for fixed initial state. */
+#define ACADO_INITIAL_STATE_FIXED 1
+/** Number of control/estimation intervals. */
+#define ACADO_N 20
+/** Number of online data values. */
+#define ACADO_NOD 20
+/** Number of path constraints. */
+#define ACADO_NPAC 10
+/** Number of control variables. */
+#define ACADO_NU 2
+/** Number of differential variables. */
+#define ACADO_NX 5
+/** Number of algebraic variables. */
+#define ACADO_NXA 0
+/** Number of differential derivative variables. */
+#define ACADO_NXD 0
+/** Number of references/measurements per node on the first N nodes. */
+#define ACADO_NY 8
+/** Number of references/measurements on the last (N + 1)st node. */
+#define ACADO_NYN 5
+/** Total number of QP optimization variables. */
+#define ACADO_QP_NV 40
+/** Number of integration steps per shooting interval. */
+#define ACADO_RK_NIS 2
+/** Number of Runge-Kutta stages per integration step. */
+#define ACADO_RK_NSTAGES 1
+/** Providing interface for arrival cost. */
+#define ACADO_USE_ARRIVAL_COST 0
+/** Indicator for usage of non-hard-coded linear terms in the objective. */
+#define ACADO_USE_LINEAR_TERMS 0
+/** Indicator for type of fixed weighting matrices. */
+#define ACADO_WEIGHTING_MATRICES_TYPE 2
+
+
+/*
+ * Globally used structure definitions
+ */
+
+/** The structure containing the user data.
+ * 
+ *  Via this structure the user "communicates" with the solver code.
+ */
+typedef struct ACADOvariables_
+{
+int dummy;
+/** Matrix of size: 21 x 5 (row major format)
+ * 
+ *  Matrix containing 21 differential variable vectors.
+ */
+real_t x[ 105 ];
+
+/** Matrix of size: 20 x 2 (row major format)
+ * 
+ *  Matrix containing 20 control variable vectors.
+ */
+real_t u[ 40 ];
+
+/** Matrix of size: 21 x 20 (row major format)
+ * 
+ *  Matrix containing 21 online data vectors.
+ */
+real_t od[ 420 ];
+
+/** Column vector of size: 160
+ * 
+ *  Matrix containing 20 reference/measurement vectors of size 8 for first 20 nodes.
+ */
+real_t y[ 160 ];
+
+/** Column vector of size: 5
+ * 
+ *  Reference/measurement vector for the 21. node.
+ */
+real_t yN[ 5 ];
+
+/** Matrix of size: 160 x 8 (row major format) */
+real_t W[ 1280 ];
+
+/** Matrix of size: 5 x 5 (row major format) */
+real_t WN[ 25 ];
+
+/** Column vector of size: 5
+ * 
+ *  Current state feedback vector.
+ */
+real_t x0[ 5 ];
+
+/** Column vector of size: 40
+ * 
+ *  Lower bounds values.
+ */
+real_t lbValues[ 40 ];
+
+/** Column vector of size: 40
+ * 
+ *  Upper bounds values.
+ */
+real_t ubValues[ 40 ];
+
+/** Column vector of size: 240
+ * 
+ *  Lower bounds values for affine constraints.
+ */
+real_t lbAValues[ 240 ];
+
+/** Column vector of size: 240
+ * 
+ *  Upper bounds values for affine constraints.
+ */
+real_t ubAValues[ 240 ];
+
+
+} ACADOvariables;
+
+/** Private workspace used by the auto-generated code.
+ * 
+ *  Data members of this structure are private to the solver.
+ *  In other words, the user code should not modify values of this 
+ *  structure. 
+ */
+typedef struct ACADOworkspace_
+{
+/** Column vector of size: 4 */
+real_t rhs_aux[ 4 ];
+
+/** Column vector of size: 100 */
+real_t d[ 100 ];
+
+/** Column vector of size: 160 */
+real_t Dy[ 160 ];
+
+/** Column vector of size: 5 */
+real_t DyN[ 5 ];
+
+/** Matrix of size: 100 x 5 (row major format) */
+real_t evGx[ 500 ];
+
+/** Matrix of size: 100 x 2 (row major format) */
+real_t evGu[ 200 ];
+
+/** Column vector of size: 98 */
+real_t objAuxVar[ 98 ];
+
+/** Row vector of size: 27 */
+real_t objValueIn[ 27 ];
+
+/** Row vector of size: 64 */
+real_t objValueOut[ 64 ];
+
+/** Matrix of size: 100 x 5 (row major format) */
+real_t Q1[ 500 ];
+
+/** Matrix of size: 100 x 8 (row major format) */
+real_t Q2[ 800 ];
+
+/** Matrix of size: 40 x 2 (row major format) */
+real_t R1[ 80 ];
+
+/** Matrix of size: 40 x 8 (row major format) */
+real_t R2[ 320 ];
+
+/** Matrix of size: 5 x 5 (row major format) */
+real_t QN1[ 25 ];
+
+/** Matrix of size: 5 x 5 (row major format) */
+real_t QN2[ 25 ];
+
+/** Column vector of size: 160 */
+real_t conAuxVar[ 160 ];
+
+/** Row vector of size: 27 */
+real_t conValueIn[ 27 ];
+
+/** Row vector of size: 80 */
+real_t conValueOut[ 80 ];
+
+/** Column vector of size: 200 */
+real_t evH[ 200 ];
+
+/** Matrix of size: 200 x 5 (row major format) */
+real_t evHx[ 1000 ];
+
+/** Matrix of size: 200 x 2 (row major format) */
+real_t evHu[ 400 ];
+
+/** Column vector of size: 10 */
+real_t evHxd[ 10 ];
+
+/** Column vector of size: 105 */
+real_t sbar[ 105 ];
+
+/** Column vector of size: 5 */
+real_t Dx0[ 5 ];
+
+/** Matrix of size: 100 x 5 (row major format) */
+real_t C[ 500 ];
+
+/** Matrix of size: 5 x 2 (row major format) */
+real_t W1[ 10 ];
+
+/** Matrix of size: 5 x 2 (row major format) */
+real_t W2[ 10 ];
+
+/** Matrix of size: 1050 x 2 (row major format) */
+real_t E[ 2100 ];
+
+/** Column vector of size: 105 */
+real_t QDy[ 105 ];
+
+/** Column vector of size: 5 */
+real_t w1[ 5 ];
+
+/** Column vector of size: 5 */
+real_t w2[ 5 ];
+
+/** Matrix of size: 40 x 40 (row major format) */
+real_t H[ 1600 ];
+
+/** Matrix of size: 240 x 40 (row major format) */
+real_t A[ 9600 ];
+
+/** Column vector of size: 40 */
+real_t g[ 40 ];
+
+/** Column vector of size: 40 */
+real_t lb[ 40 ];
+
+/** Column vector of size: 40 */
+real_t ub[ 40 ];
+
+/** Column vector of size: 240 */
+real_t lbA[ 240 ];
+
+/** Column vector of size: 240 */
+real_t ubA[ 240 ];
+
+/** Column vector of size: 40 */
+real_t x[ 40 ];
+
+/** Column vector of size: 280 */
+real_t y[ 280 ];
+
+
+} ACADOworkspace;
+
+/* 
+ * Forward function declarations. 
+ */
+
+
+/** Performs the integration and sensitivity propagation for one shooting interval.
+ *
+ *  \param rk_eta Working array of size 27 to pass the input values and return the results.
+ *  \param resetIntegrator The internal memory of the integrator can be reset.
+ *
+ *  \return Status code of the integrator.
+ */
+int acado_integrate( real_t* const rk_eta, int resetIntegrator );
+
+/** Export of an ACADO symbolic function.
+ *
+ *  \param in Input to the exported function.
+ *  \param out Output of the exported function.
+ */
+void acado_rhs(const real_t* in, real_t* out);
+
+/** Export of an ACADO symbolic function.
+ *
+ *  \param in Input to the exported function.
+ *  \param out Output of the exported function.
+ */
+void acado_diffs(const real_t* in, real_t* out);
+
+/** Preparation step of the RTI scheme.
+ *
+ *  \return Status of the integration module. =0: OK, otherwise the error code.
+ */
+int acado_preparationStep(  );
+
+/** Feedback/estimation step of the RTI scheme.
+ *
+ *  \return Status code of the qpOASES QP solver.
+ */
+int acado_feedbackStep(  );
+
+/** Solver initialization. Must be called once before any other function call.
+ *
+ *  \return =0: OK, otherwise an error code of a QP solver.
+ */
+int acado_initializeSolver(  );
+
+/** Initialize shooting nodes by a forward simulation starting from the first node.
+ */
+void acado_initializeNodesByForwardSimulation(  );
+
+/** Shift differential variables vector by one interval.
+ *
+ *  \param strategy Shifting strategy: 1. Initialize node 21 with xEnd. 2. Initialize node 21 by forward simulation.
+ *  \param xEnd Value for the x vector on the last node. If =0 the old value is used.
+ *  \param uEnd Value for the u vector on the second to last node. If =0 the old value is used.
+ */
+void acado_shiftStates( int strategy, real_t* const xEnd, real_t* const uEnd );
+
+/** Shift controls vector by one interval.
+ *
+ *  \param uEnd Value for the u vector on the second to last node. If =0 the old value is used.
+ */
+void acado_shiftControls( real_t* const uEnd );
+
+/** Get the KKT tolerance of the current iterate.
+ *
+ *  \return The KKT tolerance value.
+ */
+real_t acado_getKKT(  );
+
+/** Calculate the objective value.
+ *
+ *  \return Value of the objective function.
+ */
+real_t acado_getObjective(  );
+
+
+/* 
+ * Extern declarations. 
+ */
+
+extern ACADOworkspace acadoWorkspace;
+extern ACADOvariables acadoVariables;
+
+/** @} */
+
+#ifndef __MATLAB__
+#ifdef __cplusplus
+} /* extern "C" */
+#endif /* __cplusplus */
+#endif /* __MATLAB__ */
+
+#endif /* ACADO_COMMON_H */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/acado_integrator.c b/mav_control_rw/mav_nonlinear_mpc/solver/acado_integrator.c
new file mode 100644
index 0000000..a182238
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/acado_integrator.c
@@ -0,0 +1,782 @@
+/*
+ *    This file was auto-generated using the ACADO Toolkit.
+ *    
+ *    While ACADO Toolkit is free software released under the terms of
+ *    the GNU Lesser General Public License (LGPL), the generated code
+ *    as such remains the property of the user who used ACADO Toolkit
+ *    to generate this code. In particular, user dependent data of the code
+ *    do not inherit the GNU LGPL license. On the other hand, parts of the
+ *    generated code that are a direct copy of source code from the
+ *    ACADO Toolkit or the software tools it is based on, remain, as derived
+ *    work, automatically covered by the LGPL license.
+ *    
+ *    ACADO Toolkit 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.
+ *    
+ */
+
+
+#include "acado_common.h"
+
+
+real_t rk_dim5_swap;
+
+/** Column vector of size: 5 */
+real_t rk_dim5_bPerm[ 5 ];
+
+/** Column vector of size: 4 */
+real_t auxVar[ 4 ];
+
+real_t rk_ttt;
+
+/** Row vector of size: 27 */
+real_t rk_xxx[ 27 ];
+
+/** Column vector of size: 5 */
+real_t rk_kkk[ 5 ];
+
+/** Matrix of size: 5 x 5 (row major format) */
+real_t rk_A[ 25 ];
+
+/** Column vector of size: 5 */
+real_t rk_b[ 5 ];
+
+/** Row vector of size: 5 */
+int rk_dim5_perm[ 5 ];
+
+/** Column vector of size: 5 */
+real_t rk_rhsTemp[ 5 ];
+
+/** Row vector of size: 35 */
+real_t rk_diffsTemp2[ 35 ];
+
+/** Column vector of size: 5 */
+real_t rk_diffK[ 5 ];
+
+/** Matrix of size: 5 x 7 (row major format) */
+real_t rk_diffsPrev2[ 35 ];
+
+/** Matrix of size: 5 x 7 (row major format) */
+real_t rk_diffsNew2[ 35 ];
+
+#pragma omp threadprivate( auxVar, rk_ttt, rk_xxx, rk_kkk, rk_diffK, rk_rhsTemp, rk_dim5_perm, rk_A, rk_b, rk_diffsPrev2, rk_diffsNew2, rk_diffsTemp2, rk_dim5_swap, rk_dim5_bPerm )
+
+void acado_rhs(const real_t* in, real_t* out)
+{
+const real_t* xd = in;
+const real_t* u = in + 5;
+/* Vector of auxiliary variables; number of elements: 2. */
+real_t* a = auxVar;
+
+/* Compute intermediate quantities: */
+a[0] = (cos(xd[2]));
+a[1] = (sin(xd[2]));
+
+/* Compute outputs: */
+out[0] = (a[0]*xd[3]);
+out[1] = (a[1]*xd[3]);
+out[2] = xd[4];
+out[3] = u[0];
+out[4] = u[1];
+}
+
+
+
+void acado_diffs(const real_t* in, real_t* out)
+{
+const real_t* xd = in;
+/* Vector of auxiliary variables; number of elements: 4. */
+real_t* a = auxVar;
+
+/* Compute intermediate quantities: */
+a[0] = ((real_t)(-1.0000000000000000e+00)*(sin(xd[2])));
+a[1] = (cos(xd[2]));
+a[2] = (cos(xd[2]));
+a[3] = (sin(xd[2]));
+
+/* Compute outputs: */
+out[0] = (real_t)(0.0000000000000000e+00);
+out[1] = (real_t)(0.0000000000000000e+00);
+out[2] = (a[0]*xd[3]);
+out[3] = a[1];
+out[4] = (real_t)(0.0000000000000000e+00);
+out[5] = (real_t)(0.0000000000000000e+00);
+out[6] = (real_t)(0.0000000000000000e+00);
+out[7] = (real_t)(0.0000000000000000e+00);
+out[8] = (real_t)(0.0000000000000000e+00);
+out[9] = (a[2]*xd[3]);
+out[10] = a[3];
+out[11] = (real_t)(0.0000000000000000e+00);
+out[12] = (real_t)(0.0000000000000000e+00);
+out[13] = (real_t)(0.0000000000000000e+00);
+out[14] = (real_t)(0.0000000000000000e+00);
+out[15] = (real_t)(0.0000000000000000e+00);
+out[16] = (real_t)(0.0000000000000000e+00);
+out[17] = (real_t)(0.0000000000000000e+00);
+out[18] = (real_t)(1.0000000000000000e+00);
+out[19] = (real_t)(0.0000000000000000e+00);
+out[20] = (real_t)(0.0000000000000000e+00);
+out[21] = (real_t)(0.0000000000000000e+00);
+out[22] = (real_t)(0.0000000000000000e+00);
+out[23] = (real_t)(0.0000000000000000e+00);
+out[24] = (real_t)(0.0000000000000000e+00);
+out[25] = (real_t)(0.0000000000000000e+00);
+out[26] = (real_t)(1.0000000000000000e+00);
+out[27] = (real_t)(0.0000000000000000e+00);
+out[28] = (real_t)(0.0000000000000000e+00);
+out[29] = (real_t)(0.0000000000000000e+00);
+out[30] = (real_t)(0.0000000000000000e+00);
+out[31] = (real_t)(0.0000000000000000e+00);
+out[32] = (real_t)(0.0000000000000000e+00);
+out[33] = (real_t)(0.0000000000000000e+00);
+out[34] = (real_t)(1.0000000000000000e+00);
+}
+
+
+
+void acado_solve_dim5_triangular( real_t* const A, real_t* const b )
+{
+
+b[4] = b[4]/A[24];
+b[3] -= + A[19]*b[4];
+b[3] = b[3]/A[18];
+b[2] -= + A[14]*b[4];
+b[2] -= + A[13]*b[3];
+b[2] = b[2]/A[12];
+b[1] -= + A[9]*b[4];
+b[1] -= + A[8]*b[3];
+b[1] -= + A[7]*b[2];
+b[1] = b[1]/A[6];
+b[0] -= + A[4]*b[4];
+b[0] -= + A[3]*b[3];
+b[0] -= + A[2]*b[2];
+b[0] -= + A[1]*b[1];
+b[0] = b[0]/A[0];
+}
+
+real_t acado_solve_dim5_system( real_t* const A, real_t* const b, int* const rk_perm )
+{
+real_t det;
+
+int i;
+int j;
+int k;
+
+int indexMax;
+
+int intSwap;
+
+real_t valueMax;
+
+real_t temp;
+
+for (i = 0; i < 5; ++i)
+{
+rk_perm[i] = i;
+}
+det = 1.0000000000000000e+00;
+if(fabs(A[5]) > fabs(A[0]) && fabs(A[5]) > fabs(A[10]) && fabs(A[5]) > fabs(A[15]) && fabs(A[5]) > fabs(A[20])) {
+rk_dim5_swap = A[0];
+A[0] = A[5];
+A[5] = rk_dim5_swap;
+rk_dim5_swap = A[1];
+A[1] = A[6];
+A[6] = rk_dim5_swap;
+rk_dim5_swap = A[2];
+A[2] = A[7];
+A[7] = rk_dim5_swap;
+rk_dim5_swap = A[3];
+A[3] = A[8];
+A[8] = rk_dim5_swap;
+rk_dim5_swap = A[4];
+A[4] = A[9];
+A[9] = rk_dim5_swap;
+rk_dim5_swap = b[0];
+b[0] = b[1];
+b[1] = rk_dim5_swap;
+intSwap = rk_perm[0];
+rk_perm[0] = rk_perm[1];
+rk_perm[1] = intSwap;
+}
+else if(fabs(A[10]) > fabs(A[0]) && fabs(A[10]) > fabs(A[5]) && fabs(A[10]) > fabs(A[15]) && fabs(A[10]) > fabs(A[20])) {
+rk_dim5_swap = A[0];
+A[0] = A[10];
+A[10] = rk_dim5_swap;
+rk_dim5_swap = A[1];
+A[1] = A[11];
+A[11] = rk_dim5_swap;
+rk_dim5_swap = A[2];
+A[2] = A[12];
+A[12] = rk_dim5_swap;
+rk_dim5_swap = A[3];
+A[3] = A[13];
+A[13] = rk_dim5_swap;
+rk_dim5_swap = A[4];
+A[4] = A[14];
+A[14] = rk_dim5_swap;
+rk_dim5_swap = b[0];
+b[0] = b[2];
+b[2] = rk_dim5_swap;
+intSwap = rk_perm[0];
+rk_perm[0] = rk_perm[2];
+rk_perm[2] = intSwap;
+}
+else if(fabs(A[15]) > fabs(A[0]) && fabs(A[15]) > fabs(A[5]) && fabs(A[15]) > fabs(A[10]) && fabs(A[15]) > fabs(A[20])) {
+rk_dim5_swap = A[0];
+A[0] = A[15];
+A[15] = rk_dim5_swap;
+rk_dim5_swap = A[1];
+A[1] = A[16];
+A[16] = rk_dim5_swap;
+rk_dim5_swap = A[2];
+A[2] = A[17];
+A[17] = rk_dim5_swap;
+rk_dim5_swap = A[3];
+A[3] = A[18];
+A[18] = rk_dim5_swap;
+rk_dim5_swap = A[4];
+A[4] = A[19];
+A[19] = rk_dim5_swap;
+rk_dim5_swap = b[0];
+b[0] = b[3];
+b[3] = rk_dim5_swap;
+intSwap = rk_perm[0];
+rk_perm[0] = rk_perm[3];
+rk_perm[3] = intSwap;
+}
+else if(fabs(A[20]) > fabs(A[0]) && fabs(A[20]) > fabs(A[5]) && fabs(A[20]) > fabs(A[10]) && fabs(A[20]) > fabs(A[15])) {
+rk_dim5_swap = A[0];
+A[0] = A[20];
+A[20] = rk_dim5_swap;
+rk_dim5_swap = A[1];
+A[1] = A[21];
+A[21] = rk_dim5_swap;
+rk_dim5_swap = A[2];
+A[2] = A[22];
+A[22] = rk_dim5_swap;
+rk_dim5_swap = A[3];
+A[3] = A[23];
+A[23] = rk_dim5_swap;
+rk_dim5_swap = A[4];
+A[4] = A[24];
+A[24] = rk_dim5_swap;
+rk_dim5_swap = b[0];
+b[0] = b[4];
+b[4] = rk_dim5_swap;
+intSwap = rk_perm[0];
+rk_perm[0] = rk_perm[4];
+rk_perm[4] = intSwap;
+}
+
+A[5] = -A[5]/A[0];
+A[6] += + A[5]*A[1];
+A[7] += + A[5]*A[2];
+A[8] += + A[5]*A[3];
+A[9] += + A[5]*A[4];
+b[1] += + A[5]*b[0];
+
+A[10] = -A[10]/A[0];
+A[11] += + A[10]*A[1];
+A[12] += + A[10]*A[2];
+A[13] += + A[10]*A[3];
+A[14] += + A[10]*A[4];
+b[2] += + A[10]*b[0];
+
+A[15] = -A[15]/A[0];
+A[16] += + A[15]*A[1];
+A[17] += + A[15]*A[2];
+A[18] += + A[15]*A[3];
+A[19] += + A[15]*A[4];
+b[3] += + A[15]*b[0];
+
+A[20] = -A[20]/A[0];
+A[21] += + A[20]*A[1];
+A[22] += + A[20]*A[2];
+A[23] += + A[20]*A[3];
+A[24] += + A[20]*A[4];
+b[4] += + A[20]*b[0];
+
+det = + det*A[0];
+
+if(fabs(A[11]) > fabs(A[6]) && fabs(A[11]) > fabs(A[16]) && fabs(A[11]) > fabs(A[21])) {
+rk_dim5_swap = A[5];
+A[5] = A[10];
+A[10] = rk_dim5_swap;
+rk_dim5_swap = A[6];
+A[6] = A[11];
+A[11] = rk_dim5_swap;
+rk_dim5_swap = A[7];
+A[7] = A[12];
+A[12] = rk_dim5_swap;
+rk_dim5_swap = A[8];
+A[8] = A[13];
+A[13] = rk_dim5_swap;
+rk_dim5_swap = A[9];
+A[9] = A[14];
+A[14] = rk_dim5_swap;
+rk_dim5_swap = b[1];
+b[1] = b[2];
+b[2] = rk_dim5_swap;
+intSwap = rk_perm[1];
+rk_perm[1] = rk_perm[2];
+rk_perm[2] = intSwap;
+}
+else if(fabs(A[16]) > fabs(A[6]) && fabs(A[16]) > fabs(A[11]) && fabs(A[16]) > fabs(A[21])) {
+rk_dim5_swap = A[5];
+A[5] = A[15];
+A[15] = rk_dim5_swap;
+rk_dim5_swap = A[6];
+A[6] = A[16];
+A[16] = rk_dim5_swap;
+rk_dim5_swap = A[7];
+A[7] = A[17];
+A[17] = rk_dim5_swap;
+rk_dim5_swap = A[8];
+A[8] = A[18];
+A[18] = rk_dim5_swap;
+rk_dim5_swap = A[9];
+A[9] = A[19];
+A[19] = rk_dim5_swap;
+rk_dim5_swap = b[1];
+b[1] = b[3];
+b[3] = rk_dim5_swap;
+intSwap = rk_perm[1];
+rk_perm[1] = rk_perm[3];
+rk_perm[3] = intSwap;
+}
+else if(fabs(A[21]) > fabs(A[6]) && fabs(A[21]) > fabs(A[11]) && fabs(A[21]) > fabs(A[16])) {
+rk_dim5_swap = A[5];
+A[5] = A[20];
+A[20] = rk_dim5_swap;
+rk_dim5_swap = A[6];
+A[6] = A[21];
+A[21] = rk_dim5_swap;
+rk_dim5_swap = A[7];
+A[7] = A[22];
+A[22] = rk_dim5_swap;
+rk_dim5_swap = A[8];
+A[8] = A[23];
+A[23] = rk_dim5_swap;
+rk_dim5_swap = A[9];
+A[9] = A[24];
+A[24] = rk_dim5_swap;
+rk_dim5_swap = b[1];
+b[1] = b[4];
+b[4] = rk_dim5_swap;
+intSwap = rk_perm[1];
+rk_perm[1] = rk_perm[4];
+rk_perm[4] = intSwap;
+}
+
+A[11] = -A[11]/A[6];
+A[12] += + A[11]*A[7];
+A[13] += + A[11]*A[8];
+A[14] += + A[11]*A[9];
+b[2] += + A[11]*b[1];
+
+A[16] = -A[16]/A[6];
+A[17] += + A[16]*A[7];
+A[18] += + A[16]*A[8];
+A[19] += + A[16]*A[9];
+b[3] += + A[16]*b[1];
+
+A[21] = -A[21]/A[6];
+A[22] += + A[21]*A[7];
+A[23] += + A[21]*A[8];
+A[24] += + A[21]*A[9];
+b[4] += + A[21]*b[1];
+
+det = + det*A[6];
+
+if(fabs(A[17]) > fabs(A[12]) && fabs(A[17]) > fabs(A[22])) {
+rk_dim5_swap = A[10];
+A[10] = A[15];
+A[15] = rk_dim5_swap;
+rk_dim5_swap = A[11];
+A[11] = A[16];
+A[16] = rk_dim5_swap;
+rk_dim5_swap = A[12];
+A[12] = A[17];
+A[17] = rk_dim5_swap;
+rk_dim5_swap = A[13];
+A[13] = A[18];
+A[18] = rk_dim5_swap;
+rk_dim5_swap = A[14];
+A[14] = A[19];
+A[19] = rk_dim5_swap;
+rk_dim5_swap = b[2];
+b[2] = b[3];
+b[3] = rk_dim5_swap;
+intSwap = rk_perm[2];
+rk_perm[2] = rk_perm[3];
+rk_perm[3] = intSwap;
+}
+else if(fabs(A[22]) > fabs(A[12]) && fabs(A[22]) > fabs(A[17])) {
+rk_dim5_swap = A[10];
+A[10] = A[20];
+A[20] = rk_dim5_swap;
+rk_dim5_swap = A[11];
+A[11] = A[21];
+A[21] = rk_dim5_swap;
+rk_dim5_swap = A[12];
+A[12] = A[22];
+A[22] = rk_dim5_swap;
+rk_dim5_swap = A[13];
+A[13] = A[23];
+A[23] = rk_dim5_swap;
+rk_dim5_swap = A[14];
+A[14] = A[24];
+A[24] = rk_dim5_swap;
+rk_dim5_swap = b[2];
+b[2] = b[4];
+b[4] = rk_dim5_swap;
+intSwap = rk_perm[2];
+rk_perm[2] = rk_perm[4];
+rk_perm[4] = intSwap;
+}
+
+A[17] = -A[17]/A[12];
+A[18] += + A[17]*A[13];
+A[19] += + A[17]*A[14];
+b[3] += + A[17]*b[2];
+
+A[22] = -A[22]/A[12];
+A[23] += + A[22]*A[13];
+A[24] += + A[22]*A[14];
+b[4] += + A[22]*b[2];
+
+det = + det*A[12];
+
+if(fabs(A[23]) > fabs(A[18])) {
+rk_dim5_swap = A[15];
+A[15] = A[20];
+A[20] = rk_dim5_swap;
+rk_dim5_swap = A[16];
+A[16] = A[21];
+A[21] = rk_dim5_swap;
+rk_dim5_swap = A[17];
+A[17] = A[22];
+A[22] = rk_dim5_swap;
+rk_dim5_swap = A[18];
+A[18] = A[23];
+A[23] = rk_dim5_swap;
+rk_dim5_swap = A[19];
+A[19] = A[24];
+A[24] = rk_dim5_swap;
+rk_dim5_swap = b[3];
+b[3] = b[4];
+b[4] = rk_dim5_swap;
+intSwap = rk_perm[3];
+rk_perm[3] = rk_perm[4];
+rk_perm[4] = intSwap;
+}
+
+A[23] = -A[23]/A[18];
+A[24] += + A[23]*A[19];
+b[4] += + A[23]*b[3];
+
+det = + det*A[18];
+
+det = + det*A[24];
+
+det = fabs(det);
+acado_solve_dim5_triangular( A, b );
+return det;
+}
+
+void acado_solve_dim5_system_reuse( real_t* const A, real_t* const b, int* const rk_perm )
+{
+
+rk_dim5_bPerm[0] = b[rk_perm[0]];
+rk_dim5_bPerm[1] = b[rk_perm[1]];
+rk_dim5_bPerm[2] = b[rk_perm[2]];
+rk_dim5_bPerm[3] = b[rk_perm[3]];
+rk_dim5_bPerm[4] = b[rk_perm[4]];
+rk_dim5_bPerm[1] += A[5]*rk_dim5_bPerm[0];
+
+rk_dim5_bPerm[2] += A[10]*rk_dim5_bPerm[0];
+rk_dim5_bPerm[2] += A[11]*rk_dim5_bPerm[1];
+
+rk_dim5_bPerm[3] += A[15]*rk_dim5_bPerm[0];
+rk_dim5_bPerm[3] += A[16]*rk_dim5_bPerm[1];
+rk_dim5_bPerm[3] += A[17]*rk_dim5_bPerm[2];
+
+rk_dim5_bPerm[4] += A[20]*rk_dim5_bPerm[0];
+rk_dim5_bPerm[4] += A[21]*rk_dim5_bPerm[1];
+rk_dim5_bPerm[4] += A[22]*rk_dim5_bPerm[2];
+rk_dim5_bPerm[4] += A[23]*rk_dim5_bPerm[3];
+
+
+acado_solve_dim5_triangular( A, rk_dim5_bPerm );
+b[0] = rk_dim5_bPerm[0];
+b[1] = rk_dim5_bPerm[1];
+b[2] = rk_dim5_bPerm[2];
+b[3] = rk_dim5_bPerm[3];
+b[4] = rk_dim5_bPerm[4];
+}
+
+
+
+/** Column vector of size: 1 */
+static const real_t acado_Ah_mat[ 1 ] = 
+{ 7.4999999999999997e-02 };
+
+
+/* Fixed step size:0.15 */
+int acado_integrate( real_t* const rk_eta, int resetIntegrator )
+{
+int error;
+
+int i;
+int j;
+int k;
+int run;
+int run1;
+int tmp_index1;
+int tmp_index2;
+
+real_t det;
+
+rk_ttt = 0.0000000000000000e+00;
+rk_xxx[5] = rk_eta[40];
+rk_xxx[6] = rk_eta[41];
+rk_xxx[7] = rk_eta[42];
+rk_xxx[8] = rk_eta[43];
+rk_xxx[9] = rk_eta[44];
+rk_xxx[10] = rk_eta[45];
+rk_xxx[11] = rk_eta[46];
+rk_xxx[12] = rk_eta[47];
+rk_xxx[13] = rk_eta[48];
+rk_xxx[14] = rk_eta[49];
+rk_xxx[15] = rk_eta[50];
+rk_xxx[16] = rk_eta[51];
+rk_xxx[17] = rk_eta[52];
+rk_xxx[18] = rk_eta[53];
+rk_xxx[19] = rk_eta[54];
+rk_xxx[20] = rk_eta[55];
+rk_xxx[21] = rk_eta[56];
+rk_xxx[22] = rk_eta[57];
+rk_xxx[23] = rk_eta[58];
+rk_xxx[24] = rk_eta[59];
+rk_xxx[25] = rk_eta[60];
+rk_xxx[26] = rk_eta[61];
+
+for (run = 0; run < 2; ++run)
+{
+if( run > 0 ) {
+for (i = 0; i < 5; ++i)
+{
+rk_diffsPrev2[i * 7] = rk_eta[i * 5 + 5];
+rk_diffsPrev2[i * 7 + 1] = rk_eta[i * 5 + 6];
+rk_diffsPrev2[i * 7 + 2] = rk_eta[i * 5 + 7];
+rk_diffsPrev2[i * 7 + 3] = rk_eta[i * 5 + 8];
+rk_diffsPrev2[i * 7 + 4] = rk_eta[i * 5 + 9];
+rk_diffsPrev2[i * 7 + 5] = rk_eta[i * 2 + 30];
+rk_diffsPrev2[i * 7 + 6] = rk_eta[i * 2 + 31];
+}
+}
+if( resetIntegrator ) {
+for (i = 0; i < 1; ++i)
+{
+for (run1 = 0; run1 < 1; ++run1)
+{
+for (j = 0; j < 5; ++j)
+{
+rk_xxx[j] = rk_eta[j];
+tmp_index1 = j;
+rk_xxx[j] += + acado_Ah_mat[run1]*rk_kkk[tmp_index1];
+}
+acado_diffs( rk_xxx, &(rk_diffsTemp2[ run1 * 35 ]) );
+for (j = 0; j < 5; ++j)
+{
+tmp_index1 = (run1 * 5) + (j);
+rk_A[tmp_index1 * 5] = + acado_Ah_mat[run1]*rk_diffsTemp2[(run1 * 35) + (j * 7)];
+rk_A[tmp_index1 * 5 + 1] = + acado_Ah_mat[run1]*rk_diffsTemp2[(run1 * 35) + (j * 7 + 1)];
+rk_A[tmp_index1 * 5 + 2] = + acado_Ah_mat[run1]*rk_diffsTemp2[(run1 * 35) + (j * 7 + 2)];
+rk_A[tmp_index1 * 5 + 3] = + acado_Ah_mat[run1]*rk_diffsTemp2[(run1 * 35) + (j * 7 + 3)];
+rk_A[tmp_index1 * 5 + 4] = + acado_Ah_mat[run1]*rk_diffsTemp2[(run1 * 35) + (j * 7 + 4)];
+if( 0 == run1 ) rk_A[(tmp_index1 * 5) + (j)] -= 1.0000000000000000e+00;
+}
+acado_rhs( rk_xxx, rk_rhsTemp );
+rk_b[run1 * 5] = rk_kkk[run1] - rk_rhsTemp[0];
+rk_b[run1 * 5 + 1] = rk_kkk[run1 + 1] - rk_rhsTemp[1];
+rk_b[run1 * 5 + 2] = rk_kkk[run1 + 2] - rk_rhsTemp[2];
+rk_b[run1 * 5 + 3] = rk_kkk[run1 + 3] - rk_rhsTemp[3];
+rk_b[run1 * 5 + 4] = rk_kkk[run1 + 4] - rk_rhsTemp[4];
+}
+det = acado_solve_dim5_system( rk_A, rk_b, rk_dim5_perm );
+for (j = 0; j < 1; ++j)
+{
+rk_kkk[j] += rk_b[j * 5];
+rk_kkk[j + 1] += rk_b[j * 5 + 1];
+rk_kkk[j + 2] += rk_b[j * 5 + 2];
+rk_kkk[j + 3] += rk_b[j * 5 + 3];
+rk_kkk[j + 4] += rk_b[j * 5 + 4];
+}
+}
+}
+for (i = 0; i < 2; ++i)
+{
+for (run1 = 0; run1 < 1; ++run1)
+{
+for (j = 0; j < 5; ++j)
+{
+rk_xxx[j] = rk_eta[j];
+tmp_index1 = j;
+rk_xxx[j] += + acado_Ah_mat[run1]*rk_kkk[tmp_index1];
+}
+acado_rhs( rk_xxx, rk_rhsTemp );
+rk_b[run1 * 5] = rk_kkk[run1] - rk_rhsTemp[0];
+rk_b[run1 * 5 + 1] = rk_kkk[run1 + 1] - rk_rhsTemp[1];
+rk_b[run1 * 5 + 2] = rk_kkk[run1 + 2] - rk_rhsTemp[2];
+rk_b[run1 * 5 + 3] = rk_kkk[run1 + 3] - rk_rhsTemp[3];
+rk_b[run1 * 5 + 4] = rk_kkk[run1 + 4] - rk_rhsTemp[4];
+}
+acado_solve_dim5_system_reuse( rk_A, rk_b, rk_dim5_perm );
+for (j = 0; j < 1; ++j)
+{
+rk_kkk[j] += rk_b[j * 5];
+rk_kkk[j + 1] += rk_b[j * 5 + 1];
+rk_kkk[j + 2] += rk_b[j * 5 + 2];
+rk_kkk[j + 3] += rk_b[j * 5 + 3];
+rk_kkk[j + 4] += rk_b[j * 5 + 4];
+}
+}
+for (run1 = 0; run1 < 1; ++run1)
+{
+for (j = 0; j < 5; ++j)
+{
+rk_xxx[j] = rk_eta[j];
+tmp_index1 = j;
+rk_xxx[j] += + acado_Ah_mat[run1]*rk_kkk[tmp_index1];
+}
+acado_diffs( rk_xxx, &(rk_diffsTemp2[ run1 * 35 ]) );
+for (j = 0; j < 5; ++j)
+{
+tmp_index1 = (run1 * 5) + (j);
+rk_A[tmp_index1 * 5] = + acado_Ah_mat[run1]*rk_diffsTemp2[(run1 * 35) + (j * 7)];
+rk_A[tmp_index1 * 5 + 1] = + acado_Ah_mat[run1]*rk_diffsTemp2[(run1 * 35) + (j * 7 + 1)];
+rk_A[tmp_index1 * 5 + 2] = + acado_Ah_mat[run1]*rk_diffsTemp2[(run1 * 35) + (j * 7 + 2)];
+rk_A[tmp_index1 * 5 + 3] = + acado_Ah_mat[run1]*rk_diffsTemp2[(run1 * 35) + (j * 7 + 3)];
+rk_A[tmp_index1 * 5 + 4] = + acado_Ah_mat[run1]*rk_diffsTemp2[(run1 * 35) + (j * 7 + 4)];
+if( 0 == run1 ) rk_A[(tmp_index1 * 5) + (j)] -= 1.0000000000000000e+00;
+}
+}
+for (run1 = 0; run1 < 5; ++run1)
+{
+for (i = 0; i < 1; ++i)
+{
+rk_b[i * 5] = - rk_diffsTemp2[(i * 35) + (run1)];
+rk_b[i * 5 + 1] = - rk_diffsTemp2[(i * 35) + (run1 + 7)];
+rk_b[i * 5 + 2] = - rk_diffsTemp2[(i * 35) + (run1 + 14)];
+rk_b[i * 5 + 3] = - rk_diffsTemp2[(i * 35) + (run1 + 21)];
+rk_b[i * 5 + 4] = - rk_diffsTemp2[(i * 35) + (run1 + 28)];
+}
+if( 0 == run1 ) {
+det = acado_solve_dim5_system( rk_A, rk_b, rk_dim5_perm );
+}
+ else {
+acado_solve_dim5_system_reuse( rk_A, rk_b, rk_dim5_perm );
+}
+for (i = 0; i < 1; ++i)
+{
+rk_diffK[i] = rk_b[i * 5];
+rk_diffK[i + 1] = rk_b[i * 5 + 1];
+rk_diffK[i + 2] = rk_b[i * 5 + 2];
+rk_diffK[i + 3] = rk_b[i * 5 + 3];
+rk_diffK[i + 4] = rk_b[i * 5 + 4];
+}
+for (i = 0; i < 5; ++i)
+{
+rk_diffsNew2[(i * 7) + (run1)] = (i == run1-0);
+rk_diffsNew2[(i * 7) + (run1)] += + rk_diffK[i]*(real_t)1.4999999999999999e-01;
+}
+}
+for (run1 = 0; run1 < 2; ++run1)
+{
+for (i = 0; i < 1; ++i)
+{
+for (j = 0; j < 5; ++j)
+{
+tmp_index1 = (i * 5) + (j);
+tmp_index2 = (run1) + (j * 7);
+rk_b[tmp_index1] = - rk_diffsTemp2[(i * 35) + (tmp_index2 + 5)];
+}
+}
+acado_solve_dim5_system_reuse( rk_A, rk_b, rk_dim5_perm );
+for (i = 0; i < 1; ++i)
+{
+rk_diffK[i] = rk_b[i * 5];
+rk_diffK[i + 1] = rk_b[i * 5 + 1];
+rk_diffK[i + 2] = rk_b[i * 5 + 2];
+rk_diffK[i + 3] = rk_b[i * 5 + 3];
+rk_diffK[i + 4] = rk_b[i * 5 + 4];
+}
+for (i = 0; i < 5; ++i)
+{
+rk_diffsNew2[(i * 7) + (run1 + 5)] = + rk_diffK[i]*(real_t)1.4999999999999999e-01;
+}
+}
+rk_eta[0] += + rk_kkk[0]*(real_t)1.4999999999999999e-01;
+rk_eta[1] += + rk_kkk[1]*(real_t)1.4999999999999999e-01;
+rk_eta[2] += + rk_kkk[2]*(real_t)1.4999999999999999e-01;
+rk_eta[3] += + rk_kkk[3]*(real_t)1.4999999999999999e-01;
+rk_eta[4] += + rk_kkk[4]*(real_t)1.4999999999999999e-01;
+if( run == 0 ) {
+for (i = 0; i < 5; ++i)
+{
+for (j = 0; j < 5; ++j)
+{
+tmp_index2 = (j) + (i * 5);
+rk_eta[tmp_index2 + 5] = rk_diffsNew2[(i * 7) + (j)];
+}
+for (j = 0; j < 2; ++j)
+{
+tmp_index2 = (j) + (i * 2);
+rk_eta[tmp_index2 + 30] = rk_diffsNew2[(i * 7) + (j + 5)];
+}
+}
+}
+else {
+for (i = 0; i < 5; ++i)
+{
+for (j = 0; j < 5; ++j)
+{
+tmp_index2 = (j) + (i * 5);
+rk_eta[tmp_index2 + 5] = + rk_diffsNew2[i * 7]*rk_diffsPrev2[j];
+rk_eta[tmp_index2 + 5] += + rk_diffsNew2[i * 7 + 1]*rk_diffsPrev2[j + 7];
+rk_eta[tmp_index2 + 5] += + rk_diffsNew2[i * 7 + 2]*rk_diffsPrev2[j + 14];
+rk_eta[tmp_index2 + 5] += + rk_diffsNew2[i * 7 + 3]*rk_diffsPrev2[j + 21];
+rk_eta[tmp_index2 + 5] += + rk_diffsNew2[i * 7 + 4]*rk_diffsPrev2[j + 28];
+}
+for (j = 0; j < 2; ++j)
+{
+tmp_index2 = (j) + (i * 2);
+rk_eta[tmp_index2 + 30] = rk_diffsNew2[(i * 7) + (j + 5)];
+rk_eta[tmp_index2 + 30] += + rk_diffsNew2[i * 7]*rk_diffsPrev2[j + 5];
+rk_eta[tmp_index2 + 30] += + rk_diffsNew2[i * 7 + 1]*rk_diffsPrev2[j + 12];
+rk_eta[tmp_index2 + 30] += + rk_diffsNew2[i * 7 + 2]*rk_diffsPrev2[j + 19];
+rk_eta[tmp_index2 + 30] += + rk_diffsNew2[i * 7 + 3]*rk_diffsPrev2[j + 26];
+rk_eta[tmp_index2 + 30] += + rk_diffsNew2[i * 7 + 4]*rk_diffsPrev2[j + 33];
+}
+}
+}
+resetIntegrator = 0;
+rk_ttt += 5.0000000000000000e-01;
+}
+for (i = 0; i < 5; ++i)
+{
+}
+if( det < 1e-12 ) {
+error = 2;
+} else if( det < 1e-6 ) {
+error = 1;
+} else {
+error = 0;
+}
+return error;
+}
+
+
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/acado_qpoases_interface.cpp b/mav_control_rw/mav_nonlinear_mpc/solver/acado_qpoases_interface.cpp
new file mode 100644
index 0000000..dbd0cf9
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/acado_qpoases_interface.cpp
@@ -0,0 +1,70 @@
+/*
+ *    This file was auto-generated using the ACADO Toolkit.
+ *    
+ *    While ACADO Toolkit is free software released under the terms of
+ *    the GNU Lesser General Public License (LGPL), the generated code
+ *    as such remains the property of the user who used ACADO Toolkit
+ *    to generate this code. In particular, user dependent data of the code
+ *    do not inherit the GNU LGPL license. On the other hand, parts of the
+ *    generated code that are a direct copy of source code from the
+ *    ACADO Toolkit or the software tools it is based on, remain, as derived
+ *    work, automatically covered by the LGPL license.
+ *    
+ *    ACADO Toolkit 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.
+ *    
+ */
+
+
+extern "C"
+{
+#include "acado_common.h"
+}
+
+#include "INCLUDE/QProblem.hpp"
+
+#if ACADO_COMPUTE_COVARIANCE_MATRIX == 1
+#include "INCLUDE/EXTRAS/SolutionAnalysis.hpp"
+#endif /* ACADO_COMPUTE_COVARIANCE_MATRIX */
+
+static int acado_nWSR;
+
+
+
+#if ACADO_COMPUTE_COVARIANCE_MATRIX == 1
+static SolutionAnalysis acado_sa;
+#endif /* ACADO_COMPUTE_COVARIANCE_MATRIX */
+
+int acado_solve( void )
+{
+	acado_nWSR = QPOASES_NWSRMAX;
+
+	QProblem qp(40, 240);
+	
+	returnValue retVal = qp.init(acadoWorkspace.H, acadoWorkspace.g, acadoWorkspace.A, acadoWorkspace.lb, acadoWorkspace.ub, acadoWorkspace.lbA, acadoWorkspace.ubA, acado_nWSR);
+
+    qp.getPrimalSolution( acadoWorkspace.x );
+    qp.getDualSolution( acadoWorkspace.y );
+	
+#if ACADO_COMPUTE_COVARIANCE_MATRIX == 1
+
+	if (retVal != SUCCESSFUL_RETURN)
+		return (int)retVal;
+		
+	retVal = acado_sa.getHessianInverse( &qp, );
+
+#endif /* ACADO_COMPUTE_COVARIANCE_MATRIX */
+
+	return (int)retVal;
+}
+
+int acado_getNWSR( void )
+{
+	return acado_nWSR;
+}
+
+const char* acado_getErrorString( int error )
+{
+	return MessageHandling::getErrorString( error );
+}
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/acado_qpoases_interface.hpp b/mav_control_rw/mav_nonlinear_mpc/solver/acado_qpoases_interface.hpp
new file mode 100644
index 0000000..8463a4b
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/acado_qpoases_interface.hpp
@@ -0,0 +1,65 @@
+/*
+ *    This file was auto-generated using the ACADO Toolkit.
+ *    
+ *    While ACADO Toolkit is free software released under the terms of
+ *    the GNU Lesser General Public License (LGPL), the generated code
+ *    as such remains the property of the user who used ACADO Toolkit
+ *    to generate this code. In particular, user dependent data of the code
+ *    do not inherit the GNU LGPL license. On the other hand, parts of the
+ *    generated code that are a direct copy of source code from the
+ *    ACADO Toolkit or the software tools it is based on, remain, as derived
+ *    work, automatically covered by the LGPL license.
+ *    
+ *    ACADO Toolkit 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.
+ *    
+ */
+
+
+#ifndef QPOASES_HEADER
+#define QPOASES_HEADER
+
+#ifdef PC_DEBUG
+#include <stdio.h>
+#endif /* PC_DEBUG */
+
+#include <math.h>
+
+#ifdef __cplusplus
+#define EXTERNC extern "C"
+#else
+#define EXTERNC
+#endif
+
+/*
+ * A set of options for qpOASES
+ */
+
+/** Maximum number of optimization variables. */
+#define QPOASES_NVMAX      40
+/** Maximum number of constraints. */
+#define QPOASES_NCMAX      240
+/** Maximum number of working set recalculations. */
+#define QPOASES_NWSRMAX    840
+/** Print level for qpOASES. */
+#define QPOASES_PRINTLEVEL PL_NONE
+/** The value of EPS */
+#define QPOASES_EPS        2.221e-16
+/** Internally used floating point type */
+typedef double real_t;
+
+/*
+ * Forward function declarations
+ */
+
+/** A function that calls the QP solver */
+EXTERNC int acado_solve( void );
+
+/** Get the number of active set changes */
+EXTERNC int acado_getNWSR( void );
+
+/** Get the error string. */
+const char* acado_getErrorString( int error );
+
+#endif /* QPOASES_HEADER */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/acado_solver.c b/mav_control_rw/mav_nonlinear_mpc/solver/acado_solver.c
new file mode 100644
index 0000000..b0b7b0e
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/acado_solver.c
@@ -0,0 +1,4027 @@
+/*
+ *    This file was auto-generated using the ACADO Toolkit.
+ *    
+ *    While ACADO Toolkit is free software released under the terms of
+ *    the GNU Lesser General Public License (LGPL), the generated code
+ *    as such remains the property of the user who used ACADO Toolkit
+ *    to generate this code. In particular, user dependent data of the code
+ *    do not inherit the GNU LGPL license. On the other hand, parts of the
+ *    generated code that are a direct copy of source code from the
+ *    ACADO Toolkit or the software tools it is based on, remain, as derived
+ *    work, automatically covered by the LGPL license.
+ *    
+ *    ACADO Toolkit 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.
+ *    
+ */
+
+
+#include "acado_common.h"
+
+
+
+
+/******************************************************************************/
+/*                                                                            */
+/* ACADO code generation                                                      */
+/*                                                                            */
+/******************************************************************************/
+
+
+/** Row vector of size: 62 */
+real_t state[ 62 ];
+
+int acado_modelSimulation(  )
+{
+int ret;
+
+int lRun1;
+ret = 0;
+#pragma omp parallel for private(lRun1, state) shared(acadoWorkspace, acadoVariables)
+for (lRun1 = 0; lRun1 < 20; ++lRun1)
+{
+state[0] = acadoVariables.x[lRun1 * 5];
+state[1] = acadoVariables.x[lRun1 * 5 + 1];
+state[2] = acadoVariables.x[lRun1 * 5 + 2];
+state[3] = acadoVariables.x[lRun1 * 5 + 3];
+state[4] = acadoVariables.x[lRun1 * 5 + 4];
+
+state[40] = acadoVariables.u[lRun1 * 2];
+state[41] = acadoVariables.u[lRun1 * 2 + 1];
+state[42] = acadoVariables.od[lRun1 * 20];
+state[43] = acadoVariables.od[lRun1 * 20 + 1];
+state[44] = acadoVariables.od[lRun1 * 20 + 2];
+state[45] = acadoVariables.od[lRun1 * 20 + 3];
+state[46] = acadoVariables.od[lRun1 * 20 + 4];
+state[47] = acadoVariables.od[lRun1 * 20 + 5];
+state[48] = acadoVariables.od[lRun1 * 20 + 6];
+state[49] = acadoVariables.od[lRun1 * 20 + 7];
+state[50] = acadoVariables.od[lRun1 * 20 + 8];
+state[51] = acadoVariables.od[lRun1 * 20 + 9];
+state[52] = acadoVariables.od[lRun1 * 20 + 10];
+state[53] = acadoVariables.od[lRun1 * 20 + 11];
+state[54] = acadoVariables.od[lRun1 * 20 + 12];
+state[55] = acadoVariables.od[lRun1 * 20 + 13];
+state[56] = acadoVariables.od[lRun1 * 20 + 14];
+state[57] = acadoVariables.od[lRun1 * 20 + 15];
+state[58] = acadoVariables.od[lRun1 * 20 + 16];
+state[59] = acadoVariables.od[lRun1 * 20 + 17];
+state[60] = acadoVariables.od[lRun1 * 20 + 18];
+state[61] = acadoVariables.od[lRun1 * 20 + 19];
+
+ret = acado_integrate(state, 1);
+
+acadoWorkspace.d[lRun1 * 5] = state[0] - acadoVariables.x[lRun1 * 5 + 5];
+acadoWorkspace.d[lRun1 * 5 + 1] = state[1] - acadoVariables.x[lRun1 * 5 + 6];
+acadoWorkspace.d[lRun1 * 5 + 2] = state[2] - acadoVariables.x[lRun1 * 5 + 7];
+acadoWorkspace.d[lRun1 * 5 + 3] = state[3] - acadoVariables.x[lRun1 * 5 + 8];
+acadoWorkspace.d[lRun1 * 5 + 4] = state[4] - acadoVariables.x[lRun1 * 5 + 9];
+
+acadoWorkspace.evGx[lRun1 * 25] = state[5];
+acadoWorkspace.evGx[lRun1 * 25 + 1] = state[6];
+acadoWorkspace.evGx[lRun1 * 25 + 2] = state[7];
+acadoWorkspace.evGx[lRun1 * 25 + 3] = state[8];
+acadoWorkspace.evGx[lRun1 * 25 + 4] = state[9];
+acadoWorkspace.evGx[lRun1 * 25 + 5] = state[10];
+acadoWorkspace.evGx[lRun1 * 25 + 6] = state[11];
+acadoWorkspace.evGx[lRun1 * 25 + 7] = state[12];
+acadoWorkspace.evGx[lRun1 * 25 + 8] = state[13];
+acadoWorkspace.evGx[lRun1 * 25 + 9] = state[14];
+acadoWorkspace.evGx[lRun1 * 25 + 10] = state[15];
+acadoWorkspace.evGx[lRun1 * 25 + 11] = state[16];
+acadoWorkspace.evGx[lRun1 * 25 + 12] = state[17];
+acadoWorkspace.evGx[lRun1 * 25 + 13] = state[18];
+acadoWorkspace.evGx[lRun1 * 25 + 14] = state[19];
+acadoWorkspace.evGx[lRun1 * 25 + 15] = state[20];
+acadoWorkspace.evGx[lRun1 * 25 + 16] = state[21];
+acadoWorkspace.evGx[lRun1 * 25 + 17] = state[22];
+acadoWorkspace.evGx[lRun1 * 25 + 18] = state[23];
+acadoWorkspace.evGx[lRun1 * 25 + 19] = state[24];
+acadoWorkspace.evGx[lRun1 * 25 + 20] = state[25];
+acadoWorkspace.evGx[lRun1 * 25 + 21] = state[26];
+acadoWorkspace.evGx[lRun1 * 25 + 22] = state[27];
+acadoWorkspace.evGx[lRun1 * 25 + 23] = state[28];
+acadoWorkspace.evGx[lRun1 * 25 + 24] = state[29];
+
+acadoWorkspace.evGu[lRun1 * 10] = state[30];
+acadoWorkspace.evGu[lRun1 * 10 + 1] = state[31];
+acadoWorkspace.evGu[lRun1 * 10 + 2] = state[32];
+acadoWorkspace.evGu[lRun1 * 10 + 3] = state[33];
+acadoWorkspace.evGu[lRun1 * 10 + 4] = state[34];
+acadoWorkspace.evGu[lRun1 * 10 + 5] = state[35];
+acadoWorkspace.evGu[lRun1 * 10 + 6] = state[36];
+acadoWorkspace.evGu[lRun1 * 10 + 7] = state[37];
+acadoWorkspace.evGu[lRun1 * 10 + 8] = state[38];
+acadoWorkspace.evGu[lRun1 * 10 + 9] = state[39];
+}
+return ret;
+}
+
+void acado_evaluateLSQ(const real_t* in, real_t* out)
+{
+const real_t* xd = in;
+const real_t* u = in + 5;
+const real_t* od = in + 7;
+/* Vector of auxiliary variables; number of elements: 98. */
+real_t* a = acadoWorkspace.objAuxVar;
+
+/* Compute intermediate quantities: */
+a[0] = (sqrt((((xd[0]-od[0])*(xd[0]-od[0]))+((xd[1]-od[10])*(xd[1]-od[10])))));
+a[1] = (exp(((real_t)(2.0000000000000000e+00)-a[0])));
+a[2] = (sqrt((((xd[0]-od[1])*(xd[0]-od[1]))+((xd[1]-od[11])*(xd[1]-od[11])))));
+a[3] = (exp(((real_t)(2.0000000000000000e+00)-a[2])));
+a[4] = (sqrt((((xd[0]-od[2])*(xd[0]-od[2]))+((xd[1]-od[12])*(xd[1]-od[12])))));
+a[5] = (exp(((real_t)(2.0000000000000000e+00)-a[4])));
+a[6] = (sqrt((((xd[0]-od[3])*(xd[0]-od[3]))+((xd[1]-od[13])*(xd[1]-od[13])))));
+a[7] = (exp(((real_t)(2.0000000000000000e+00)-a[6])));
+a[8] = (sqrt((((xd[0]-od[4])*(xd[0]-od[4]))+((xd[1]-od[14])*(xd[1]-od[14])))));
+a[9] = (exp(((real_t)(2.0000000000000000e+00)-a[8])));
+a[10] = (sqrt((((xd[0]-od[5])*(xd[0]-od[5]))+((xd[1]-od[15])*(xd[1]-od[15])))));
+a[11] = (exp(((real_t)(2.0000000000000000e+00)-a[10])));
+a[12] = (sqrt((((xd[0]-od[6])*(xd[0]-od[6]))+((xd[1]-od[16])*(xd[1]-od[16])))));
+a[13] = (exp(((real_t)(2.0000000000000000e+00)-a[12])));
+a[14] = (sqrt((((xd[0]-od[7])*(xd[0]-od[7]))+((xd[1]-od[17])*(xd[1]-od[17])))));
+a[15] = (exp(((real_t)(2.0000000000000000e+00)-a[14])));
+a[16] = (sqrt((((xd[0]-od[8])*(xd[0]-od[8]))+((xd[1]-od[18])*(xd[1]-od[18])))));
+a[17] = (exp(((real_t)(2.0000000000000000e+00)-a[16])));
+a[18] = (sqrt((((xd[0]-od[9])*(xd[0]-od[9]))+((xd[1]-od[19])*(xd[1]-od[19])))));
+a[19] = (exp(((real_t)(2.0000000000000000e+00)-a[18])));
+a[20] = (((((((((a[1]+a[3])+a[5])+a[7])+a[9])+a[11])+a[13])+a[15])+a[17])+a[19]);
+a[21] = (1.0/sqrt((((xd[0]-od[0])*(xd[0]-od[0]))+((xd[1]-od[10])*(xd[1]-od[10])))));
+a[22] = (a[21]*(real_t)(5.0000000000000000e-01));
+a[23] = (((xd[0]-od[0])+(xd[0]-od[0]))*a[22]);
+a[24] = (exp(((real_t)(2.0000000000000000e+00)-a[0])));
+a[25] = (((real_t)(0.0000000000000000e+00)-a[23])*a[24]);
+a[26] = (1.0/sqrt((((xd[0]-od[1])*(xd[0]-od[1]))+((xd[1]-od[11])*(xd[1]-od[11])))));
+a[27] = (a[26]*(real_t)(5.0000000000000000e-01));
+a[28] = (((xd[0]-od[1])+(xd[0]-od[1]))*a[27]);
+a[29] = (exp(((real_t)(2.0000000000000000e+00)-a[2])));
+a[30] = (((real_t)(0.0000000000000000e+00)-a[28])*a[29]);
+a[31] = (1.0/sqrt((((xd[0]-od[2])*(xd[0]-od[2]))+((xd[1]-od[12])*(xd[1]-od[12])))));
+a[32] = (a[31]*(real_t)(5.0000000000000000e-01));
+a[33] = (((xd[0]-od[2])+(xd[0]-od[2]))*a[32]);
+a[34] = (exp(((real_t)(2.0000000000000000e+00)-a[4])));
+a[35] = (((real_t)(0.0000000000000000e+00)-a[33])*a[34]);
+a[36] = (1.0/sqrt((((xd[0]-od[3])*(xd[0]-od[3]))+((xd[1]-od[13])*(xd[1]-od[13])))));
+a[37] = (a[36]*(real_t)(5.0000000000000000e-01));
+a[38] = (((xd[0]-od[3])+(xd[0]-od[3]))*a[37]);
+a[39] = (exp(((real_t)(2.0000000000000000e+00)-a[6])));
+a[40] = (((real_t)(0.0000000000000000e+00)-a[38])*a[39]);
+a[41] = (1.0/sqrt((((xd[0]-od[4])*(xd[0]-od[4]))+((xd[1]-od[14])*(xd[1]-od[14])))));
+a[42] = (a[41]*(real_t)(5.0000000000000000e-01));
+a[43] = (((xd[0]-od[4])+(xd[0]-od[4]))*a[42]);
+a[44] = (exp(((real_t)(2.0000000000000000e+00)-a[8])));
+a[45] = (((real_t)(0.0000000000000000e+00)-a[43])*a[44]);
+a[46] = (1.0/sqrt((((xd[0]-od[5])*(xd[0]-od[5]))+((xd[1]-od[15])*(xd[1]-od[15])))));
+a[47] = (a[46]*(real_t)(5.0000000000000000e-01));
+a[48] = (((xd[0]-od[5])+(xd[0]-od[5]))*a[47]);
+a[49] = (exp(((real_t)(2.0000000000000000e+00)-a[10])));
+a[50] = (((real_t)(0.0000000000000000e+00)-a[48])*a[49]);
+a[51] = (1.0/sqrt((((xd[0]-od[6])*(xd[0]-od[6]))+((xd[1]-od[16])*(xd[1]-od[16])))));
+a[52] = (a[51]*(real_t)(5.0000000000000000e-01));
+a[53] = (((xd[0]-od[6])+(xd[0]-od[6]))*a[52]);
+a[54] = (exp(((real_t)(2.0000000000000000e+00)-a[12])));
+a[55] = (((real_t)(0.0000000000000000e+00)-a[53])*a[54]);
+a[56] = (1.0/sqrt((((xd[0]-od[7])*(xd[0]-od[7]))+((xd[1]-od[17])*(xd[1]-od[17])))));
+a[57] = (a[56]*(real_t)(5.0000000000000000e-01));
+a[58] = (((xd[0]-od[7])+(xd[0]-od[7]))*a[57]);
+a[59] = (exp(((real_t)(2.0000000000000000e+00)-a[14])));
+a[60] = (((real_t)(0.0000000000000000e+00)-a[58])*a[59]);
+a[61] = (1.0/sqrt((((xd[0]-od[8])*(xd[0]-od[8]))+((xd[1]-od[18])*(xd[1]-od[18])))));
+a[62] = (a[61]*(real_t)(5.0000000000000000e-01));
+a[63] = (((xd[0]-od[8])+(xd[0]-od[8]))*a[62]);
+a[64] = (exp(((real_t)(2.0000000000000000e+00)-a[16])));
+a[65] = (((real_t)(0.0000000000000000e+00)-a[63])*a[64]);
+a[66] = (1.0/sqrt((((xd[0]-od[9])*(xd[0]-od[9]))+((xd[1]-od[19])*(xd[1]-od[19])))));
+a[67] = (a[66]*(real_t)(5.0000000000000000e-01));
+a[68] = (((xd[0]-od[9])+(xd[0]-od[9]))*a[67]);
+a[69] = (exp(((real_t)(2.0000000000000000e+00)-a[18])));
+a[70] = (((real_t)(0.0000000000000000e+00)-a[68])*a[69]);
+a[71] = (((((((((a[25]+a[30])+a[35])+a[40])+a[45])+a[50])+a[55])+a[60])+a[65])+a[70]);
+a[72] = (((xd[1]-od[10])+(xd[1]-od[10]))*a[22]);
+a[73] = (((real_t)(0.0000000000000000e+00)-a[72])*a[24]);
+a[74] = (((xd[1]-od[11])+(xd[1]-od[11]))*a[27]);
+a[75] = (((real_t)(0.0000000000000000e+00)-a[74])*a[29]);
+a[76] = (((xd[1]-od[12])+(xd[1]-od[12]))*a[32]);
+a[77] = (((real_t)(0.0000000000000000e+00)-a[76])*a[34]);
+a[78] = (((xd[1]-od[13])+(xd[1]-od[13]))*a[37]);
+a[79] = (((real_t)(0.0000000000000000e+00)-a[78])*a[39]);
+a[80] = (((xd[1]-od[14])+(xd[1]-od[14]))*a[42]);
+a[81] = (((real_t)(0.0000000000000000e+00)-a[80])*a[44]);
+a[82] = (((xd[1]-od[15])+(xd[1]-od[15]))*a[47]);
+a[83] = (((real_t)(0.0000000000000000e+00)-a[82])*a[49]);
+a[84] = (((xd[1]-od[16])+(xd[1]-od[16]))*a[52]);
+a[85] = (((real_t)(0.0000000000000000e+00)-a[84])*a[54]);
+a[86] = (((xd[1]-od[17])+(xd[1]-od[17]))*a[57]);
+a[87] = (((real_t)(0.0000000000000000e+00)-a[86])*a[59]);
+a[88] = (((xd[1]-od[18])+(xd[1]-od[18]))*a[62]);
+a[89] = (((real_t)(0.0000000000000000e+00)-a[88])*a[64]);
+a[90] = (((xd[1]-od[19])+(xd[1]-od[19]))*a[67]);
+a[91] = (((real_t)(0.0000000000000000e+00)-a[90])*a[69]);
+a[92] = (((((((((a[73]+a[75])+a[77])+a[79])+a[81])+a[83])+a[85])+a[87])+a[89])+a[91]);
+a[93] = (real_t)(0.0000000000000000e+00);
+a[94] = (real_t)(0.0000000000000000e+00);
+a[95] = (real_t)(0.0000000000000000e+00);
+a[96] = (real_t)(0.0000000000000000e+00);
+a[97] = (real_t)(0.0000000000000000e+00);
+
+/* Compute outputs: */
+out[0] = xd[0];
+out[1] = xd[1];
+out[2] = xd[2];
+out[3] = xd[3];
+out[4] = xd[4];
+out[5] = u[0];
+out[6] = u[1];
+out[7] = a[20];
+out[8] = (real_t)(1.0000000000000000e+00);
+out[9] = (real_t)(0.0000000000000000e+00);
+out[10] = (real_t)(0.0000000000000000e+00);
+out[11] = (real_t)(0.0000000000000000e+00);
+out[12] = (real_t)(0.0000000000000000e+00);
+out[13] = (real_t)(0.0000000000000000e+00);
+out[14] = (real_t)(1.0000000000000000e+00);
+out[15] = (real_t)(0.0000000000000000e+00);
+out[16] = (real_t)(0.0000000000000000e+00);
+out[17] = (real_t)(0.0000000000000000e+00);
+out[18] = (real_t)(0.0000000000000000e+00);
+out[19] = (real_t)(0.0000000000000000e+00);
+out[20] = (real_t)(1.0000000000000000e+00);
+out[21] = (real_t)(0.0000000000000000e+00);
+out[22] = (real_t)(0.0000000000000000e+00);
+out[23] = (real_t)(0.0000000000000000e+00);
+out[24] = (real_t)(0.0000000000000000e+00);
+out[25] = (real_t)(0.0000000000000000e+00);
+out[26] = (real_t)(1.0000000000000000e+00);
+out[27] = (real_t)(0.0000000000000000e+00);
+out[28] = (real_t)(0.0000000000000000e+00);
+out[29] = (real_t)(0.0000000000000000e+00);
+out[30] = (real_t)(0.0000000000000000e+00);
+out[31] = (real_t)(0.0000000000000000e+00);
+out[32] = (real_t)(1.0000000000000000e+00);
+out[33] = (real_t)(0.0000000000000000e+00);
+out[34] = (real_t)(0.0000000000000000e+00);
+out[35] = (real_t)(0.0000000000000000e+00);
+out[36] = (real_t)(0.0000000000000000e+00);
+out[37] = (real_t)(0.0000000000000000e+00);
+out[38] = (real_t)(0.0000000000000000e+00);
+out[39] = (real_t)(0.0000000000000000e+00);
+out[40] = (real_t)(0.0000000000000000e+00);
+out[41] = (real_t)(0.0000000000000000e+00);
+out[42] = (real_t)(0.0000000000000000e+00);
+out[43] = a[71];
+out[44] = a[92];
+out[45] = a[93];
+out[46] = a[94];
+out[47] = a[95];
+out[48] = (real_t)(0.0000000000000000e+00);
+out[49] = (real_t)(0.0000000000000000e+00);
+out[50] = (real_t)(0.0000000000000000e+00);
+out[51] = (real_t)(0.0000000000000000e+00);
+out[52] = (real_t)(0.0000000000000000e+00);
+out[53] = (real_t)(0.0000000000000000e+00);
+out[54] = (real_t)(0.0000000000000000e+00);
+out[55] = (real_t)(0.0000000000000000e+00);
+out[56] = (real_t)(0.0000000000000000e+00);
+out[57] = (real_t)(0.0000000000000000e+00);
+out[58] = (real_t)(1.0000000000000000e+00);
+out[59] = (real_t)(0.0000000000000000e+00);
+out[60] = (real_t)(0.0000000000000000e+00);
+out[61] = (real_t)(1.0000000000000000e+00);
+out[62] = a[96];
+out[63] = a[97];
+}
+
+void acado_evaluateLSQEndTerm(const real_t* in, real_t* out)
+{
+const real_t* xd = in;
+
+/* Compute outputs: */
+out[0] = xd[0];
+out[1] = xd[1];
+out[2] = xd[2];
+out[3] = xd[3];
+out[4] = xd[4];
+}
+
+void acado_evaluatePathConstraints(const real_t* in, real_t* out)
+{
+const real_t* xd = in;
+const real_t* od = in + 7;
+/* Vector of auxiliary variables; number of elements: 160. */
+real_t* a = acadoWorkspace.conAuxVar;
+
+/* Compute intermediate quantities: */
+a[0] = (sqrt((((xd[0]-od[0])*(xd[0]-od[0]))+((xd[1]-od[10])*(xd[1]-od[10])))));
+a[1] = (sqrt((((xd[0]-od[1])*(xd[0]-od[1]))+((xd[1]-od[11])*(xd[1]-od[11])))));
+a[2] = (sqrt((((xd[0]-od[2])*(xd[0]-od[2]))+((xd[1]-od[12])*(xd[1]-od[12])))));
+a[3] = (sqrt((((xd[0]-od[3])*(xd[0]-od[3]))+((xd[1]-od[13])*(xd[1]-od[13])))));
+a[4] = (sqrt((((xd[0]-od[4])*(xd[0]-od[4]))+((xd[1]-od[14])*(xd[1]-od[14])))));
+a[5] = (sqrt((((xd[0]-od[5])*(xd[0]-od[5]))+((xd[1]-od[15])*(xd[1]-od[15])))));
+a[6] = (sqrt((((xd[0]-od[6])*(xd[0]-od[6]))+((xd[1]-od[16])*(xd[1]-od[16])))));
+a[7] = (sqrt((((xd[0]-od[7])*(xd[0]-od[7]))+((xd[1]-od[17])*(xd[1]-od[17])))));
+a[8] = (sqrt((((xd[0]-od[8])*(xd[0]-od[8]))+((xd[1]-od[18])*(xd[1]-od[18])))));
+a[9] = (sqrt((((xd[0]-od[9])*(xd[0]-od[9]))+((xd[1]-od[19])*(xd[1]-od[19])))));
+a[10] = (xd[0]-od[0]);
+a[11] = (xd[0]-od[0]);
+a[12] = (a[10]+a[11]);
+a[13] = (1.0/sqrt((((xd[0]-od[0])*(xd[0]-od[0]))+((xd[1]-od[10])*(xd[1]-od[10])))));
+a[14] = (a[13]*(real_t)(5.0000000000000000e-01));
+a[15] = (a[12]*a[14]);
+a[16] = (xd[1]-od[10]);
+a[17] = (xd[1]-od[10]);
+a[18] = (a[16]+a[17]);
+a[19] = (a[18]*a[14]);
+a[20] = (real_t)(0.0000000000000000e+00);
+a[21] = (real_t)(0.0000000000000000e+00);
+a[22] = (real_t)(0.0000000000000000e+00);
+a[23] = (xd[0]-od[1]);
+a[24] = (xd[0]-od[1]);
+a[25] = (a[23]+a[24]);
+a[26] = (1.0/sqrt((((xd[0]-od[1])*(xd[0]-od[1]))+((xd[1]-od[11])*(xd[1]-od[11])))));
+a[27] = (a[26]*(real_t)(5.0000000000000000e-01));
+a[28] = (a[25]*a[27]);
+a[29] = (xd[1]-od[11]);
+a[30] = (xd[1]-od[11]);
+a[31] = (a[29]+a[30]);
+a[32] = (a[31]*a[27]);
+a[33] = (real_t)(0.0000000000000000e+00);
+a[34] = (real_t)(0.0000000000000000e+00);
+a[35] = (real_t)(0.0000000000000000e+00);
+a[36] = (xd[0]-od[2]);
+a[37] = (xd[0]-od[2]);
+a[38] = (a[36]+a[37]);
+a[39] = (1.0/sqrt((((xd[0]-od[2])*(xd[0]-od[2]))+((xd[1]-od[12])*(xd[1]-od[12])))));
+a[40] = (a[39]*(real_t)(5.0000000000000000e-01));
+a[41] = (a[38]*a[40]);
+a[42] = (xd[1]-od[12]);
+a[43] = (xd[1]-od[12]);
+a[44] = (a[42]+a[43]);
+a[45] = (a[44]*a[40]);
+a[46] = (real_t)(0.0000000000000000e+00);
+a[47] = (real_t)(0.0000000000000000e+00);
+a[48] = (real_t)(0.0000000000000000e+00);
+a[49] = (xd[0]-od[3]);
+a[50] = (xd[0]-od[3]);
+a[51] = (a[49]+a[50]);
+a[52] = (1.0/sqrt((((xd[0]-od[3])*(xd[0]-od[3]))+((xd[1]-od[13])*(xd[1]-od[13])))));
+a[53] = (a[52]*(real_t)(5.0000000000000000e-01));
+a[54] = (a[51]*a[53]);
+a[55] = (xd[1]-od[13]);
+a[56] = (xd[1]-od[13]);
+a[57] = (a[55]+a[56]);
+a[58] = (a[57]*a[53]);
+a[59] = (real_t)(0.0000000000000000e+00);
+a[60] = (real_t)(0.0000000000000000e+00);
+a[61] = (real_t)(0.0000000000000000e+00);
+a[62] = (xd[0]-od[4]);
+a[63] = (xd[0]-od[4]);
+a[64] = (a[62]+a[63]);
+a[65] = (1.0/sqrt((((xd[0]-od[4])*(xd[0]-od[4]))+((xd[1]-od[14])*(xd[1]-od[14])))));
+a[66] = (a[65]*(real_t)(5.0000000000000000e-01));
+a[67] = (a[64]*a[66]);
+a[68] = (xd[1]-od[14]);
+a[69] = (xd[1]-od[14]);
+a[70] = (a[68]+a[69]);
+a[71] = (a[70]*a[66]);
+a[72] = (real_t)(0.0000000000000000e+00);
+a[73] = (real_t)(0.0000000000000000e+00);
+a[74] = (real_t)(0.0000000000000000e+00);
+a[75] = (xd[0]-od[5]);
+a[76] = (xd[0]-od[5]);
+a[77] = (a[75]+a[76]);
+a[78] = (1.0/sqrt((((xd[0]-od[5])*(xd[0]-od[5]))+((xd[1]-od[15])*(xd[1]-od[15])))));
+a[79] = (a[78]*(real_t)(5.0000000000000000e-01));
+a[80] = (a[77]*a[79]);
+a[81] = (xd[1]-od[15]);
+a[82] = (xd[1]-od[15]);
+a[83] = (a[81]+a[82]);
+a[84] = (a[83]*a[79]);
+a[85] = (real_t)(0.0000000000000000e+00);
+a[86] = (real_t)(0.0000000000000000e+00);
+a[87] = (real_t)(0.0000000000000000e+00);
+a[88] = (xd[0]-od[6]);
+a[89] = (xd[0]-od[6]);
+a[90] = (a[88]+a[89]);
+a[91] = (1.0/sqrt((((xd[0]-od[6])*(xd[0]-od[6]))+((xd[1]-od[16])*(xd[1]-od[16])))));
+a[92] = (a[91]*(real_t)(5.0000000000000000e-01));
+a[93] = (a[90]*a[92]);
+a[94] = (xd[1]-od[16]);
+a[95] = (xd[1]-od[16]);
+a[96] = (a[94]+a[95]);
+a[97] = (a[96]*a[92]);
+a[98] = (real_t)(0.0000000000000000e+00);
+a[99] = (real_t)(0.0000000000000000e+00);
+a[100] = (real_t)(0.0000000000000000e+00);
+a[101] = (xd[0]-od[7]);
+a[102] = (xd[0]-od[7]);
+a[103] = (a[101]+a[102]);
+a[104] = (1.0/sqrt((((xd[0]-od[7])*(xd[0]-od[7]))+((xd[1]-od[17])*(xd[1]-od[17])))));
+a[105] = (a[104]*(real_t)(5.0000000000000000e-01));
+a[106] = (a[103]*a[105]);
+a[107] = (xd[1]-od[17]);
+a[108] = (xd[1]-od[17]);
+a[109] = (a[107]+a[108]);
+a[110] = (a[109]*a[105]);
+a[111] = (real_t)(0.0000000000000000e+00);
+a[112] = (real_t)(0.0000000000000000e+00);
+a[113] = (real_t)(0.0000000000000000e+00);
+a[114] = (xd[0]-od[8]);
+a[115] = (xd[0]-od[8]);
+a[116] = (a[114]+a[115]);
+a[117] = (1.0/sqrt((((xd[0]-od[8])*(xd[0]-od[8]))+((xd[1]-od[18])*(xd[1]-od[18])))));
+a[118] = (a[117]*(real_t)(5.0000000000000000e-01));
+a[119] = (a[116]*a[118]);
+a[120] = (xd[1]-od[18]);
+a[121] = (xd[1]-od[18]);
+a[122] = (a[120]+a[121]);
+a[123] = (a[122]*a[118]);
+a[124] = (real_t)(0.0000000000000000e+00);
+a[125] = (real_t)(0.0000000000000000e+00);
+a[126] = (real_t)(0.0000000000000000e+00);
+a[127] = (xd[0]-od[9]);
+a[128] = (xd[0]-od[9]);
+a[129] = (a[127]+a[128]);
+a[130] = (1.0/sqrt((((xd[0]-od[9])*(xd[0]-od[9]))+((xd[1]-od[19])*(xd[1]-od[19])))));
+a[131] = (a[130]*(real_t)(5.0000000000000000e-01));
+a[132] = (a[129]*a[131]);
+a[133] = (xd[1]-od[19]);
+a[134] = (xd[1]-od[19]);
+a[135] = (a[133]+a[134]);
+a[136] = (a[135]*a[131]);
+a[137] = (real_t)(0.0000000000000000e+00);
+a[138] = (real_t)(0.0000000000000000e+00);
+a[139] = (real_t)(0.0000000000000000e+00);
+a[140] = (real_t)(0.0000000000000000e+00);
+a[141] = (real_t)(0.0000000000000000e+00);
+a[142] = (real_t)(0.0000000000000000e+00);
+a[143] = (real_t)(0.0000000000000000e+00);
+a[144] = (real_t)(0.0000000000000000e+00);
+a[145] = (real_t)(0.0000000000000000e+00);
+a[146] = (real_t)(0.0000000000000000e+00);
+a[147] = (real_t)(0.0000000000000000e+00);
+a[148] = (real_t)(0.0000000000000000e+00);
+a[149] = (real_t)(0.0000000000000000e+00);
+a[150] = (real_t)(0.0000000000000000e+00);
+a[151] = (real_t)(0.0000000000000000e+00);
+a[152] = (real_t)(0.0000000000000000e+00);
+a[153] = (real_t)(0.0000000000000000e+00);
+a[154] = (real_t)(0.0000000000000000e+00);
+a[155] = (real_t)(0.0000000000000000e+00);
+a[156] = (real_t)(0.0000000000000000e+00);
+a[157] = (real_t)(0.0000000000000000e+00);
+a[158] = (real_t)(0.0000000000000000e+00);
+a[159] = (real_t)(0.0000000000000000e+00);
+
+/* Compute outputs: */
+out[0] = a[0];
+out[1] = a[1];
+out[2] = a[2];
+out[3] = a[3];
+out[4] = a[4];
+out[5] = a[5];
+out[6] = a[6];
+out[7] = a[7];
+out[8] = a[8];
+out[9] = a[9];
+out[10] = a[15];
+out[11] = a[19];
+out[12] = a[20];
+out[13] = a[21];
+out[14] = a[22];
+out[15] = a[28];
+out[16] = a[32];
+out[17] = a[33];
+out[18] = a[34];
+out[19] = a[35];
+out[20] = a[41];
+out[21] = a[45];
+out[22] = a[46];
+out[23] = a[47];
+out[24] = a[48];
+out[25] = a[54];
+out[26] = a[58];
+out[27] = a[59];
+out[28] = a[60];
+out[29] = a[61];
+out[30] = a[67];
+out[31] = a[71];
+out[32] = a[72];
+out[33] = a[73];
+out[34] = a[74];
+out[35] = a[80];
+out[36] = a[84];
+out[37] = a[85];
+out[38] = a[86];
+out[39] = a[87];
+out[40] = a[93];
+out[41] = a[97];
+out[42] = a[98];
+out[43] = a[99];
+out[44] = a[100];
+out[45] = a[106];
+out[46] = a[110];
+out[47] = a[111];
+out[48] = a[112];
+out[49] = a[113];
+out[50] = a[119];
+out[51] = a[123];
+out[52] = a[124];
+out[53] = a[125];
+out[54] = a[126];
+out[55] = a[132];
+out[56] = a[136];
+out[57] = a[137];
+out[58] = a[138];
+out[59] = a[139];
+out[60] = a[140];
+out[61] = a[141];
+out[62] = a[142];
+out[63] = a[143];
+out[64] = a[144];
+out[65] = a[145];
+out[66] = a[146];
+out[67] = a[147];
+out[68] = a[148];
+out[69] = a[149];
+out[70] = a[150];
+out[71] = a[151];
+out[72] = a[152];
+out[73] = a[153];
+out[74] = a[154];
+out[75] = a[155];
+out[76] = a[156];
+out[77] = a[157];
+out[78] = a[158];
+out[79] = a[159];
+}
+
+void acado_setObjQ1Q2( real_t* const tmpFx, real_t* const tmpObjS, real_t* const tmpQ1, real_t* const tmpQ2 )
+{
+tmpQ2[0] = + tmpFx[0]*tmpObjS[0] + tmpFx[5]*tmpObjS[8] + tmpFx[10]*tmpObjS[16] + tmpFx[15]*tmpObjS[24] + tmpFx[20]*tmpObjS[32] + tmpFx[25]*tmpObjS[40] + tmpFx[30]*tmpObjS[48] + tmpFx[35]*tmpObjS[56];
+tmpQ2[1] = + tmpFx[0]*tmpObjS[1] + tmpFx[5]*tmpObjS[9] + tmpFx[10]*tmpObjS[17] + tmpFx[15]*tmpObjS[25] + tmpFx[20]*tmpObjS[33] + tmpFx[25]*tmpObjS[41] + tmpFx[30]*tmpObjS[49] + tmpFx[35]*tmpObjS[57];
+tmpQ2[2] = + tmpFx[0]*tmpObjS[2] + tmpFx[5]*tmpObjS[10] + tmpFx[10]*tmpObjS[18] + tmpFx[15]*tmpObjS[26] + tmpFx[20]*tmpObjS[34] + tmpFx[25]*tmpObjS[42] + tmpFx[30]*tmpObjS[50] + tmpFx[35]*tmpObjS[58];
+tmpQ2[3] = + tmpFx[0]*tmpObjS[3] + tmpFx[5]*tmpObjS[11] + tmpFx[10]*tmpObjS[19] + tmpFx[15]*tmpObjS[27] + tmpFx[20]*tmpObjS[35] + tmpFx[25]*tmpObjS[43] + tmpFx[30]*tmpObjS[51] + tmpFx[35]*tmpObjS[59];
+tmpQ2[4] = + tmpFx[0]*tmpObjS[4] + tmpFx[5]*tmpObjS[12] + tmpFx[10]*tmpObjS[20] + tmpFx[15]*tmpObjS[28] + tmpFx[20]*tmpObjS[36] + tmpFx[25]*tmpObjS[44] + tmpFx[30]*tmpObjS[52] + tmpFx[35]*tmpObjS[60];
+tmpQ2[5] = + tmpFx[0]*tmpObjS[5] + tmpFx[5]*tmpObjS[13] + tmpFx[10]*tmpObjS[21] + tmpFx[15]*tmpObjS[29] + tmpFx[20]*tmpObjS[37] + tmpFx[25]*tmpObjS[45] + tmpFx[30]*tmpObjS[53] + tmpFx[35]*tmpObjS[61];
+tmpQ2[6] = + tmpFx[0]*tmpObjS[6] + tmpFx[5]*tmpObjS[14] + tmpFx[10]*tmpObjS[22] + tmpFx[15]*tmpObjS[30] + tmpFx[20]*tmpObjS[38] + tmpFx[25]*tmpObjS[46] + tmpFx[30]*tmpObjS[54] + tmpFx[35]*tmpObjS[62];
+tmpQ2[7] = + tmpFx[0]*tmpObjS[7] + tmpFx[5]*tmpObjS[15] + tmpFx[10]*tmpObjS[23] + tmpFx[15]*tmpObjS[31] + tmpFx[20]*tmpObjS[39] + tmpFx[25]*tmpObjS[47] + tmpFx[30]*tmpObjS[55] + tmpFx[35]*tmpObjS[63];
+tmpQ2[8] = + tmpFx[1]*tmpObjS[0] + tmpFx[6]*tmpObjS[8] + tmpFx[11]*tmpObjS[16] + tmpFx[16]*tmpObjS[24] + tmpFx[21]*tmpObjS[32] + tmpFx[26]*tmpObjS[40] + tmpFx[31]*tmpObjS[48] + tmpFx[36]*tmpObjS[56];
+tmpQ2[9] = + tmpFx[1]*tmpObjS[1] + tmpFx[6]*tmpObjS[9] + tmpFx[11]*tmpObjS[17] + tmpFx[16]*tmpObjS[25] + tmpFx[21]*tmpObjS[33] + tmpFx[26]*tmpObjS[41] + tmpFx[31]*tmpObjS[49] + tmpFx[36]*tmpObjS[57];
+tmpQ2[10] = + tmpFx[1]*tmpObjS[2] + tmpFx[6]*tmpObjS[10] + tmpFx[11]*tmpObjS[18] + tmpFx[16]*tmpObjS[26] + tmpFx[21]*tmpObjS[34] + tmpFx[26]*tmpObjS[42] + tmpFx[31]*tmpObjS[50] + tmpFx[36]*tmpObjS[58];
+tmpQ2[11] = + tmpFx[1]*tmpObjS[3] + tmpFx[6]*tmpObjS[11] + tmpFx[11]*tmpObjS[19] + tmpFx[16]*tmpObjS[27] + tmpFx[21]*tmpObjS[35] + tmpFx[26]*tmpObjS[43] + tmpFx[31]*tmpObjS[51] + tmpFx[36]*tmpObjS[59];
+tmpQ2[12] = + tmpFx[1]*tmpObjS[4] + tmpFx[6]*tmpObjS[12] + tmpFx[11]*tmpObjS[20] + tmpFx[16]*tmpObjS[28] + tmpFx[21]*tmpObjS[36] + tmpFx[26]*tmpObjS[44] + tmpFx[31]*tmpObjS[52] + tmpFx[36]*tmpObjS[60];
+tmpQ2[13] = + tmpFx[1]*tmpObjS[5] + tmpFx[6]*tmpObjS[13] + tmpFx[11]*tmpObjS[21] + tmpFx[16]*tmpObjS[29] + tmpFx[21]*tmpObjS[37] + tmpFx[26]*tmpObjS[45] + tmpFx[31]*tmpObjS[53] + tmpFx[36]*tmpObjS[61];
+tmpQ2[14] = + tmpFx[1]*tmpObjS[6] + tmpFx[6]*tmpObjS[14] + tmpFx[11]*tmpObjS[22] + tmpFx[16]*tmpObjS[30] + tmpFx[21]*tmpObjS[38] + tmpFx[26]*tmpObjS[46] + tmpFx[31]*tmpObjS[54] + tmpFx[36]*tmpObjS[62];
+tmpQ2[15] = + tmpFx[1]*tmpObjS[7] + tmpFx[6]*tmpObjS[15] + tmpFx[11]*tmpObjS[23] + tmpFx[16]*tmpObjS[31] + tmpFx[21]*tmpObjS[39] + tmpFx[26]*tmpObjS[47] + tmpFx[31]*tmpObjS[55] + tmpFx[36]*tmpObjS[63];
+tmpQ2[16] = + tmpFx[2]*tmpObjS[0] + tmpFx[7]*tmpObjS[8] + tmpFx[12]*tmpObjS[16] + tmpFx[17]*tmpObjS[24] + tmpFx[22]*tmpObjS[32] + tmpFx[27]*tmpObjS[40] + tmpFx[32]*tmpObjS[48] + tmpFx[37]*tmpObjS[56];
+tmpQ2[17] = + tmpFx[2]*tmpObjS[1] + tmpFx[7]*tmpObjS[9] + tmpFx[12]*tmpObjS[17] + tmpFx[17]*tmpObjS[25] + tmpFx[22]*tmpObjS[33] + tmpFx[27]*tmpObjS[41] + tmpFx[32]*tmpObjS[49] + tmpFx[37]*tmpObjS[57];
+tmpQ2[18] = + tmpFx[2]*tmpObjS[2] + tmpFx[7]*tmpObjS[10] + tmpFx[12]*tmpObjS[18] + tmpFx[17]*tmpObjS[26] + tmpFx[22]*tmpObjS[34] + tmpFx[27]*tmpObjS[42] + tmpFx[32]*tmpObjS[50] + tmpFx[37]*tmpObjS[58];
+tmpQ2[19] = + tmpFx[2]*tmpObjS[3] + tmpFx[7]*tmpObjS[11] + tmpFx[12]*tmpObjS[19] + tmpFx[17]*tmpObjS[27] + tmpFx[22]*tmpObjS[35] + tmpFx[27]*tmpObjS[43] + tmpFx[32]*tmpObjS[51] + tmpFx[37]*tmpObjS[59];
+tmpQ2[20] = + tmpFx[2]*tmpObjS[4] + tmpFx[7]*tmpObjS[12] + tmpFx[12]*tmpObjS[20] + tmpFx[17]*tmpObjS[28] + tmpFx[22]*tmpObjS[36] + tmpFx[27]*tmpObjS[44] + tmpFx[32]*tmpObjS[52] + tmpFx[37]*tmpObjS[60];
+tmpQ2[21] = + tmpFx[2]*tmpObjS[5] + tmpFx[7]*tmpObjS[13] + tmpFx[12]*tmpObjS[21] + tmpFx[17]*tmpObjS[29] + tmpFx[22]*tmpObjS[37] + tmpFx[27]*tmpObjS[45] + tmpFx[32]*tmpObjS[53] + tmpFx[37]*tmpObjS[61];
+tmpQ2[22] = + tmpFx[2]*tmpObjS[6] + tmpFx[7]*tmpObjS[14] + tmpFx[12]*tmpObjS[22] + tmpFx[17]*tmpObjS[30] + tmpFx[22]*tmpObjS[38] + tmpFx[27]*tmpObjS[46] + tmpFx[32]*tmpObjS[54] + tmpFx[37]*tmpObjS[62];
+tmpQ2[23] = + tmpFx[2]*tmpObjS[7] + tmpFx[7]*tmpObjS[15] + tmpFx[12]*tmpObjS[23] + tmpFx[17]*tmpObjS[31] + tmpFx[22]*tmpObjS[39] + tmpFx[27]*tmpObjS[47] + tmpFx[32]*tmpObjS[55] + tmpFx[37]*tmpObjS[63];
+tmpQ2[24] = + tmpFx[3]*tmpObjS[0] + tmpFx[8]*tmpObjS[8] + tmpFx[13]*tmpObjS[16] + tmpFx[18]*tmpObjS[24] + tmpFx[23]*tmpObjS[32] + tmpFx[28]*tmpObjS[40] + tmpFx[33]*tmpObjS[48] + tmpFx[38]*tmpObjS[56];
+tmpQ2[25] = + tmpFx[3]*tmpObjS[1] + tmpFx[8]*tmpObjS[9] + tmpFx[13]*tmpObjS[17] + tmpFx[18]*tmpObjS[25] + tmpFx[23]*tmpObjS[33] + tmpFx[28]*tmpObjS[41] + tmpFx[33]*tmpObjS[49] + tmpFx[38]*tmpObjS[57];
+tmpQ2[26] = + tmpFx[3]*tmpObjS[2] + tmpFx[8]*tmpObjS[10] + tmpFx[13]*tmpObjS[18] + tmpFx[18]*tmpObjS[26] + tmpFx[23]*tmpObjS[34] + tmpFx[28]*tmpObjS[42] + tmpFx[33]*tmpObjS[50] + tmpFx[38]*tmpObjS[58];
+tmpQ2[27] = + tmpFx[3]*tmpObjS[3] + tmpFx[8]*tmpObjS[11] + tmpFx[13]*tmpObjS[19] + tmpFx[18]*tmpObjS[27] + tmpFx[23]*tmpObjS[35] + tmpFx[28]*tmpObjS[43] + tmpFx[33]*tmpObjS[51] + tmpFx[38]*tmpObjS[59];
+tmpQ2[28] = + tmpFx[3]*tmpObjS[4] + tmpFx[8]*tmpObjS[12] + tmpFx[13]*tmpObjS[20] + tmpFx[18]*tmpObjS[28] + tmpFx[23]*tmpObjS[36] + tmpFx[28]*tmpObjS[44] + tmpFx[33]*tmpObjS[52] + tmpFx[38]*tmpObjS[60];
+tmpQ2[29] = + tmpFx[3]*tmpObjS[5] + tmpFx[8]*tmpObjS[13] + tmpFx[13]*tmpObjS[21] + tmpFx[18]*tmpObjS[29] + tmpFx[23]*tmpObjS[37] + tmpFx[28]*tmpObjS[45] + tmpFx[33]*tmpObjS[53] + tmpFx[38]*tmpObjS[61];
+tmpQ2[30] = + tmpFx[3]*tmpObjS[6] + tmpFx[8]*tmpObjS[14] + tmpFx[13]*tmpObjS[22] + tmpFx[18]*tmpObjS[30] + tmpFx[23]*tmpObjS[38] + tmpFx[28]*tmpObjS[46] + tmpFx[33]*tmpObjS[54] + tmpFx[38]*tmpObjS[62];
+tmpQ2[31] = + tmpFx[3]*tmpObjS[7] + tmpFx[8]*tmpObjS[15] + tmpFx[13]*tmpObjS[23] + tmpFx[18]*tmpObjS[31] + tmpFx[23]*tmpObjS[39] + tmpFx[28]*tmpObjS[47] + tmpFx[33]*tmpObjS[55] + tmpFx[38]*tmpObjS[63];
+tmpQ2[32] = + tmpFx[4]*tmpObjS[0] + tmpFx[9]*tmpObjS[8] + tmpFx[14]*tmpObjS[16] + tmpFx[19]*tmpObjS[24] + tmpFx[24]*tmpObjS[32] + tmpFx[29]*tmpObjS[40] + tmpFx[34]*tmpObjS[48] + tmpFx[39]*tmpObjS[56];
+tmpQ2[33] = + tmpFx[4]*tmpObjS[1] + tmpFx[9]*tmpObjS[9] + tmpFx[14]*tmpObjS[17] + tmpFx[19]*tmpObjS[25] + tmpFx[24]*tmpObjS[33] + tmpFx[29]*tmpObjS[41] + tmpFx[34]*tmpObjS[49] + tmpFx[39]*tmpObjS[57];
+tmpQ2[34] = + tmpFx[4]*tmpObjS[2] + tmpFx[9]*tmpObjS[10] + tmpFx[14]*tmpObjS[18] + tmpFx[19]*tmpObjS[26] + tmpFx[24]*tmpObjS[34] + tmpFx[29]*tmpObjS[42] + tmpFx[34]*tmpObjS[50] + tmpFx[39]*tmpObjS[58];
+tmpQ2[35] = + tmpFx[4]*tmpObjS[3] + tmpFx[9]*tmpObjS[11] + tmpFx[14]*tmpObjS[19] + tmpFx[19]*tmpObjS[27] + tmpFx[24]*tmpObjS[35] + tmpFx[29]*tmpObjS[43] + tmpFx[34]*tmpObjS[51] + tmpFx[39]*tmpObjS[59];
+tmpQ2[36] = + tmpFx[4]*tmpObjS[4] + tmpFx[9]*tmpObjS[12] + tmpFx[14]*tmpObjS[20] + tmpFx[19]*tmpObjS[28] + tmpFx[24]*tmpObjS[36] + tmpFx[29]*tmpObjS[44] + tmpFx[34]*tmpObjS[52] + tmpFx[39]*tmpObjS[60];
+tmpQ2[37] = + tmpFx[4]*tmpObjS[5] + tmpFx[9]*tmpObjS[13] + tmpFx[14]*tmpObjS[21] + tmpFx[19]*tmpObjS[29] + tmpFx[24]*tmpObjS[37] + tmpFx[29]*tmpObjS[45] + tmpFx[34]*tmpObjS[53] + tmpFx[39]*tmpObjS[61];
+tmpQ2[38] = + tmpFx[4]*tmpObjS[6] + tmpFx[9]*tmpObjS[14] + tmpFx[14]*tmpObjS[22] + tmpFx[19]*tmpObjS[30] + tmpFx[24]*tmpObjS[38] + tmpFx[29]*tmpObjS[46] + tmpFx[34]*tmpObjS[54] + tmpFx[39]*tmpObjS[62];
+tmpQ2[39] = + tmpFx[4]*tmpObjS[7] + tmpFx[9]*tmpObjS[15] + tmpFx[14]*tmpObjS[23] + tmpFx[19]*tmpObjS[31] + tmpFx[24]*tmpObjS[39] + tmpFx[29]*tmpObjS[47] + tmpFx[34]*tmpObjS[55] + tmpFx[39]*tmpObjS[63];
+tmpQ1[0] = + tmpQ2[0]*tmpFx[0] + tmpQ2[1]*tmpFx[5] + tmpQ2[2]*tmpFx[10] + tmpQ2[3]*tmpFx[15] + tmpQ2[4]*tmpFx[20] + tmpQ2[5]*tmpFx[25] + tmpQ2[6]*tmpFx[30] + tmpQ2[7]*tmpFx[35];
+tmpQ1[1] = + tmpQ2[0]*tmpFx[1] + tmpQ2[1]*tmpFx[6] + tmpQ2[2]*tmpFx[11] + tmpQ2[3]*tmpFx[16] + tmpQ2[4]*tmpFx[21] + tmpQ2[5]*tmpFx[26] + tmpQ2[6]*tmpFx[31] + tmpQ2[7]*tmpFx[36];
+tmpQ1[2] = + tmpQ2[0]*tmpFx[2] + tmpQ2[1]*tmpFx[7] + tmpQ2[2]*tmpFx[12] + tmpQ2[3]*tmpFx[17] + tmpQ2[4]*tmpFx[22] + tmpQ2[5]*tmpFx[27] + tmpQ2[6]*tmpFx[32] + tmpQ2[7]*tmpFx[37];
+tmpQ1[3] = + tmpQ2[0]*tmpFx[3] + tmpQ2[1]*tmpFx[8] + tmpQ2[2]*tmpFx[13] + tmpQ2[3]*tmpFx[18] + tmpQ2[4]*tmpFx[23] + tmpQ2[5]*tmpFx[28] + tmpQ2[6]*tmpFx[33] + tmpQ2[7]*tmpFx[38];
+tmpQ1[4] = + tmpQ2[0]*tmpFx[4] + tmpQ2[1]*tmpFx[9] + tmpQ2[2]*tmpFx[14] + tmpQ2[3]*tmpFx[19] + tmpQ2[4]*tmpFx[24] + tmpQ2[5]*tmpFx[29] + tmpQ2[6]*tmpFx[34] + tmpQ2[7]*tmpFx[39];
+tmpQ1[5] = + tmpQ2[8]*tmpFx[0] + tmpQ2[9]*tmpFx[5] + tmpQ2[10]*tmpFx[10] + tmpQ2[11]*tmpFx[15] + tmpQ2[12]*tmpFx[20] + tmpQ2[13]*tmpFx[25] + tmpQ2[14]*tmpFx[30] + tmpQ2[15]*tmpFx[35];
+tmpQ1[6] = + tmpQ2[8]*tmpFx[1] + tmpQ2[9]*tmpFx[6] + tmpQ2[10]*tmpFx[11] + tmpQ2[11]*tmpFx[16] + tmpQ2[12]*tmpFx[21] + tmpQ2[13]*tmpFx[26] + tmpQ2[14]*tmpFx[31] + tmpQ2[15]*tmpFx[36];
+tmpQ1[7] = + tmpQ2[8]*tmpFx[2] + tmpQ2[9]*tmpFx[7] + tmpQ2[10]*tmpFx[12] + tmpQ2[11]*tmpFx[17] + tmpQ2[12]*tmpFx[22] + tmpQ2[13]*tmpFx[27] + tmpQ2[14]*tmpFx[32] + tmpQ2[15]*tmpFx[37];
+tmpQ1[8] = + tmpQ2[8]*tmpFx[3] + tmpQ2[9]*tmpFx[8] + tmpQ2[10]*tmpFx[13] + tmpQ2[11]*tmpFx[18] + tmpQ2[12]*tmpFx[23] + tmpQ2[13]*tmpFx[28] + tmpQ2[14]*tmpFx[33] + tmpQ2[15]*tmpFx[38];
+tmpQ1[9] = + tmpQ2[8]*tmpFx[4] + tmpQ2[9]*tmpFx[9] + tmpQ2[10]*tmpFx[14] + tmpQ2[11]*tmpFx[19] + tmpQ2[12]*tmpFx[24] + tmpQ2[13]*tmpFx[29] + tmpQ2[14]*tmpFx[34] + tmpQ2[15]*tmpFx[39];
+tmpQ1[10] = + tmpQ2[16]*tmpFx[0] + tmpQ2[17]*tmpFx[5] + tmpQ2[18]*tmpFx[10] + tmpQ2[19]*tmpFx[15] + tmpQ2[20]*tmpFx[20] + tmpQ2[21]*tmpFx[25] + tmpQ2[22]*tmpFx[30] + tmpQ2[23]*tmpFx[35];
+tmpQ1[11] = + tmpQ2[16]*tmpFx[1] + tmpQ2[17]*tmpFx[6] + tmpQ2[18]*tmpFx[11] + tmpQ2[19]*tmpFx[16] + tmpQ2[20]*tmpFx[21] + tmpQ2[21]*tmpFx[26] + tmpQ2[22]*tmpFx[31] + tmpQ2[23]*tmpFx[36];
+tmpQ1[12] = + tmpQ2[16]*tmpFx[2] + tmpQ2[17]*tmpFx[7] + tmpQ2[18]*tmpFx[12] + tmpQ2[19]*tmpFx[17] + tmpQ2[20]*tmpFx[22] + tmpQ2[21]*tmpFx[27] + tmpQ2[22]*tmpFx[32] + tmpQ2[23]*tmpFx[37];
+tmpQ1[13] = + tmpQ2[16]*tmpFx[3] + tmpQ2[17]*tmpFx[8] + tmpQ2[18]*tmpFx[13] + tmpQ2[19]*tmpFx[18] + tmpQ2[20]*tmpFx[23] + tmpQ2[21]*tmpFx[28] + tmpQ2[22]*tmpFx[33] + tmpQ2[23]*tmpFx[38];
+tmpQ1[14] = + tmpQ2[16]*tmpFx[4] + tmpQ2[17]*tmpFx[9] + tmpQ2[18]*tmpFx[14] + tmpQ2[19]*tmpFx[19] + tmpQ2[20]*tmpFx[24] + tmpQ2[21]*tmpFx[29] + tmpQ2[22]*tmpFx[34] + tmpQ2[23]*tmpFx[39];
+tmpQ1[15] = + tmpQ2[24]*tmpFx[0] + tmpQ2[25]*tmpFx[5] + tmpQ2[26]*tmpFx[10] + tmpQ2[27]*tmpFx[15] + tmpQ2[28]*tmpFx[20] + tmpQ2[29]*tmpFx[25] + tmpQ2[30]*tmpFx[30] + tmpQ2[31]*tmpFx[35];
+tmpQ1[16] = + tmpQ2[24]*tmpFx[1] + tmpQ2[25]*tmpFx[6] + tmpQ2[26]*tmpFx[11] + tmpQ2[27]*tmpFx[16] + tmpQ2[28]*tmpFx[21] + tmpQ2[29]*tmpFx[26] + tmpQ2[30]*tmpFx[31] + tmpQ2[31]*tmpFx[36];
+tmpQ1[17] = + tmpQ2[24]*tmpFx[2] + tmpQ2[25]*tmpFx[7] + tmpQ2[26]*tmpFx[12] + tmpQ2[27]*tmpFx[17] + tmpQ2[28]*tmpFx[22] + tmpQ2[29]*tmpFx[27] + tmpQ2[30]*tmpFx[32] + tmpQ2[31]*tmpFx[37];
+tmpQ1[18] = + tmpQ2[24]*tmpFx[3] + tmpQ2[25]*tmpFx[8] + tmpQ2[26]*tmpFx[13] + tmpQ2[27]*tmpFx[18] + tmpQ2[28]*tmpFx[23] + tmpQ2[29]*tmpFx[28] + tmpQ2[30]*tmpFx[33] + tmpQ2[31]*tmpFx[38];
+tmpQ1[19] = + tmpQ2[24]*tmpFx[4] + tmpQ2[25]*tmpFx[9] + tmpQ2[26]*tmpFx[14] + tmpQ2[27]*tmpFx[19] + tmpQ2[28]*tmpFx[24] + tmpQ2[29]*tmpFx[29] + tmpQ2[30]*tmpFx[34] + tmpQ2[31]*tmpFx[39];
+tmpQ1[20] = + tmpQ2[32]*tmpFx[0] + tmpQ2[33]*tmpFx[5] + tmpQ2[34]*tmpFx[10] + tmpQ2[35]*tmpFx[15] + tmpQ2[36]*tmpFx[20] + tmpQ2[37]*tmpFx[25] + tmpQ2[38]*tmpFx[30] + tmpQ2[39]*tmpFx[35];
+tmpQ1[21] = + tmpQ2[32]*tmpFx[1] + tmpQ2[33]*tmpFx[6] + tmpQ2[34]*tmpFx[11] + tmpQ2[35]*tmpFx[16] + tmpQ2[36]*tmpFx[21] + tmpQ2[37]*tmpFx[26] + tmpQ2[38]*tmpFx[31] + tmpQ2[39]*tmpFx[36];
+tmpQ1[22] = + tmpQ2[32]*tmpFx[2] + tmpQ2[33]*tmpFx[7] + tmpQ2[34]*tmpFx[12] + tmpQ2[35]*tmpFx[17] + tmpQ2[36]*tmpFx[22] + tmpQ2[37]*tmpFx[27] + tmpQ2[38]*tmpFx[32] + tmpQ2[39]*tmpFx[37];
+tmpQ1[23] = + tmpQ2[32]*tmpFx[3] + tmpQ2[33]*tmpFx[8] + tmpQ2[34]*tmpFx[13] + tmpQ2[35]*tmpFx[18] + tmpQ2[36]*tmpFx[23] + tmpQ2[37]*tmpFx[28] + tmpQ2[38]*tmpFx[33] + tmpQ2[39]*tmpFx[38];
+tmpQ1[24] = + tmpQ2[32]*tmpFx[4] + tmpQ2[33]*tmpFx[9] + tmpQ2[34]*tmpFx[14] + tmpQ2[35]*tmpFx[19] + tmpQ2[36]*tmpFx[24] + tmpQ2[37]*tmpFx[29] + tmpQ2[38]*tmpFx[34] + tmpQ2[39]*tmpFx[39];
+}
+
+void acado_setObjR1R2( real_t* const tmpFu, real_t* const tmpObjS, real_t* const tmpR1, real_t* const tmpR2 )
+{
+tmpR2[0] = + tmpFu[0]*tmpObjS[0] + tmpFu[2]*tmpObjS[8] + tmpFu[4]*tmpObjS[16] + tmpFu[6]*tmpObjS[24] + tmpFu[8]*tmpObjS[32] + tmpFu[10]*tmpObjS[40] + tmpFu[12]*tmpObjS[48] + tmpFu[14]*tmpObjS[56];
+tmpR2[1] = + tmpFu[0]*tmpObjS[1] + tmpFu[2]*tmpObjS[9] + tmpFu[4]*tmpObjS[17] + tmpFu[6]*tmpObjS[25] + tmpFu[8]*tmpObjS[33] + tmpFu[10]*tmpObjS[41] + tmpFu[12]*tmpObjS[49] + tmpFu[14]*tmpObjS[57];
+tmpR2[2] = + tmpFu[0]*tmpObjS[2] + tmpFu[2]*tmpObjS[10] + tmpFu[4]*tmpObjS[18] + tmpFu[6]*tmpObjS[26] + tmpFu[8]*tmpObjS[34] + tmpFu[10]*tmpObjS[42] + tmpFu[12]*tmpObjS[50] + tmpFu[14]*tmpObjS[58];
+tmpR2[3] = + tmpFu[0]*tmpObjS[3] + tmpFu[2]*tmpObjS[11] + tmpFu[4]*tmpObjS[19] + tmpFu[6]*tmpObjS[27] + tmpFu[8]*tmpObjS[35] + tmpFu[10]*tmpObjS[43] + tmpFu[12]*tmpObjS[51] + tmpFu[14]*tmpObjS[59];
+tmpR2[4] = + tmpFu[0]*tmpObjS[4] + tmpFu[2]*tmpObjS[12] + tmpFu[4]*tmpObjS[20] + tmpFu[6]*tmpObjS[28] + tmpFu[8]*tmpObjS[36] + tmpFu[10]*tmpObjS[44] + tmpFu[12]*tmpObjS[52] + tmpFu[14]*tmpObjS[60];
+tmpR2[5] = + tmpFu[0]*tmpObjS[5] + tmpFu[2]*tmpObjS[13] + tmpFu[4]*tmpObjS[21] + tmpFu[6]*tmpObjS[29] + tmpFu[8]*tmpObjS[37] + tmpFu[10]*tmpObjS[45] + tmpFu[12]*tmpObjS[53] + tmpFu[14]*tmpObjS[61];
+tmpR2[6] = + tmpFu[0]*tmpObjS[6] + tmpFu[2]*tmpObjS[14] + tmpFu[4]*tmpObjS[22] + tmpFu[6]*tmpObjS[30] + tmpFu[8]*tmpObjS[38] + tmpFu[10]*tmpObjS[46] + tmpFu[12]*tmpObjS[54] + tmpFu[14]*tmpObjS[62];
+tmpR2[7] = + tmpFu[0]*tmpObjS[7] + tmpFu[2]*tmpObjS[15] + tmpFu[4]*tmpObjS[23] + tmpFu[6]*tmpObjS[31] + tmpFu[8]*tmpObjS[39] + tmpFu[10]*tmpObjS[47] + tmpFu[12]*tmpObjS[55] + tmpFu[14]*tmpObjS[63];
+tmpR2[8] = + tmpFu[1]*tmpObjS[0] + tmpFu[3]*tmpObjS[8] + tmpFu[5]*tmpObjS[16] + tmpFu[7]*tmpObjS[24] + tmpFu[9]*tmpObjS[32] + tmpFu[11]*tmpObjS[40] + tmpFu[13]*tmpObjS[48] + tmpFu[15]*tmpObjS[56];
+tmpR2[9] = + tmpFu[1]*tmpObjS[1] + tmpFu[3]*tmpObjS[9] + tmpFu[5]*tmpObjS[17] + tmpFu[7]*tmpObjS[25] + tmpFu[9]*tmpObjS[33] + tmpFu[11]*tmpObjS[41] + tmpFu[13]*tmpObjS[49] + tmpFu[15]*tmpObjS[57];
+tmpR2[10] = + tmpFu[1]*tmpObjS[2] + tmpFu[3]*tmpObjS[10] + tmpFu[5]*tmpObjS[18] + tmpFu[7]*tmpObjS[26] + tmpFu[9]*tmpObjS[34] + tmpFu[11]*tmpObjS[42] + tmpFu[13]*tmpObjS[50] + tmpFu[15]*tmpObjS[58];
+tmpR2[11] = + tmpFu[1]*tmpObjS[3] + tmpFu[3]*tmpObjS[11] + tmpFu[5]*tmpObjS[19] + tmpFu[7]*tmpObjS[27] + tmpFu[9]*tmpObjS[35] + tmpFu[11]*tmpObjS[43] + tmpFu[13]*tmpObjS[51] + tmpFu[15]*tmpObjS[59];
+tmpR2[12] = + tmpFu[1]*tmpObjS[4] + tmpFu[3]*tmpObjS[12] + tmpFu[5]*tmpObjS[20] + tmpFu[7]*tmpObjS[28] + tmpFu[9]*tmpObjS[36] + tmpFu[11]*tmpObjS[44] + tmpFu[13]*tmpObjS[52] + tmpFu[15]*tmpObjS[60];
+tmpR2[13] = + tmpFu[1]*tmpObjS[5] + tmpFu[3]*tmpObjS[13] + tmpFu[5]*tmpObjS[21] + tmpFu[7]*tmpObjS[29] + tmpFu[9]*tmpObjS[37] + tmpFu[11]*tmpObjS[45] + tmpFu[13]*tmpObjS[53] + tmpFu[15]*tmpObjS[61];
+tmpR2[14] = + tmpFu[1]*tmpObjS[6] + tmpFu[3]*tmpObjS[14] + tmpFu[5]*tmpObjS[22] + tmpFu[7]*tmpObjS[30] + tmpFu[9]*tmpObjS[38] + tmpFu[11]*tmpObjS[46] + tmpFu[13]*tmpObjS[54] + tmpFu[15]*tmpObjS[62];
+tmpR2[15] = + tmpFu[1]*tmpObjS[7] + tmpFu[3]*tmpObjS[15] + tmpFu[5]*tmpObjS[23] + tmpFu[7]*tmpObjS[31] + tmpFu[9]*tmpObjS[39] + tmpFu[11]*tmpObjS[47] + tmpFu[13]*tmpObjS[55] + tmpFu[15]*tmpObjS[63];
+tmpR1[0] = + tmpR2[0]*tmpFu[0] + tmpR2[1]*tmpFu[2] + tmpR2[2]*tmpFu[4] + tmpR2[3]*tmpFu[6] + tmpR2[4]*tmpFu[8] + tmpR2[5]*tmpFu[10] + tmpR2[6]*tmpFu[12] + tmpR2[7]*tmpFu[14];
+tmpR1[1] = + tmpR2[0]*tmpFu[1] + tmpR2[1]*tmpFu[3] + tmpR2[2]*tmpFu[5] + tmpR2[3]*tmpFu[7] + tmpR2[4]*tmpFu[9] + tmpR2[5]*tmpFu[11] + tmpR2[6]*tmpFu[13] + tmpR2[7]*tmpFu[15];
+tmpR1[2] = + tmpR2[8]*tmpFu[0] + tmpR2[9]*tmpFu[2] + tmpR2[10]*tmpFu[4] + tmpR2[11]*tmpFu[6] + tmpR2[12]*tmpFu[8] + tmpR2[13]*tmpFu[10] + tmpR2[14]*tmpFu[12] + tmpR2[15]*tmpFu[14];
+tmpR1[3] = + tmpR2[8]*tmpFu[1] + tmpR2[9]*tmpFu[3] + tmpR2[10]*tmpFu[5] + tmpR2[11]*tmpFu[7] + tmpR2[12]*tmpFu[9] + tmpR2[13]*tmpFu[11] + tmpR2[14]*tmpFu[13] + tmpR2[15]*tmpFu[15];
+}
+
+void acado_setObjQN1QN2( real_t* const tmpObjSEndTerm, real_t* const tmpQN1, real_t* const tmpQN2 )
+{
+tmpQN2[0] = +tmpObjSEndTerm[0];
+tmpQN2[1] = +tmpObjSEndTerm[1];
+tmpQN2[2] = +tmpObjSEndTerm[2];
+tmpQN2[3] = +tmpObjSEndTerm[3];
+tmpQN2[4] = +tmpObjSEndTerm[4];
+tmpQN2[5] = +tmpObjSEndTerm[5];
+tmpQN2[6] = +tmpObjSEndTerm[6];
+tmpQN2[7] = +tmpObjSEndTerm[7];
+tmpQN2[8] = +tmpObjSEndTerm[8];
+tmpQN2[9] = +tmpObjSEndTerm[9];
+tmpQN2[10] = +tmpObjSEndTerm[10];
+tmpQN2[11] = +tmpObjSEndTerm[11];
+tmpQN2[12] = +tmpObjSEndTerm[12];
+tmpQN2[13] = +tmpObjSEndTerm[13];
+tmpQN2[14] = +tmpObjSEndTerm[14];
+tmpQN2[15] = +tmpObjSEndTerm[15];
+tmpQN2[16] = +tmpObjSEndTerm[16];
+tmpQN2[17] = +tmpObjSEndTerm[17];
+tmpQN2[18] = +tmpObjSEndTerm[18];
+tmpQN2[19] = +tmpObjSEndTerm[19];
+tmpQN2[20] = +tmpObjSEndTerm[20];
+tmpQN2[21] = +tmpObjSEndTerm[21];
+tmpQN2[22] = +tmpObjSEndTerm[22];
+tmpQN2[23] = +tmpObjSEndTerm[23];
+tmpQN2[24] = +tmpObjSEndTerm[24];
+tmpQN1[0] = + tmpQN2[0];
+tmpQN1[1] = + tmpQN2[1];
+tmpQN1[2] = + tmpQN2[2];
+tmpQN1[3] = + tmpQN2[3];
+tmpQN1[4] = + tmpQN2[4];
+tmpQN1[5] = + tmpQN2[5];
+tmpQN1[6] = + tmpQN2[6];
+tmpQN1[7] = + tmpQN2[7];
+tmpQN1[8] = + tmpQN2[8];
+tmpQN1[9] = + tmpQN2[9];
+tmpQN1[10] = + tmpQN2[10];
+tmpQN1[11] = + tmpQN2[11];
+tmpQN1[12] = + tmpQN2[12];
+tmpQN1[13] = + tmpQN2[13];
+tmpQN1[14] = + tmpQN2[14];
+tmpQN1[15] = + tmpQN2[15];
+tmpQN1[16] = + tmpQN2[16];
+tmpQN1[17] = + tmpQN2[17];
+tmpQN1[18] = + tmpQN2[18];
+tmpQN1[19] = + tmpQN2[19];
+tmpQN1[20] = + tmpQN2[20];
+tmpQN1[21] = + tmpQN2[21];
+tmpQN1[22] = + tmpQN2[22];
+tmpQN1[23] = + tmpQN2[23];
+tmpQN1[24] = + tmpQN2[24];
+}
+
+void acado_evaluateObjective(  )
+{
+int runObj;
+for (runObj = 0; runObj < 20; ++runObj)
+{
+acadoWorkspace.objValueIn[0] = acadoVariables.x[runObj * 5];
+acadoWorkspace.objValueIn[1] = acadoVariables.x[runObj * 5 + 1];
+acadoWorkspace.objValueIn[2] = acadoVariables.x[runObj * 5 + 2];
+acadoWorkspace.objValueIn[3] = acadoVariables.x[runObj * 5 + 3];
+acadoWorkspace.objValueIn[4] = acadoVariables.x[runObj * 5 + 4];
+acadoWorkspace.objValueIn[5] = acadoVariables.u[runObj * 2];
+acadoWorkspace.objValueIn[6] = acadoVariables.u[runObj * 2 + 1];
+acadoWorkspace.objValueIn[7] = acadoVariables.od[runObj * 20];
+acadoWorkspace.objValueIn[8] = acadoVariables.od[runObj * 20 + 1];
+acadoWorkspace.objValueIn[9] = acadoVariables.od[runObj * 20 + 2];
+acadoWorkspace.objValueIn[10] = acadoVariables.od[runObj * 20 + 3];
+acadoWorkspace.objValueIn[11] = acadoVariables.od[runObj * 20 + 4];
+acadoWorkspace.objValueIn[12] = acadoVariables.od[runObj * 20 + 5];
+acadoWorkspace.objValueIn[13] = acadoVariables.od[runObj * 20 + 6];
+acadoWorkspace.objValueIn[14] = acadoVariables.od[runObj * 20 + 7];
+acadoWorkspace.objValueIn[15] = acadoVariables.od[runObj * 20 + 8];
+acadoWorkspace.objValueIn[16] = acadoVariables.od[runObj * 20 + 9];
+acadoWorkspace.objValueIn[17] = acadoVariables.od[runObj * 20 + 10];
+acadoWorkspace.objValueIn[18] = acadoVariables.od[runObj * 20 + 11];
+acadoWorkspace.objValueIn[19] = acadoVariables.od[runObj * 20 + 12];
+acadoWorkspace.objValueIn[20] = acadoVariables.od[runObj * 20 + 13];
+acadoWorkspace.objValueIn[21] = acadoVariables.od[runObj * 20 + 14];
+acadoWorkspace.objValueIn[22] = acadoVariables.od[runObj * 20 + 15];
+acadoWorkspace.objValueIn[23] = acadoVariables.od[runObj * 20 + 16];
+acadoWorkspace.objValueIn[24] = acadoVariables.od[runObj * 20 + 17];
+acadoWorkspace.objValueIn[25] = acadoVariables.od[runObj * 20 + 18];
+acadoWorkspace.objValueIn[26] = acadoVariables.od[runObj * 20 + 19];
+
+acado_evaluateLSQ( acadoWorkspace.objValueIn, acadoWorkspace.objValueOut );
+acadoWorkspace.Dy[runObj * 8] = acadoWorkspace.objValueOut[0];
+acadoWorkspace.Dy[runObj * 8 + 1] = acadoWorkspace.objValueOut[1];
+acadoWorkspace.Dy[runObj * 8 + 2] = acadoWorkspace.objValueOut[2];
+acadoWorkspace.Dy[runObj * 8 + 3] = acadoWorkspace.objValueOut[3];
+acadoWorkspace.Dy[runObj * 8 + 4] = acadoWorkspace.objValueOut[4];
+acadoWorkspace.Dy[runObj * 8 + 5] = acadoWorkspace.objValueOut[5];
+acadoWorkspace.Dy[runObj * 8 + 6] = acadoWorkspace.objValueOut[6];
+acadoWorkspace.Dy[runObj * 8 + 7] = acadoWorkspace.objValueOut[7];
+
+acado_setObjQ1Q2( &(acadoWorkspace.objValueOut[ 8 ]), &(acadoVariables.W[ runObj * 64 ]), &(acadoWorkspace.Q1[ runObj * 25 ]), &(acadoWorkspace.Q2[ runObj * 40 ]) );
+
+acado_setObjR1R2( &(acadoWorkspace.objValueOut[ 48 ]), &(acadoVariables.W[ runObj * 64 ]), &(acadoWorkspace.R1[ runObj * 4 ]), &(acadoWorkspace.R2[ runObj * 16 ]) );
+
+}
+acadoWorkspace.objValueIn[0] = acadoVariables.x[100];
+acadoWorkspace.objValueIn[1] = acadoVariables.x[101];
+acadoWorkspace.objValueIn[2] = acadoVariables.x[102];
+acadoWorkspace.objValueIn[3] = acadoVariables.x[103];
+acadoWorkspace.objValueIn[4] = acadoVariables.x[104];
+acadoWorkspace.objValueIn[5] = acadoVariables.od[400];
+acadoWorkspace.objValueIn[6] = acadoVariables.od[401];
+acadoWorkspace.objValueIn[7] = acadoVariables.od[402];
+acadoWorkspace.objValueIn[8] = acadoVariables.od[403];
+acadoWorkspace.objValueIn[9] = acadoVariables.od[404];
+acadoWorkspace.objValueIn[10] = acadoVariables.od[405];
+acadoWorkspace.objValueIn[11] = acadoVariables.od[406];
+acadoWorkspace.objValueIn[12] = acadoVariables.od[407];
+acadoWorkspace.objValueIn[13] = acadoVariables.od[408];
+acadoWorkspace.objValueIn[14] = acadoVariables.od[409];
+acadoWorkspace.objValueIn[15] = acadoVariables.od[410];
+acadoWorkspace.objValueIn[16] = acadoVariables.od[411];
+acadoWorkspace.objValueIn[17] = acadoVariables.od[412];
+acadoWorkspace.objValueIn[18] = acadoVariables.od[413];
+acadoWorkspace.objValueIn[19] = acadoVariables.od[414];
+acadoWorkspace.objValueIn[20] = acadoVariables.od[415];
+acadoWorkspace.objValueIn[21] = acadoVariables.od[416];
+acadoWorkspace.objValueIn[22] = acadoVariables.od[417];
+acadoWorkspace.objValueIn[23] = acadoVariables.od[418];
+acadoWorkspace.objValueIn[24] = acadoVariables.od[419];
+acado_evaluateLSQEndTerm( acadoWorkspace.objValueIn, acadoWorkspace.objValueOut );
+
+acadoWorkspace.DyN[0] = acadoWorkspace.objValueOut[0];
+acadoWorkspace.DyN[1] = acadoWorkspace.objValueOut[1];
+acadoWorkspace.DyN[2] = acadoWorkspace.objValueOut[2];
+acadoWorkspace.DyN[3] = acadoWorkspace.objValueOut[3];
+acadoWorkspace.DyN[4] = acadoWorkspace.objValueOut[4];
+
+acado_setObjQN1QN2( acadoVariables.WN, acadoWorkspace.QN1, acadoWorkspace.QN2 );
+
+}
+
+void acado_moveGxT( real_t* const Gx1, real_t* const Gx2 )
+{
+Gx2[0] = Gx1[0];
+Gx2[1] = Gx1[1];
+Gx2[2] = Gx1[2];
+Gx2[3] = Gx1[3];
+Gx2[4] = Gx1[4];
+Gx2[5] = Gx1[5];
+Gx2[6] = Gx1[6];
+Gx2[7] = Gx1[7];
+Gx2[8] = Gx1[8];
+Gx2[9] = Gx1[9];
+Gx2[10] = Gx1[10];
+Gx2[11] = Gx1[11];
+Gx2[12] = Gx1[12];
+Gx2[13] = Gx1[13];
+Gx2[14] = Gx1[14];
+Gx2[15] = Gx1[15];
+Gx2[16] = Gx1[16];
+Gx2[17] = Gx1[17];
+Gx2[18] = Gx1[18];
+Gx2[19] = Gx1[19];
+Gx2[20] = Gx1[20];
+Gx2[21] = Gx1[21];
+Gx2[22] = Gx1[22];
+Gx2[23] = Gx1[23];
+Gx2[24] = Gx1[24];
+}
+
+void acado_multGxGx( real_t* const Gx1, real_t* const Gx2, real_t* const Gx3 )
+{
+Gx3[0] = + Gx1[0]*Gx2[0] + Gx1[1]*Gx2[5] + Gx1[2]*Gx2[10] + Gx1[3]*Gx2[15] + Gx1[4]*Gx2[20];
+Gx3[1] = + Gx1[0]*Gx2[1] + Gx1[1]*Gx2[6] + Gx1[2]*Gx2[11] + Gx1[3]*Gx2[16] + Gx1[4]*Gx2[21];
+Gx3[2] = + Gx1[0]*Gx2[2] + Gx1[1]*Gx2[7] + Gx1[2]*Gx2[12] + Gx1[3]*Gx2[17] + Gx1[4]*Gx2[22];
+Gx3[3] = + Gx1[0]*Gx2[3] + Gx1[1]*Gx2[8] + Gx1[2]*Gx2[13] + Gx1[3]*Gx2[18] + Gx1[4]*Gx2[23];
+Gx3[4] = + Gx1[0]*Gx2[4] + Gx1[1]*Gx2[9] + Gx1[2]*Gx2[14] + Gx1[3]*Gx2[19] + Gx1[4]*Gx2[24];
+Gx3[5] = + Gx1[5]*Gx2[0] + Gx1[6]*Gx2[5] + Gx1[7]*Gx2[10] + Gx1[8]*Gx2[15] + Gx1[9]*Gx2[20];
+Gx3[6] = + Gx1[5]*Gx2[1] + Gx1[6]*Gx2[6] + Gx1[7]*Gx2[11] + Gx1[8]*Gx2[16] + Gx1[9]*Gx2[21];
+Gx3[7] = + Gx1[5]*Gx2[2] + Gx1[6]*Gx2[7] + Gx1[7]*Gx2[12] + Gx1[8]*Gx2[17] + Gx1[9]*Gx2[22];
+Gx3[8] = + Gx1[5]*Gx2[3] + Gx1[6]*Gx2[8] + Gx1[7]*Gx2[13] + Gx1[8]*Gx2[18] + Gx1[9]*Gx2[23];
+Gx3[9] = + Gx1[5]*Gx2[4] + Gx1[6]*Gx2[9] + Gx1[7]*Gx2[14] + Gx1[8]*Gx2[19] + Gx1[9]*Gx2[24];
+Gx3[10] = + Gx1[10]*Gx2[0] + Gx1[11]*Gx2[5] + Gx1[12]*Gx2[10] + Gx1[13]*Gx2[15] + Gx1[14]*Gx2[20];
+Gx3[11] = + Gx1[10]*Gx2[1] + Gx1[11]*Gx2[6] + Gx1[12]*Gx2[11] + Gx1[13]*Gx2[16] + Gx1[14]*Gx2[21];
+Gx3[12] = + Gx1[10]*Gx2[2] + Gx1[11]*Gx2[7] + Gx1[12]*Gx2[12] + Gx1[13]*Gx2[17] + Gx1[14]*Gx2[22];
+Gx3[13] = + Gx1[10]*Gx2[3] + Gx1[11]*Gx2[8] + Gx1[12]*Gx2[13] + Gx1[13]*Gx2[18] + Gx1[14]*Gx2[23];
+Gx3[14] = + Gx1[10]*Gx2[4] + Gx1[11]*Gx2[9] + Gx1[12]*Gx2[14] + Gx1[13]*Gx2[19] + Gx1[14]*Gx2[24];
+Gx3[15] = + Gx1[15]*Gx2[0] + Gx1[16]*Gx2[5] + Gx1[17]*Gx2[10] + Gx1[18]*Gx2[15] + Gx1[19]*Gx2[20];
+Gx3[16] = + Gx1[15]*Gx2[1] + Gx1[16]*Gx2[6] + Gx1[17]*Gx2[11] + Gx1[18]*Gx2[16] + Gx1[19]*Gx2[21];
+Gx3[17] = + Gx1[15]*Gx2[2] + Gx1[16]*Gx2[7] + Gx1[17]*Gx2[12] + Gx1[18]*Gx2[17] + Gx1[19]*Gx2[22];
+Gx3[18] = + Gx1[15]*Gx2[3] + Gx1[16]*Gx2[8] + Gx1[17]*Gx2[13] + Gx1[18]*Gx2[18] + Gx1[19]*Gx2[23];
+Gx3[19] = + Gx1[15]*Gx2[4] + Gx1[16]*Gx2[9] + Gx1[17]*Gx2[14] + Gx1[18]*Gx2[19] + Gx1[19]*Gx2[24];
+Gx3[20] = + Gx1[20]*Gx2[0] + Gx1[21]*Gx2[5] + Gx1[22]*Gx2[10] + Gx1[23]*Gx2[15] + Gx1[24]*Gx2[20];
+Gx3[21] = + Gx1[20]*Gx2[1] + Gx1[21]*Gx2[6] + Gx1[22]*Gx2[11] + Gx1[23]*Gx2[16] + Gx1[24]*Gx2[21];
+Gx3[22] = + Gx1[20]*Gx2[2] + Gx1[21]*Gx2[7] + Gx1[22]*Gx2[12] + Gx1[23]*Gx2[17] + Gx1[24]*Gx2[22];
+Gx3[23] = + Gx1[20]*Gx2[3] + Gx1[21]*Gx2[8] + Gx1[22]*Gx2[13] + Gx1[23]*Gx2[18] + Gx1[24]*Gx2[23];
+Gx3[24] = + Gx1[20]*Gx2[4] + Gx1[21]*Gx2[9] + Gx1[22]*Gx2[14] + Gx1[23]*Gx2[19] + Gx1[24]*Gx2[24];
+}
+
+void acado_multGxGu( real_t* const Gx1, real_t* const Gu1, real_t* const Gu2 )
+{
+Gu2[0] = + Gx1[0]*Gu1[0] + Gx1[1]*Gu1[2] + Gx1[2]*Gu1[4] + Gx1[3]*Gu1[6] + Gx1[4]*Gu1[8];
+Gu2[1] = + Gx1[0]*Gu1[1] + Gx1[1]*Gu1[3] + Gx1[2]*Gu1[5] + Gx1[3]*Gu1[7] + Gx1[4]*Gu1[9];
+Gu2[2] = + Gx1[5]*Gu1[0] + Gx1[6]*Gu1[2] + Gx1[7]*Gu1[4] + Gx1[8]*Gu1[6] + Gx1[9]*Gu1[8];
+Gu2[3] = + Gx1[5]*Gu1[1] + Gx1[6]*Gu1[3] + Gx1[7]*Gu1[5] + Gx1[8]*Gu1[7] + Gx1[9]*Gu1[9];
+Gu2[4] = + Gx1[10]*Gu1[0] + Gx1[11]*Gu1[2] + Gx1[12]*Gu1[4] + Gx1[13]*Gu1[6] + Gx1[14]*Gu1[8];
+Gu2[5] = + Gx1[10]*Gu1[1] + Gx1[11]*Gu1[3] + Gx1[12]*Gu1[5] + Gx1[13]*Gu1[7] + Gx1[14]*Gu1[9];
+Gu2[6] = + Gx1[15]*Gu1[0] + Gx1[16]*Gu1[2] + Gx1[17]*Gu1[4] + Gx1[18]*Gu1[6] + Gx1[19]*Gu1[8];
+Gu2[7] = + Gx1[15]*Gu1[1] + Gx1[16]*Gu1[3] + Gx1[17]*Gu1[5] + Gx1[18]*Gu1[7] + Gx1[19]*Gu1[9];
+Gu2[8] = + Gx1[20]*Gu1[0] + Gx1[21]*Gu1[2] + Gx1[22]*Gu1[4] + Gx1[23]*Gu1[6] + Gx1[24]*Gu1[8];
+Gu2[9] = + Gx1[20]*Gu1[1] + Gx1[21]*Gu1[3] + Gx1[22]*Gu1[5] + Gx1[23]*Gu1[7] + Gx1[24]*Gu1[9];
+}
+
+void acado_moveGuE( real_t* const Gu1, real_t* const Gu2 )
+{
+Gu2[0] = Gu1[0];
+Gu2[1] = Gu1[1];
+Gu2[2] = Gu1[2];
+Gu2[3] = Gu1[3];
+Gu2[4] = Gu1[4];
+Gu2[5] = Gu1[5];
+Gu2[6] = Gu1[6];
+Gu2[7] = Gu1[7];
+Gu2[8] = Gu1[8];
+Gu2[9] = Gu1[9];
+}
+
+void acado_multBTW1( real_t* const Gu1, real_t* const Gu2, int iRow, int iCol )
+{
+acadoWorkspace.H[(iRow * 80) + (iCol * 2)] = + Gu1[0]*Gu2[0] + Gu1[2]*Gu2[2] + Gu1[4]*Gu2[4] + Gu1[6]*Gu2[6] + Gu1[8]*Gu2[8];
+acadoWorkspace.H[(iRow * 80) + (iCol * 2 + 1)] = + Gu1[0]*Gu2[1] + Gu1[2]*Gu2[3] + Gu1[4]*Gu2[5] + Gu1[6]*Gu2[7] + Gu1[8]*Gu2[9];
+acadoWorkspace.H[(iRow * 80 + 40) + (iCol * 2)] = + Gu1[1]*Gu2[0] + Gu1[3]*Gu2[2] + Gu1[5]*Gu2[4] + Gu1[7]*Gu2[6] + Gu1[9]*Gu2[8];
+acadoWorkspace.H[(iRow * 80 + 40) + (iCol * 2 + 1)] = + Gu1[1]*Gu2[1] + Gu1[3]*Gu2[3] + Gu1[5]*Gu2[5] + Gu1[7]*Gu2[7] + Gu1[9]*Gu2[9];
+}
+
+void acado_multBTW1_R1( real_t* const R11, real_t* const Gu1, real_t* const Gu2, int iRow )
+{
+acadoWorkspace.H[iRow * 82] = + Gu1[0]*Gu2[0] + Gu1[2]*Gu2[2] + Gu1[4]*Gu2[4] + Gu1[6]*Gu2[6] + Gu1[8]*Gu2[8] + R11[0];
+acadoWorkspace.H[iRow * 82 + 1] = + Gu1[0]*Gu2[1] + Gu1[2]*Gu2[3] + Gu1[4]*Gu2[5] + Gu1[6]*Gu2[7] + Gu1[8]*Gu2[9] + R11[1];
+acadoWorkspace.H[iRow * 82 + 40] = + Gu1[1]*Gu2[0] + Gu1[3]*Gu2[2] + Gu1[5]*Gu2[4] + Gu1[7]*Gu2[6] + Gu1[9]*Gu2[8] + R11[2];
+acadoWorkspace.H[iRow * 82 + 41] = + Gu1[1]*Gu2[1] + Gu1[3]*Gu2[3] + Gu1[5]*Gu2[5] + Gu1[7]*Gu2[7] + Gu1[9]*Gu2[9] + R11[3];
+acadoWorkspace.H[iRow * 82] += 1.0000000000000000e-10;
+acadoWorkspace.H[iRow * 82 + 41] += 1.0000000000000000e-10;
+}
+
+void acado_multGxTGu( real_t* const Gx1, real_t* const Gu1, real_t* const Gu2 )
+{
+Gu2[0] = + Gx1[0]*Gu1[0] + Gx1[5]*Gu1[2] + Gx1[10]*Gu1[4] + Gx1[15]*Gu1[6] + Gx1[20]*Gu1[8];
+Gu2[1] = + Gx1[0]*Gu1[1] + Gx1[5]*Gu1[3] + Gx1[10]*Gu1[5] + Gx1[15]*Gu1[7] + Gx1[20]*Gu1[9];
+Gu2[2] = + Gx1[1]*Gu1[0] + Gx1[6]*Gu1[2] + Gx1[11]*Gu1[4] + Gx1[16]*Gu1[6] + Gx1[21]*Gu1[8];
+Gu2[3] = + Gx1[1]*Gu1[1] + Gx1[6]*Gu1[3] + Gx1[11]*Gu1[5] + Gx1[16]*Gu1[7] + Gx1[21]*Gu1[9];
+Gu2[4] = + Gx1[2]*Gu1[0] + Gx1[7]*Gu1[2] + Gx1[12]*Gu1[4] + Gx1[17]*Gu1[6] + Gx1[22]*Gu1[8];
+Gu2[5] = + Gx1[2]*Gu1[1] + Gx1[7]*Gu1[3] + Gx1[12]*Gu1[5] + Gx1[17]*Gu1[7] + Gx1[22]*Gu1[9];
+Gu2[6] = + Gx1[3]*Gu1[0] + Gx1[8]*Gu1[2] + Gx1[13]*Gu1[4] + Gx1[18]*Gu1[6] + Gx1[23]*Gu1[8];
+Gu2[7] = + Gx1[3]*Gu1[1] + Gx1[8]*Gu1[3] + Gx1[13]*Gu1[5] + Gx1[18]*Gu1[7] + Gx1[23]*Gu1[9];
+Gu2[8] = + Gx1[4]*Gu1[0] + Gx1[9]*Gu1[2] + Gx1[14]*Gu1[4] + Gx1[19]*Gu1[6] + Gx1[24]*Gu1[8];
+Gu2[9] = + Gx1[4]*Gu1[1] + Gx1[9]*Gu1[3] + Gx1[14]*Gu1[5] + Gx1[19]*Gu1[7] + Gx1[24]*Gu1[9];
+}
+
+void acado_multQEW2( real_t* const Q11, real_t* const Gu1, real_t* const Gu2, real_t* const Gu3 )
+{
+Gu3[0] = + Q11[0]*Gu1[0] + Q11[1]*Gu1[2] + Q11[2]*Gu1[4] + Q11[3]*Gu1[6] + Q11[4]*Gu1[8] + Gu2[0];
+Gu3[1] = + Q11[0]*Gu1[1] + Q11[1]*Gu1[3] + Q11[2]*Gu1[5] + Q11[3]*Gu1[7] + Q11[4]*Gu1[9] + Gu2[1];
+Gu3[2] = + Q11[5]*Gu1[0] + Q11[6]*Gu1[2] + Q11[7]*Gu1[4] + Q11[8]*Gu1[6] + Q11[9]*Gu1[8] + Gu2[2];
+Gu3[3] = + Q11[5]*Gu1[1] + Q11[6]*Gu1[3] + Q11[7]*Gu1[5] + Q11[8]*Gu1[7] + Q11[9]*Gu1[9] + Gu2[3];
+Gu3[4] = + Q11[10]*Gu1[0] + Q11[11]*Gu1[2] + Q11[12]*Gu1[4] + Q11[13]*Gu1[6] + Q11[14]*Gu1[8] + Gu2[4];
+Gu3[5] = + Q11[10]*Gu1[1] + Q11[11]*Gu1[3] + Q11[12]*Gu1[5] + Q11[13]*Gu1[7] + Q11[14]*Gu1[9] + Gu2[5];
+Gu3[6] = + Q11[15]*Gu1[0] + Q11[16]*Gu1[2] + Q11[17]*Gu1[4] + Q11[18]*Gu1[6] + Q11[19]*Gu1[8] + Gu2[6];
+Gu3[7] = + Q11[15]*Gu1[1] + Q11[16]*Gu1[3] + Q11[17]*Gu1[5] + Q11[18]*Gu1[7] + Q11[19]*Gu1[9] + Gu2[7];
+Gu3[8] = + Q11[20]*Gu1[0] + Q11[21]*Gu1[2] + Q11[22]*Gu1[4] + Q11[23]*Gu1[6] + Q11[24]*Gu1[8] + Gu2[8];
+Gu3[9] = + Q11[20]*Gu1[1] + Q11[21]*Gu1[3] + Q11[22]*Gu1[5] + Q11[23]*Gu1[7] + Q11[24]*Gu1[9] + Gu2[9];
+}
+
+void acado_macATw1QDy( real_t* const Gx1, real_t* const w11, real_t* const w12, real_t* const w13 )
+{
+w13[0] = + Gx1[0]*w11[0] + Gx1[5]*w11[1] + Gx1[10]*w11[2] + Gx1[15]*w11[3] + Gx1[20]*w11[4] + w12[0];
+w13[1] = + Gx1[1]*w11[0] + Gx1[6]*w11[1] + Gx1[11]*w11[2] + Gx1[16]*w11[3] + Gx1[21]*w11[4] + w12[1];
+w13[2] = + Gx1[2]*w11[0] + Gx1[7]*w11[1] + Gx1[12]*w11[2] + Gx1[17]*w11[3] + Gx1[22]*w11[4] + w12[2];
+w13[3] = + Gx1[3]*w11[0] + Gx1[8]*w11[1] + Gx1[13]*w11[2] + Gx1[18]*w11[3] + Gx1[23]*w11[4] + w12[3];
+w13[4] = + Gx1[4]*w11[0] + Gx1[9]*w11[1] + Gx1[14]*w11[2] + Gx1[19]*w11[3] + Gx1[24]*w11[4] + w12[4];
+}
+
+void acado_macBTw1( real_t* const Gu1, real_t* const w11, real_t* const U1 )
+{
+U1[0] += + Gu1[0]*w11[0] + Gu1[2]*w11[1] + Gu1[4]*w11[2] + Gu1[6]*w11[3] + Gu1[8]*w11[4];
+U1[1] += + Gu1[1]*w11[0] + Gu1[3]*w11[1] + Gu1[5]*w11[2] + Gu1[7]*w11[3] + Gu1[9]*w11[4];
+}
+
+void acado_macQSbarW2( real_t* const Q11, real_t* const w11, real_t* const w12, real_t* const w13 )
+{
+w13[0] = + Q11[0]*w11[0] + Q11[1]*w11[1] + Q11[2]*w11[2] + Q11[3]*w11[3] + Q11[4]*w11[4] + w12[0];
+w13[1] = + Q11[5]*w11[0] + Q11[6]*w11[1] + Q11[7]*w11[2] + Q11[8]*w11[3] + Q11[9]*w11[4] + w12[1];
+w13[2] = + Q11[10]*w11[0] + Q11[11]*w11[1] + Q11[12]*w11[2] + Q11[13]*w11[3] + Q11[14]*w11[4] + w12[2];
+w13[3] = + Q11[15]*w11[0] + Q11[16]*w11[1] + Q11[17]*w11[2] + Q11[18]*w11[3] + Q11[19]*w11[4] + w12[3];
+w13[4] = + Q11[20]*w11[0] + Q11[21]*w11[1] + Q11[22]*w11[2] + Q11[23]*w11[3] + Q11[24]*w11[4] + w12[4];
+}
+
+void acado_macASbar( real_t* const Gx1, real_t* const w11, real_t* const w12 )
+{
+w12[0] += + Gx1[0]*w11[0] + Gx1[1]*w11[1] + Gx1[2]*w11[2] + Gx1[3]*w11[3] + Gx1[4]*w11[4];
+w12[1] += + Gx1[5]*w11[0] + Gx1[6]*w11[1] + Gx1[7]*w11[2] + Gx1[8]*w11[3] + Gx1[9]*w11[4];
+w12[2] += + Gx1[10]*w11[0] + Gx1[11]*w11[1] + Gx1[12]*w11[2] + Gx1[13]*w11[3] + Gx1[14]*w11[4];
+w12[3] += + Gx1[15]*w11[0] + Gx1[16]*w11[1] + Gx1[17]*w11[2] + Gx1[18]*w11[3] + Gx1[19]*w11[4];
+w12[4] += + Gx1[20]*w11[0] + Gx1[21]*w11[1] + Gx1[22]*w11[2] + Gx1[23]*w11[3] + Gx1[24]*w11[4];
+}
+
+void acado_expansionStep( real_t* const Gx1, real_t* const Gu1, real_t* const U1, real_t* const w11, real_t* const w12 )
+{
+w12[0] += + Gx1[0]*w11[0] + Gx1[1]*w11[1] + Gx1[2]*w11[2] + Gx1[3]*w11[3] + Gx1[4]*w11[4];
+w12[1] += + Gx1[5]*w11[0] + Gx1[6]*w11[1] + Gx1[7]*w11[2] + Gx1[8]*w11[3] + Gx1[9]*w11[4];
+w12[2] += + Gx1[10]*w11[0] + Gx1[11]*w11[1] + Gx1[12]*w11[2] + Gx1[13]*w11[3] + Gx1[14]*w11[4];
+w12[3] += + Gx1[15]*w11[0] + Gx1[16]*w11[1] + Gx1[17]*w11[2] + Gx1[18]*w11[3] + Gx1[19]*w11[4];
+w12[4] += + Gx1[20]*w11[0] + Gx1[21]*w11[1] + Gx1[22]*w11[2] + Gx1[23]*w11[3] + Gx1[24]*w11[4];
+w12[0] += + Gu1[0]*U1[0] + Gu1[1]*U1[1];
+w12[1] += + Gu1[2]*U1[0] + Gu1[3]*U1[1];
+w12[2] += + Gu1[4]*U1[0] + Gu1[5]*U1[1];
+w12[3] += + Gu1[6]*U1[0] + Gu1[7]*U1[1];
+w12[4] += + Gu1[8]*U1[0] + Gu1[9]*U1[1];
+}
+
+void acado_copyHTH( int iRow, int iCol )
+{
+acadoWorkspace.H[(iRow * 80) + (iCol * 2)] = acadoWorkspace.H[(iCol * 80) + (iRow * 2)];
+acadoWorkspace.H[(iRow * 80) + (iCol * 2 + 1)] = acadoWorkspace.H[(iCol * 80 + 40) + (iRow * 2)];
+acadoWorkspace.H[(iRow * 80 + 40) + (iCol * 2)] = acadoWorkspace.H[(iCol * 80) + (iRow * 2 + 1)];
+acadoWorkspace.H[(iRow * 80 + 40) + (iCol * 2 + 1)] = acadoWorkspace.H[(iCol * 80 + 40) + (iRow * 2 + 1)];
+}
+
+void acado_multRDy( real_t* const R2, real_t* const Dy1, real_t* const RDy1 )
+{
+RDy1[0] = + R2[0]*Dy1[0] + R2[1]*Dy1[1] + R2[2]*Dy1[2] + R2[3]*Dy1[3] + R2[4]*Dy1[4] + R2[5]*Dy1[5] + R2[6]*Dy1[6] + R2[7]*Dy1[7];
+RDy1[1] = + R2[8]*Dy1[0] + R2[9]*Dy1[1] + R2[10]*Dy1[2] + R2[11]*Dy1[3] + R2[12]*Dy1[4] + R2[13]*Dy1[5] + R2[14]*Dy1[6] + R2[15]*Dy1[7];
+}
+
+void acado_multQDy( real_t* const Q2, real_t* const Dy1, real_t* const QDy1 )
+{
+QDy1[0] = + Q2[0]*Dy1[0] + Q2[1]*Dy1[1] + Q2[2]*Dy1[2] + Q2[3]*Dy1[3] + Q2[4]*Dy1[4] + Q2[5]*Dy1[5] + Q2[6]*Dy1[6] + Q2[7]*Dy1[7];
+QDy1[1] = + Q2[8]*Dy1[0] + Q2[9]*Dy1[1] + Q2[10]*Dy1[2] + Q2[11]*Dy1[3] + Q2[12]*Dy1[4] + Q2[13]*Dy1[5] + Q2[14]*Dy1[6] + Q2[15]*Dy1[7];
+QDy1[2] = + Q2[16]*Dy1[0] + Q2[17]*Dy1[1] + Q2[18]*Dy1[2] + Q2[19]*Dy1[3] + Q2[20]*Dy1[4] + Q2[21]*Dy1[5] + Q2[22]*Dy1[6] + Q2[23]*Dy1[7];
+QDy1[3] = + Q2[24]*Dy1[0] + Q2[25]*Dy1[1] + Q2[26]*Dy1[2] + Q2[27]*Dy1[3] + Q2[28]*Dy1[4] + Q2[29]*Dy1[5] + Q2[30]*Dy1[6] + Q2[31]*Dy1[7];
+QDy1[4] = + Q2[32]*Dy1[0] + Q2[33]*Dy1[1] + Q2[34]*Dy1[2] + Q2[35]*Dy1[3] + Q2[36]*Dy1[4] + Q2[37]*Dy1[5] + Q2[38]*Dy1[6] + Q2[39]*Dy1[7];
+}
+
+void acado_multHxE( real_t* const Hx, real_t* const E, int row, int col )
+{
+acadoWorkspace.A[(row * 400 + 1600) + (col * 2)] = + Hx[0]*E[0] + Hx[1]*E[2] + Hx[2]*E[4] + Hx[3]*E[6] + Hx[4]*E[8];
+acadoWorkspace.A[(row * 400 + 1600) + (col * 2 + 1)] = + Hx[0]*E[1] + Hx[1]*E[3] + Hx[2]*E[5] + Hx[3]*E[7] + Hx[4]*E[9];
+acadoWorkspace.A[(row * 400 + 1640) + (col * 2)] = + Hx[5]*E[0] + Hx[6]*E[2] + Hx[7]*E[4] + Hx[8]*E[6] + Hx[9]*E[8];
+acadoWorkspace.A[(row * 400 + 1640) + (col * 2 + 1)] = + Hx[5]*E[1] + Hx[6]*E[3] + Hx[7]*E[5] + Hx[8]*E[7] + Hx[9]*E[9];
+acadoWorkspace.A[(row * 400 + 1680) + (col * 2)] = + Hx[10]*E[0] + Hx[11]*E[2] + Hx[12]*E[4] + Hx[13]*E[6] + Hx[14]*E[8];
+acadoWorkspace.A[(row * 400 + 1680) + (col * 2 + 1)] = + Hx[10]*E[1] + Hx[11]*E[3] + Hx[12]*E[5] + Hx[13]*E[7] + Hx[14]*E[9];
+acadoWorkspace.A[(row * 400 + 1720) + (col * 2)] = + Hx[15]*E[0] + Hx[16]*E[2] + Hx[17]*E[4] + Hx[18]*E[6] + Hx[19]*E[8];
+acadoWorkspace.A[(row * 400 + 1720) + (col * 2 + 1)] = + Hx[15]*E[1] + Hx[16]*E[3] + Hx[17]*E[5] + Hx[18]*E[7] + Hx[19]*E[9];
+acadoWorkspace.A[(row * 400 + 1760) + (col * 2)] = + Hx[20]*E[0] + Hx[21]*E[2] + Hx[22]*E[4] + Hx[23]*E[6] + Hx[24]*E[8];
+acadoWorkspace.A[(row * 400 + 1760) + (col * 2 + 1)] = + Hx[20]*E[1] + Hx[21]*E[3] + Hx[22]*E[5] + Hx[23]*E[7] + Hx[24]*E[9];
+acadoWorkspace.A[(row * 400 + 1800) + (col * 2)] = + Hx[25]*E[0] + Hx[26]*E[2] + Hx[27]*E[4] + Hx[28]*E[6] + Hx[29]*E[8];
+acadoWorkspace.A[(row * 400 + 1800) + (col * 2 + 1)] = + Hx[25]*E[1] + Hx[26]*E[3] + Hx[27]*E[5] + Hx[28]*E[7] + Hx[29]*E[9];
+acadoWorkspace.A[(row * 400 + 1840) + (col * 2)] = + Hx[30]*E[0] + Hx[31]*E[2] + Hx[32]*E[4] + Hx[33]*E[6] + Hx[34]*E[8];
+acadoWorkspace.A[(row * 400 + 1840) + (col * 2 + 1)] = + Hx[30]*E[1] + Hx[31]*E[3] + Hx[32]*E[5] + Hx[33]*E[7] + Hx[34]*E[9];
+acadoWorkspace.A[(row * 400 + 1880) + (col * 2)] = + Hx[35]*E[0] + Hx[36]*E[2] + Hx[37]*E[4] + Hx[38]*E[6] + Hx[39]*E[8];
+acadoWorkspace.A[(row * 400 + 1880) + (col * 2 + 1)] = + Hx[35]*E[1] + Hx[36]*E[3] + Hx[37]*E[5] + Hx[38]*E[7] + Hx[39]*E[9];
+acadoWorkspace.A[(row * 400 + 1920) + (col * 2)] = + Hx[40]*E[0] + Hx[41]*E[2] + Hx[42]*E[4] + Hx[43]*E[6] + Hx[44]*E[8];
+acadoWorkspace.A[(row * 400 + 1920) + (col * 2 + 1)] = + Hx[40]*E[1] + Hx[41]*E[3] + Hx[42]*E[5] + Hx[43]*E[7] + Hx[44]*E[9];
+acadoWorkspace.A[(row * 400 + 1960) + (col * 2)] = + Hx[45]*E[0] + Hx[46]*E[2] + Hx[47]*E[4] + Hx[48]*E[6] + Hx[49]*E[8];
+acadoWorkspace.A[(row * 400 + 1960) + (col * 2 + 1)] = + Hx[45]*E[1] + Hx[46]*E[3] + Hx[47]*E[5] + Hx[48]*E[7] + Hx[49]*E[9];
+}
+
+void acado_macHxd( real_t* const Hx, real_t* const tmpd, real_t* const lbA, real_t* const ubA )
+{
+acadoWorkspace.evHxd[0] = + Hx[0]*tmpd[0] + Hx[1]*tmpd[1] + Hx[2]*tmpd[2] + Hx[3]*tmpd[3] + Hx[4]*tmpd[4];
+acadoWorkspace.evHxd[1] = + Hx[5]*tmpd[0] + Hx[6]*tmpd[1] + Hx[7]*tmpd[2] + Hx[8]*tmpd[3] + Hx[9]*tmpd[4];
+acadoWorkspace.evHxd[2] = + Hx[10]*tmpd[0] + Hx[11]*tmpd[1] + Hx[12]*tmpd[2] + Hx[13]*tmpd[3] + Hx[14]*tmpd[4];
+acadoWorkspace.evHxd[3] = + Hx[15]*tmpd[0] + Hx[16]*tmpd[1] + Hx[17]*tmpd[2] + Hx[18]*tmpd[3] + Hx[19]*tmpd[4];
+acadoWorkspace.evHxd[4] = + Hx[20]*tmpd[0] + Hx[21]*tmpd[1] + Hx[22]*tmpd[2] + Hx[23]*tmpd[3] + Hx[24]*tmpd[4];
+acadoWorkspace.evHxd[5] = + Hx[25]*tmpd[0] + Hx[26]*tmpd[1] + Hx[27]*tmpd[2] + Hx[28]*tmpd[3] + Hx[29]*tmpd[4];
+acadoWorkspace.evHxd[6] = + Hx[30]*tmpd[0] + Hx[31]*tmpd[1] + Hx[32]*tmpd[2] + Hx[33]*tmpd[3] + Hx[34]*tmpd[4];
+acadoWorkspace.evHxd[7] = + Hx[35]*tmpd[0] + Hx[36]*tmpd[1] + Hx[37]*tmpd[2] + Hx[38]*tmpd[3] + Hx[39]*tmpd[4];
+acadoWorkspace.evHxd[8] = + Hx[40]*tmpd[0] + Hx[41]*tmpd[1] + Hx[42]*tmpd[2] + Hx[43]*tmpd[3] + Hx[44]*tmpd[4];
+acadoWorkspace.evHxd[9] = + Hx[45]*tmpd[0] + Hx[46]*tmpd[1] + Hx[47]*tmpd[2] + Hx[48]*tmpd[3] + Hx[49]*tmpd[4];
+lbA[0] -= acadoWorkspace.evHxd[0];
+lbA[1] -= acadoWorkspace.evHxd[1];
+lbA[2] -= acadoWorkspace.evHxd[2];
+lbA[3] -= acadoWorkspace.evHxd[3];
+lbA[4] -= acadoWorkspace.evHxd[4];
+lbA[5] -= acadoWorkspace.evHxd[5];
+lbA[6] -= acadoWorkspace.evHxd[6];
+lbA[7] -= acadoWorkspace.evHxd[7];
+lbA[8] -= acadoWorkspace.evHxd[8];
+lbA[9] -= acadoWorkspace.evHxd[9];
+ubA[0] -= acadoWorkspace.evHxd[0];
+ubA[1] -= acadoWorkspace.evHxd[1];
+ubA[2] -= acadoWorkspace.evHxd[2];
+ubA[3] -= acadoWorkspace.evHxd[3];
+ubA[4] -= acadoWorkspace.evHxd[4];
+ubA[5] -= acadoWorkspace.evHxd[5];
+ubA[6] -= acadoWorkspace.evHxd[6];
+ubA[7] -= acadoWorkspace.evHxd[7];
+ubA[8] -= acadoWorkspace.evHxd[8];
+ubA[9] -= acadoWorkspace.evHxd[9];
+}
+
+void acado_condensePrep(  )
+{
+int lRun1;
+int lRun2;
+int lRun3;
+int lRun4;
+int lRun5;
+/** Row vector of size: 40 */
+static const int xBoundIndices[ 40 ] = 
+{ 8, 9, 13, 14, 18, 19, 23, 24, 28, 29, 33, 34, 38, 39, 43, 44, 48, 49, 53, 54, 58, 59, 63, 64, 68, 69, 73, 74, 78, 79, 83, 84, 88, 89, 93, 94, 98, 99, 103, 104 };
+acado_moveGxT( acadoWorkspace.evGx, acadoWorkspace.C );
+acado_multGxGx( &(acadoWorkspace.evGx[ 25 ]), acadoWorkspace.C, &(acadoWorkspace.C[ 25 ]) );
+acado_multGxGx( &(acadoWorkspace.evGx[ 50 ]), &(acadoWorkspace.C[ 25 ]), &(acadoWorkspace.C[ 50 ]) );
+acado_multGxGx( &(acadoWorkspace.evGx[ 75 ]), &(acadoWorkspace.C[ 50 ]), &(acadoWorkspace.C[ 75 ]) );
+acado_multGxGx( &(acadoWorkspace.evGx[ 100 ]), &(acadoWorkspace.C[ 75 ]), &(acadoWorkspace.C[ 100 ]) );
+acado_multGxGx( &(acadoWorkspace.evGx[ 125 ]), &(acadoWorkspace.C[ 100 ]), &(acadoWorkspace.C[ 125 ]) );
+acado_multGxGx( &(acadoWorkspace.evGx[ 150 ]), &(acadoWorkspace.C[ 125 ]), &(acadoWorkspace.C[ 150 ]) );
+acado_multGxGx( &(acadoWorkspace.evGx[ 175 ]), &(acadoWorkspace.C[ 150 ]), &(acadoWorkspace.C[ 175 ]) );
+acado_multGxGx( &(acadoWorkspace.evGx[ 200 ]), &(acadoWorkspace.C[ 175 ]), &(acadoWorkspace.C[ 200 ]) );
+acado_multGxGx( &(acadoWorkspace.evGx[ 225 ]), &(acadoWorkspace.C[ 200 ]), &(acadoWorkspace.C[ 225 ]) );
+acado_multGxGx( &(acadoWorkspace.evGx[ 250 ]), &(acadoWorkspace.C[ 225 ]), &(acadoWorkspace.C[ 250 ]) );
+acado_multGxGx( &(acadoWorkspace.evGx[ 275 ]), &(acadoWorkspace.C[ 250 ]), &(acadoWorkspace.C[ 275 ]) );
+acado_multGxGx( &(acadoWorkspace.evGx[ 300 ]), &(acadoWorkspace.C[ 275 ]), &(acadoWorkspace.C[ 300 ]) );
+acado_multGxGx( &(acadoWorkspace.evGx[ 325 ]), &(acadoWorkspace.C[ 300 ]), &(acadoWorkspace.C[ 325 ]) );
+acado_multGxGx( &(acadoWorkspace.evGx[ 350 ]), &(acadoWorkspace.C[ 325 ]), &(acadoWorkspace.C[ 350 ]) );
+acado_multGxGx( &(acadoWorkspace.evGx[ 375 ]), &(acadoWorkspace.C[ 350 ]), &(acadoWorkspace.C[ 375 ]) );
+acado_multGxGx( &(acadoWorkspace.evGx[ 400 ]), &(acadoWorkspace.C[ 375 ]), &(acadoWorkspace.C[ 400 ]) );
+acado_multGxGx( &(acadoWorkspace.evGx[ 425 ]), &(acadoWorkspace.C[ 400 ]), &(acadoWorkspace.C[ 425 ]) );
+acado_multGxGx( &(acadoWorkspace.evGx[ 450 ]), &(acadoWorkspace.C[ 425 ]), &(acadoWorkspace.C[ 450 ]) );
+acado_multGxGx( &(acadoWorkspace.evGx[ 475 ]), &(acadoWorkspace.C[ 450 ]), &(acadoWorkspace.C[ 475 ]) );
+for (lRun2 = 0; lRun2 < 20; ++lRun2)
+{
+lRun3 = ((lRun2) * (lRun2 * -1 + 41)) / (2);
+acado_moveGuE( &(acadoWorkspace.evGu[ lRun2 * 10 ]), &(acadoWorkspace.E[ lRun3 * 10 ]) );
+for (lRun1 = 1; lRun1 < lRun2 * -1 + 20; ++lRun1)
+{
+acado_multGxGu( &(acadoWorkspace.evGx[ ((((lRun2) + (lRun1)) * (5)) * (5)) + (0) ]), &(acadoWorkspace.E[ (((((lRun3) + (lRun1)) - (1)) * (5)) * (2)) + (0) ]), &(acadoWorkspace.E[ ((((lRun3) + (lRun1)) * (5)) * (2)) + (0) ]) );
+}
+
+acado_multGxGu( acadoWorkspace.QN1, &(acadoWorkspace.E[ ((((((lRun3) - (lRun2)) + (20)) - (1)) * (5)) * (2)) + (0) ]), acadoWorkspace.W1 );
+for (lRun1 = 19; lRun2 < lRun1; --lRun1)
+{
+acado_multBTW1( &(acadoWorkspace.evGu[ lRun1 * 10 ]), acadoWorkspace.W1, lRun1, lRun2 );
+acado_multGxTGu( &(acadoWorkspace.evGx[ lRun1 * 25 ]), acadoWorkspace.W1, acadoWorkspace.W2 );
+acado_multQEW2( &(acadoWorkspace.Q1[ lRun1 * 25 ]), &(acadoWorkspace.E[ ((((((lRun3) + (lRun1)) - (lRun2)) - (1)) * (5)) * (2)) + (0) ]), acadoWorkspace.W2, acadoWorkspace.W1 );
+}
+acado_multBTW1_R1( &(acadoWorkspace.R1[ lRun2 * 4 ]), &(acadoWorkspace.evGu[ lRun2 * 10 ]), acadoWorkspace.W1, lRun2 );
+}
+
+acado_copyHTH( 0, 1 );
+acado_copyHTH( 0, 2 );
+acado_copyHTH( 1, 2 );
+acado_copyHTH( 0, 3 );
+acado_copyHTH( 1, 3 );
+acado_copyHTH( 2, 3 );
+acado_copyHTH( 0, 4 );
+acado_copyHTH( 1, 4 );
+acado_copyHTH( 2, 4 );
+acado_copyHTH( 3, 4 );
+acado_copyHTH( 0, 5 );
+acado_copyHTH( 1, 5 );
+acado_copyHTH( 2, 5 );
+acado_copyHTH( 3, 5 );
+acado_copyHTH( 4, 5 );
+acado_copyHTH( 0, 6 );
+acado_copyHTH( 1, 6 );
+acado_copyHTH( 2, 6 );
+acado_copyHTH( 3, 6 );
+acado_copyHTH( 4, 6 );
+acado_copyHTH( 5, 6 );
+acado_copyHTH( 0, 7 );
+acado_copyHTH( 1, 7 );
+acado_copyHTH( 2, 7 );
+acado_copyHTH( 3, 7 );
+acado_copyHTH( 4, 7 );
+acado_copyHTH( 5, 7 );
+acado_copyHTH( 6, 7 );
+acado_copyHTH( 0, 8 );
+acado_copyHTH( 1, 8 );
+acado_copyHTH( 2, 8 );
+acado_copyHTH( 3, 8 );
+acado_copyHTH( 4, 8 );
+acado_copyHTH( 5, 8 );
+acado_copyHTH( 6, 8 );
+acado_copyHTH( 7, 8 );
+acado_copyHTH( 0, 9 );
+acado_copyHTH( 1, 9 );
+acado_copyHTH( 2, 9 );
+acado_copyHTH( 3, 9 );
+acado_copyHTH( 4, 9 );
+acado_copyHTH( 5, 9 );
+acado_copyHTH( 6, 9 );
+acado_copyHTH( 7, 9 );
+acado_copyHTH( 8, 9 );
+acado_copyHTH( 0, 10 );
+acado_copyHTH( 1, 10 );
+acado_copyHTH( 2, 10 );
+acado_copyHTH( 3, 10 );
+acado_copyHTH( 4, 10 );
+acado_copyHTH( 5, 10 );
+acado_copyHTH( 6, 10 );
+acado_copyHTH( 7, 10 );
+acado_copyHTH( 8, 10 );
+acado_copyHTH( 9, 10 );
+acado_copyHTH( 0, 11 );
+acado_copyHTH( 1, 11 );
+acado_copyHTH( 2, 11 );
+acado_copyHTH( 3, 11 );
+acado_copyHTH( 4, 11 );
+acado_copyHTH( 5, 11 );
+acado_copyHTH( 6, 11 );
+acado_copyHTH( 7, 11 );
+acado_copyHTH( 8, 11 );
+acado_copyHTH( 9, 11 );
+acado_copyHTH( 10, 11 );
+acado_copyHTH( 0, 12 );
+acado_copyHTH( 1, 12 );
+acado_copyHTH( 2, 12 );
+acado_copyHTH( 3, 12 );
+acado_copyHTH( 4, 12 );
+acado_copyHTH( 5, 12 );
+acado_copyHTH( 6, 12 );
+acado_copyHTH( 7, 12 );
+acado_copyHTH( 8, 12 );
+acado_copyHTH( 9, 12 );
+acado_copyHTH( 10, 12 );
+acado_copyHTH( 11, 12 );
+acado_copyHTH( 0, 13 );
+acado_copyHTH( 1, 13 );
+acado_copyHTH( 2, 13 );
+acado_copyHTH( 3, 13 );
+acado_copyHTH( 4, 13 );
+acado_copyHTH( 5, 13 );
+acado_copyHTH( 6, 13 );
+acado_copyHTH( 7, 13 );
+acado_copyHTH( 8, 13 );
+acado_copyHTH( 9, 13 );
+acado_copyHTH( 10, 13 );
+acado_copyHTH( 11, 13 );
+acado_copyHTH( 12, 13 );
+acado_copyHTH( 0, 14 );
+acado_copyHTH( 1, 14 );
+acado_copyHTH( 2, 14 );
+acado_copyHTH( 3, 14 );
+acado_copyHTH( 4, 14 );
+acado_copyHTH( 5, 14 );
+acado_copyHTH( 6, 14 );
+acado_copyHTH( 7, 14 );
+acado_copyHTH( 8, 14 );
+acado_copyHTH( 9, 14 );
+acado_copyHTH( 10, 14 );
+acado_copyHTH( 11, 14 );
+acado_copyHTH( 12, 14 );
+acado_copyHTH( 13, 14 );
+acado_copyHTH( 0, 15 );
+acado_copyHTH( 1, 15 );
+acado_copyHTH( 2, 15 );
+acado_copyHTH( 3, 15 );
+acado_copyHTH( 4, 15 );
+acado_copyHTH( 5, 15 );
+acado_copyHTH( 6, 15 );
+acado_copyHTH( 7, 15 );
+acado_copyHTH( 8, 15 );
+acado_copyHTH( 9, 15 );
+acado_copyHTH( 10, 15 );
+acado_copyHTH( 11, 15 );
+acado_copyHTH( 12, 15 );
+acado_copyHTH( 13, 15 );
+acado_copyHTH( 14, 15 );
+acado_copyHTH( 0, 16 );
+acado_copyHTH( 1, 16 );
+acado_copyHTH( 2, 16 );
+acado_copyHTH( 3, 16 );
+acado_copyHTH( 4, 16 );
+acado_copyHTH( 5, 16 );
+acado_copyHTH( 6, 16 );
+acado_copyHTH( 7, 16 );
+acado_copyHTH( 8, 16 );
+acado_copyHTH( 9, 16 );
+acado_copyHTH( 10, 16 );
+acado_copyHTH( 11, 16 );
+acado_copyHTH( 12, 16 );
+acado_copyHTH( 13, 16 );
+acado_copyHTH( 14, 16 );
+acado_copyHTH( 15, 16 );
+acado_copyHTH( 0, 17 );
+acado_copyHTH( 1, 17 );
+acado_copyHTH( 2, 17 );
+acado_copyHTH( 3, 17 );
+acado_copyHTH( 4, 17 );
+acado_copyHTH( 5, 17 );
+acado_copyHTH( 6, 17 );
+acado_copyHTH( 7, 17 );
+acado_copyHTH( 8, 17 );
+acado_copyHTH( 9, 17 );
+acado_copyHTH( 10, 17 );
+acado_copyHTH( 11, 17 );
+acado_copyHTH( 12, 17 );
+acado_copyHTH( 13, 17 );
+acado_copyHTH( 14, 17 );
+acado_copyHTH( 15, 17 );
+acado_copyHTH( 16, 17 );
+acado_copyHTH( 0, 18 );
+acado_copyHTH( 1, 18 );
+acado_copyHTH( 2, 18 );
+acado_copyHTH( 3, 18 );
+acado_copyHTH( 4, 18 );
+acado_copyHTH( 5, 18 );
+acado_copyHTH( 6, 18 );
+acado_copyHTH( 7, 18 );
+acado_copyHTH( 8, 18 );
+acado_copyHTH( 9, 18 );
+acado_copyHTH( 10, 18 );
+acado_copyHTH( 11, 18 );
+acado_copyHTH( 12, 18 );
+acado_copyHTH( 13, 18 );
+acado_copyHTH( 14, 18 );
+acado_copyHTH( 15, 18 );
+acado_copyHTH( 16, 18 );
+acado_copyHTH( 17, 18 );
+acado_copyHTH( 0, 19 );
+acado_copyHTH( 1, 19 );
+acado_copyHTH( 2, 19 );
+acado_copyHTH( 3, 19 );
+acado_copyHTH( 4, 19 );
+acado_copyHTH( 5, 19 );
+acado_copyHTH( 6, 19 );
+acado_copyHTH( 7, 19 );
+acado_copyHTH( 8, 19 );
+acado_copyHTH( 9, 19 );
+acado_copyHTH( 10, 19 );
+acado_copyHTH( 11, 19 );
+acado_copyHTH( 12, 19 );
+acado_copyHTH( 13, 19 );
+acado_copyHTH( 14, 19 );
+acado_copyHTH( 15, 19 );
+acado_copyHTH( 16, 19 );
+acado_copyHTH( 17, 19 );
+acado_copyHTH( 18, 19 );
+
+acadoWorkspace.sbar[5] = acadoWorkspace.d[0];
+acadoWorkspace.sbar[6] = acadoWorkspace.d[1];
+acadoWorkspace.sbar[7] = acadoWorkspace.d[2];
+acadoWorkspace.sbar[8] = acadoWorkspace.d[3];
+acadoWorkspace.sbar[9] = acadoWorkspace.d[4];
+acadoWorkspace.sbar[10] = acadoWorkspace.d[5];
+acadoWorkspace.sbar[11] = acadoWorkspace.d[6];
+acadoWorkspace.sbar[12] = acadoWorkspace.d[7];
+acadoWorkspace.sbar[13] = acadoWorkspace.d[8];
+acadoWorkspace.sbar[14] = acadoWorkspace.d[9];
+acadoWorkspace.sbar[15] = acadoWorkspace.d[10];
+acadoWorkspace.sbar[16] = acadoWorkspace.d[11];
+acadoWorkspace.sbar[17] = acadoWorkspace.d[12];
+acadoWorkspace.sbar[18] = acadoWorkspace.d[13];
+acadoWorkspace.sbar[19] = acadoWorkspace.d[14];
+acadoWorkspace.sbar[20] = acadoWorkspace.d[15];
+acadoWorkspace.sbar[21] = acadoWorkspace.d[16];
+acadoWorkspace.sbar[22] = acadoWorkspace.d[17];
+acadoWorkspace.sbar[23] = acadoWorkspace.d[18];
+acadoWorkspace.sbar[24] = acadoWorkspace.d[19];
+acadoWorkspace.sbar[25] = acadoWorkspace.d[20];
+acadoWorkspace.sbar[26] = acadoWorkspace.d[21];
+acadoWorkspace.sbar[27] = acadoWorkspace.d[22];
+acadoWorkspace.sbar[28] = acadoWorkspace.d[23];
+acadoWorkspace.sbar[29] = acadoWorkspace.d[24];
+acadoWorkspace.sbar[30] = acadoWorkspace.d[25];
+acadoWorkspace.sbar[31] = acadoWorkspace.d[26];
+acadoWorkspace.sbar[32] = acadoWorkspace.d[27];
+acadoWorkspace.sbar[33] = acadoWorkspace.d[28];
+acadoWorkspace.sbar[34] = acadoWorkspace.d[29];
+acadoWorkspace.sbar[35] = acadoWorkspace.d[30];
+acadoWorkspace.sbar[36] = acadoWorkspace.d[31];
+acadoWorkspace.sbar[37] = acadoWorkspace.d[32];
+acadoWorkspace.sbar[38] = acadoWorkspace.d[33];
+acadoWorkspace.sbar[39] = acadoWorkspace.d[34];
+acadoWorkspace.sbar[40] = acadoWorkspace.d[35];
+acadoWorkspace.sbar[41] = acadoWorkspace.d[36];
+acadoWorkspace.sbar[42] = acadoWorkspace.d[37];
+acadoWorkspace.sbar[43] = acadoWorkspace.d[38];
+acadoWorkspace.sbar[44] = acadoWorkspace.d[39];
+acadoWorkspace.sbar[45] = acadoWorkspace.d[40];
+acadoWorkspace.sbar[46] = acadoWorkspace.d[41];
+acadoWorkspace.sbar[47] = acadoWorkspace.d[42];
+acadoWorkspace.sbar[48] = acadoWorkspace.d[43];
+acadoWorkspace.sbar[49] = acadoWorkspace.d[44];
+acadoWorkspace.sbar[50] = acadoWorkspace.d[45];
+acadoWorkspace.sbar[51] = acadoWorkspace.d[46];
+acadoWorkspace.sbar[52] = acadoWorkspace.d[47];
+acadoWorkspace.sbar[53] = acadoWorkspace.d[48];
+acadoWorkspace.sbar[54] = acadoWorkspace.d[49];
+acadoWorkspace.sbar[55] = acadoWorkspace.d[50];
+acadoWorkspace.sbar[56] = acadoWorkspace.d[51];
+acadoWorkspace.sbar[57] = acadoWorkspace.d[52];
+acadoWorkspace.sbar[58] = acadoWorkspace.d[53];
+acadoWorkspace.sbar[59] = acadoWorkspace.d[54];
+acadoWorkspace.sbar[60] = acadoWorkspace.d[55];
+acadoWorkspace.sbar[61] = acadoWorkspace.d[56];
+acadoWorkspace.sbar[62] = acadoWorkspace.d[57];
+acadoWorkspace.sbar[63] = acadoWorkspace.d[58];
+acadoWorkspace.sbar[64] = acadoWorkspace.d[59];
+acadoWorkspace.sbar[65] = acadoWorkspace.d[60];
+acadoWorkspace.sbar[66] = acadoWorkspace.d[61];
+acadoWorkspace.sbar[67] = acadoWorkspace.d[62];
+acadoWorkspace.sbar[68] = acadoWorkspace.d[63];
+acadoWorkspace.sbar[69] = acadoWorkspace.d[64];
+acadoWorkspace.sbar[70] = acadoWorkspace.d[65];
+acadoWorkspace.sbar[71] = acadoWorkspace.d[66];
+acadoWorkspace.sbar[72] = acadoWorkspace.d[67];
+acadoWorkspace.sbar[73] = acadoWorkspace.d[68];
+acadoWorkspace.sbar[74] = acadoWorkspace.d[69];
+acadoWorkspace.sbar[75] = acadoWorkspace.d[70];
+acadoWorkspace.sbar[76] = acadoWorkspace.d[71];
+acadoWorkspace.sbar[77] = acadoWorkspace.d[72];
+acadoWorkspace.sbar[78] = acadoWorkspace.d[73];
+acadoWorkspace.sbar[79] = acadoWorkspace.d[74];
+acadoWorkspace.sbar[80] = acadoWorkspace.d[75];
+acadoWorkspace.sbar[81] = acadoWorkspace.d[76];
+acadoWorkspace.sbar[82] = acadoWorkspace.d[77];
+acadoWorkspace.sbar[83] = acadoWorkspace.d[78];
+acadoWorkspace.sbar[84] = acadoWorkspace.d[79];
+acadoWorkspace.sbar[85] = acadoWorkspace.d[80];
+acadoWorkspace.sbar[86] = acadoWorkspace.d[81];
+acadoWorkspace.sbar[87] = acadoWorkspace.d[82];
+acadoWorkspace.sbar[88] = acadoWorkspace.d[83];
+acadoWorkspace.sbar[89] = acadoWorkspace.d[84];
+acadoWorkspace.sbar[90] = acadoWorkspace.d[85];
+acadoWorkspace.sbar[91] = acadoWorkspace.d[86];
+acadoWorkspace.sbar[92] = acadoWorkspace.d[87];
+acadoWorkspace.sbar[93] = acadoWorkspace.d[88];
+acadoWorkspace.sbar[94] = acadoWorkspace.d[89];
+acadoWorkspace.sbar[95] = acadoWorkspace.d[90];
+acadoWorkspace.sbar[96] = acadoWorkspace.d[91];
+acadoWorkspace.sbar[97] = acadoWorkspace.d[92];
+acadoWorkspace.sbar[98] = acadoWorkspace.d[93];
+acadoWorkspace.sbar[99] = acadoWorkspace.d[94];
+acadoWorkspace.sbar[100] = acadoWorkspace.d[95];
+acadoWorkspace.sbar[101] = acadoWorkspace.d[96];
+acadoWorkspace.sbar[102] = acadoWorkspace.d[97];
+acadoWorkspace.sbar[103] = acadoWorkspace.d[98];
+acadoWorkspace.sbar[104] = acadoWorkspace.d[99];
+
+for (lRun1 = 0; lRun1 < 40; ++lRun1)
+{
+lRun3 = xBoundIndices[ lRun1 ] - 5;
+lRun4 = ((lRun3) / (5)) + (1);
+for (lRun2 = 0; lRun2 < lRun4; ++lRun2)
+{
+lRun5 = ((((((lRun2) * (lRun2 * -1 + 39)) / (2)) + (lRun4)) - (1)) * (5)) + ((lRun3) % (5));
+acadoWorkspace.A[(lRun1 * 40) + (lRun2 * 2)] = acadoWorkspace.E[lRun5 * 2];
+acadoWorkspace.A[(lRun1 * 40) + (lRun2 * 2 + 1)] = acadoWorkspace.E[lRun5 * 2 + 1];
+}
+}
+
+for (lRun1 = 0; lRun1 < 20; ++lRun1)
+{
+acadoWorkspace.conValueIn[0] = acadoVariables.x[lRun1 * 5];
+acadoWorkspace.conValueIn[1] = acadoVariables.x[lRun1 * 5 + 1];
+acadoWorkspace.conValueIn[2] = acadoVariables.x[lRun1 * 5 + 2];
+acadoWorkspace.conValueIn[3] = acadoVariables.x[lRun1 * 5 + 3];
+acadoWorkspace.conValueIn[4] = acadoVariables.x[lRun1 * 5 + 4];
+acadoWorkspace.conValueIn[5] = acadoVariables.u[lRun1 * 2];
+acadoWorkspace.conValueIn[6] = acadoVariables.u[lRun1 * 2 + 1];
+acadoWorkspace.conValueIn[7] = acadoVariables.od[lRun1 * 20];
+acadoWorkspace.conValueIn[8] = acadoVariables.od[lRun1 * 20 + 1];
+acadoWorkspace.conValueIn[9] = acadoVariables.od[lRun1 * 20 + 2];
+acadoWorkspace.conValueIn[10] = acadoVariables.od[lRun1 * 20 + 3];
+acadoWorkspace.conValueIn[11] = acadoVariables.od[lRun1 * 20 + 4];
+acadoWorkspace.conValueIn[12] = acadoVariables.od[lRun1 * 20 + 5];
+acadoWorkspace.conValueIn[13] = acadoVariables.od[lRun1 * 20 + 6];
+acadoWorkspace.conValueIn[14] = acadoVariables.od[lRun1 * 20 + 7];
+acadoWorkspace.conValueIn[15] = acadoVariables.od[lRun1 * 20 + 8];
+acadoWorkspace.conValueIn[16] = acadoVariables.od[lRun1 * 20 + 9];
+acadoWorkspace.conValueIn[17] = acadoVariables.od[lRun1 * 20 + 10];
+acadoWorkspace.conValueIn[18] = acadoVariables.od[lRun1 * 20 + 11];
+acadoWorkspace.conValueIn[19] = acadoVariables.od[lRun1 * 20 + 12];
+acadoWorkspace.conValueIn[20] = acadoVariables.od[lRun1 * 20 + 13];
+acadoWorkspace.conValueIn[21] = acadoVariables.od[lRun1 * 20 + 14];
+acadoWorkspace.conValueIn[22] = acadoVariables.od[lRun1 * 20 + 15];
+acadoWorkspace.conValueIn[23] = acadoVariables.od[lRun1 * 20 + 16];
+acadoWorkspace.conValueIn[24] = acadoVariables.od[lRun1 * 20 + 17];
+acadoWorkspace.conValueIn[25] = acadoVariables.od[lRun1 * 20 + 18];
+acadoWorkspace.conValueIn[26] = acadoVariables.od[lRun1 * 20 + 19];
+acado_evaluatePathConstraints( acadoWorkspace.conValueIn, acadoWorkspace.conValueOut );
+acadoWorkspace.evH[lRun1 * 10] = acadoWorkspace.conValueOut[0];
+acadoWorkspace.evH[lRun1 * 10 + 1] = acadoWorkspace.conValueOut[1];
+acadoWorkspace.evH[lRun1 * 10 + 2] = acadoWorkspace.conValueOut[2];
+acadoWorkspace.evH[lRun1 * 10 + 3] = acadoWorkspace.conValueOut[3];
+acadoWorkspace.evH[lRun1 * 10 + 4] = acadoWorkspace.conValueOut[4];
+acadoWorkspace.evH[lRun1 * 10 + 5] = acadoWorkspace.conValueOut[5];
+acadoWorkspace.evH[lRun1 * 10 + 6] = acadoWorkspace.conValueOut[6];
+acadoWorkspace.evH[lRun1 * 10 + 7] = acadoWorkspace.conValueOut[7];
+acadoWorkspace.evH[lRun1 * 10 + 8] = acadoWorkspace.conValueOut[8];
+acadoWorkspace.evH[lRun1 * 10 + 9] = acadoWorkspace.conValueOut[9];
+
+acadoWorkspace.evHx[lRun1 * 50] = acadoWorkspace.conValueOut[10];
+acadoWorkspace.evHx[lRun1 * 50 + 1] = acadoWorkspace.conValueOut[11];
+acadoWorkspace.evHx[lRun1 * 50 + 2] = acadoWorkspace.conValueOut[12];
+acadoWorkspace.evHx[lRun1 * 50 + 3] = acadoWorkspace.conValueOut[13];
+acadoWorkspace.evHx[lRun1 * 50 + 4] = acadoWorkspace.conValueOut[14];
+acadoWorkspace.evHx[lRun1 * 50 + 5] = acadoWorkspace.conValueOut[15];
+acadoWorkspace.evHx[lRun1 * 50 + 6] = acadoWorkspace.conValueOut[16];
+acadoWorkspace.evHx[lRun1 * 50 + 7] = acadoWorkspace.conValueOut[17];
+acadoWorkspace.evHx[lRun1 * 50 + 8] = acadoWorkspace.conValueOut[18];
+acadoWorkspace.evHx[lRun1 * 50 + 9] = acadoWorkspace.conValueOut[19];
+acadoWorkspace.evHx[lRun1 * 50 + 10] = acadoWorkspace.conValueOut[20];
+acadoWorkspace.evHx[lRun1 * 50 + 11] = acadoWorkspace.conValueOut[21];
+acadoWorkspace.evHx[lRun1 * 50 + 12] = acadoWorkspace.conValueOut[22];
+acadoWorkspace.evHx[lRun1 * 50 + 13] = acadoWorkspace.conValueOut[23];
+acadoWorkspace.evHx[lRun1 * 50 + 14] = acadoWorkspace.conValueOut[24];
+acadoWorkspace.evHx[lRun1 * 50 + 15] = acadoWorkspace.conValueOut[25];
+acadoWorkspace.evHx[lRun1 * 50 + 16] = acadoWorkspace.conValueOut[26];
+acadoWorkspace.evHx[lRun1 * 50 + 17] = acadoWorkspace.conValueOut[27];
+acadoWorkspace.evHx[lRun1 * 50 + 18] = acadoWorkspace.conValueOut[28];
+acadoWorkspace.evHx[lRun1 * 50 + 19] = acadoWorkspace.conValueOut[29];
+acadoWorkspace.evHx[lRun1 * 50 + 20] = acadoWorkspace.conValueOut[30];
+acadoWorkspace.evHx[lRun1 * 50 + 21] = acadoWorkspace.conValueOut[31];
+acadoWorkspace.evHx[lRun1 * 50 + 22] = acadoWorkspace.conValueOut[32];
+acadoWorkspace.evHx[lRun1 * 50 + 23] = acadoWorkspace.conValueOut[33];
+acadoWorkspace.evHx[lRun1 * 50 + 24] = acadoWorkspace.conValueOut[34];
+acadoWorkspace.evHx[lRun1 * 50 + 25] = acadoWorkspace.conValueOut[35];
+acadoWorkspace.evHx[lRun1 * 50 + 26] = acadoWorkspace.conValueOut[36];
+acadoWorkspace.evHx[lRun1 * 50 + 27] = acadoWorkspace.conValueOut[37];
+acadoWorkspace.evHx[lRun1 * 50 + 28] = acadoWorkspace.conValueOut[38];
+acadoWorkspace.evHx[lRun1 * 50 + 29] = acadoWorkspace.conValueOut[39];
+acadoWorkspace.evHx[lRun1 * 50 + 30] = acadoWorkspace.conValueOut[40];
+acadoWorkspace.evHx[lRun1 * 50 + 31] = acadoWorkspace.conValueOut[41];
+acadoWorkspace.evHx[lRun1 * 50 + 32] = acadoWorkspace.conValueOut[42];
+acadoWorkspace.evHx[lRun1 * 50 + 33] = acadoWorkspace.conValueOut[43];
+acadoWorkspace.evHx[lRun1 * 50 + 34] = acadoWorkspace.conValueOut[44];
+acadoWorkspace.evHx[lRun1 * 50 + 35] = acadoWorkspace.conValueOut[45];
+acadoWorkspace.evHx[lRun1 * 50 + 36] = acadoWorkspace.conValueOut[46];
+acadoWorkspace.evHx[lRun1 * 50 + 37] = acadoWorkspace.conValueOut[47];
+acadoWorkspace.evHx[lRun1 * 50 + 38] = acadoWorkspace.conValueOut[48];
+acadoWorkspace.evHx[lRun1 * 50 + 39] = acadoWorkspace.conValueOut[49];
+acadoWorkspace.evHx[lRun1 * 50 + 40] = acadoWorkspace.conValueOut[50];
+acadoWorkspace.evHx[lRun1 * 50 + 41] = acadoWorkspace.conValueOut[51];
+acadoWorkspace.evHx[lRun1 * 50 + 42] = acadoWorkspace.conValueOut[52];
+acadoWorkspace.evHx[lRun1 * 50 + 43] = acadoWorkspace.conValueOut[53];
+acadoWorkspace.evHx[lRun1 * 50 + 44] = acadoWorkspace.conValueOut[54];
+acadoWorkspace.evHx[lRun1 * 50 + 45] = acadoWorkspace.conValueOut[55];
+acadoWorkspace.evHx[lRun1 * 50 + 46] = acadoWorkspace.conValueOut[56];
+acadoWorkspace.evHx[lRun1 * 50 + 47] = acadoWorkspace.conValueOut[57];
+acadoWorkspace.evHx[lRun1 * 50 + 48] = acadoWorkspace.conValueOut[58];
+acadoWorkspace.evHx[lRun1 * 50 + 49] = acadoWorkspace.conValueOut[59];
+acadoWorkspace.evHu[lRun1 * 20] = acadoWorkspace.conValueOut[60];
+acadoWorkspace.evHu[lRun1 * 20 + 1] = acadoWorkspace.conValueOut[61];
+acadoWorkspace.evHu[lRun1 * 20 + 2] = acadoWorkspace.conValueOut[62];
+acadoWorkspace.evHu[lRun1 * 20 + 3] = acadoWorkspace.conValueOut[63];
+acadoWorkspace.evHu[lRun1 * 20 + 4] = acadoWorkspace.conValueOut[64];
+acadoWorkspace.evHu[lRun1 * 20 + 5] = acadoWorkspace.conValueOut[65];
+acadoWorkspace.evHu[lRun1 * 20 + 6] = acadoWorkspace.conValueOut[66];
+acadoWorkspace.evHu[lRun1 * 20 + 7] = acadoWorkspace.conValueOut[67];
+acadoWorkspace.evHu[lRun1 * 20 + 8] = acadoWorkspace.conValueOut[68];
+acadoWorkspace.evHu[lRun1 * 20 + 9] = acadoWorkspace.conValueOut[69];
+acadoWorkspace.evHu[lRun1 * 20 + 10] = acadoWorkspace.conValueOut[70];
+acadoWorkspace.evHu[lRun1 * 20 + 11] = acadoWorkspace.conValueOut[71];
+acadoWorkspace.evHu[lRun1 * 20 + 12] = acadoWorkspace.conValueOut[72];
+acadoWorkspace.evHu[lRun1 * 20 + 13] = acadoWorkspace.conValueOut[73];
+acadoWorkspace.evHu[lRun1 * 20 + 14] = acadoWorkspace.conValueOut[74];
+acadoWorkspace.evHu[lRun1 * 20 + 15] = acadoWorkspace.conValueOut[75];
+acadoWorkspace.evHu[lRun1 * 20 + 16] = acadoWorkspace.conValueOut[76];
+acadoWorkspace.evHu[lRun1 * 20 + 17] = acadoWorkspace.conValueOut[77];
+acadoWorkspace.evHu[lRun1 * 20 + 18] = acadoWorkspace.conValueOut[78];
+acadoWorkspace.evHu[lRun1 * 20 + 19] = acadoWorkspace.conValueOut[79];
+}
+
+
+
+acado_multHxE( &(acadoWorkspace.evHx[ 50 ]), acadoWorkspace.E, 1, 0 );
+acado_multHxE( &(acadoWorkspace.evHx[ 100 ]), &(acadoWorkspace.E[ 10 ]), 2, 0 );
+acado_multHxE( &(acadoWorkspace.evHx[ 100 ]), &(acadoWorkspace.E[ 200 ]), 2, 1 );
+acado_multHxE( &(acadoWorkspace.evHx[ 150 ]), &(acadoWorkspace.E[ 20 ]), 3, 0 );
+acado_multHxE( &(acadoWorkspace.evHx[ 150 ]), &(acadoWorkspace.E[ 210 ]), 3, 1 );
+acado_multHxE( &(acadoWorkspace.evHx[ 150 ]), &(acadoWorkspace.E[ 390 ]), 3, 2 );
+acado_multHxE( &(acadoWorkspace.evHx[ 200 ]), &(acadoWorkspace.E[ 30 ]), 4, 0 );
+acado_multHxE( &(acadoWorkspace.evHx[ 200 ]), &(acadoWorkspace.E[ 220 ]), 4, 1 );
+acado_multHxE( &(acadoWorkspace.evHx[ 200 ]), &(acadoWorkspace.E[ 400 ]), 4, 2 );
+acado_multHxE( &(acadoWorkspace.evHx[ 200 ]), &(acadoWorkspace.E[ 570 ]), 4, 3 );
+acado_multHxE( &(acadoWorkspace.evHx[ 250 ]), &(acadoWorkspace.E[ 40 ]), 5, 0 );
+acado_multHxE( &(acadoWorkspace.evHx[ 250 ]), &(acadoWorkspace.E[ 230 ]), 5, 1 );
+acado_multHxE( &(acadoWorkspace.evHx[ 250 ]), &(acadoWorkspace.E[ 410 ]), 5, 2 );
+acado_multHxE( &(acadoWorkspace.evHx[ 250 ]), &(acadoWorkspace.E[ 580 ]), 5, 3 );
+acado_multHxE( &(acadoWorkspace.evHx[ 250 ]), &(acadoWorkspace.E[ 740 ]), 5, 4 );
+acado_multHxE( &(acadoWorkspace.evHx[ 300 ]), &(acadoWorkspace.E[ 50 ]), 6, 0 );
+acado_multHxE( &(acadoWorkspace.evHx[ 300 ]), &(acadoWorkspace.E[ 240 ]), 6, 1 );
+acado_multHxE( &(acadoWorkspace.evHx[ 300 ]), &(acadoWorkspace.E[ 420 ]), 6, 2 );
+acado_multHxE( &(acadoWorkspace.evHx[ 300 ]), &(acadoWorkspace.E[ 590 ]), 6, 3 );
+acado_multHxE( &(acadoWorkspace.evHx[ 300 ]), &(acadoWorkspace.E[ 750 ]), 6, 4 );
+acado_multHxE( &(acadoWorkspace.evHx[ 300 ]), &(acadoWorkspace.E[ 900 ]), 6, 5 );
+acado_multHxE( &(acadoWorkspace.evHx[ 350 ]), &(acadoWorkspace.E[ 60 ]), 7, 0 );
+acado_multHxE( &(acadoWorkspace.evHx[ 350 ]), &(acadoWorkspace.E[ 250 ]), 7, 1 );
+acado_multHxE( &(acadoWorkspace.evHx[ 350 ]), &(acadoWorkspace.E[ 430 ]), 7, 2 );
+acado_multHxE( &(acadoWorkspace.evHx[ 350 ]), &(acadoWorkspace.E[ 600 ]), 7, 3 );
+acado_multHxE( &(acadoWorkspace.evHx[ 350 ]), &(acadoWorkspace.E[ 760 ]), 7, 4 );
+acado_multHxE( &(acadoWorkspace.evHx[ 350 ]), &(acadoWorkspace.E[ 910 ]), 7, 5 );
+acado_multHxE( &(acadoWorkspace.evHx[ 350 ]), &(acadoWorkspace.E[ 1050 ]), 7, 6 );
+acado_multHxE( &(acadoWorkspace.evHx[ 400 ]), &(acadoWorkspace.E[ 70 ]), 8, 0 );
+acado_multHxE( &(acadoWorkspace.evHx[ 400 ]), &(acadoWorkspace.E[ 260 ]), 8, 1 );
+acado_multHxE( &(acadoWorkspace.evHx[ 400 ]), &(acadoWorkspace.E[ 440 ]), 8, 2 );
+acado_multHxE( &(acadoWorkspace.evHx[ 400 ]), &(acadoWorkspace.E[ 610 ]), 8, 3 );
+acado_multHxE( &(acadoWorkspace.evHx[ 400 ]), &(acadoWorkspace.E[ 770 ]), 8, 4 );
+acado_multHxE( &(acadoWorkspace.evHx[ 400 ]), &(acadoWorkspace.E[ 920 ]), 8, 5 );
+acado_multHxE( &(acadoWorkspace.evHx[ 400 ]), &(acadoWorkspace.E[ 1060 ]), 8, 6 );
+acado_multHxE( &(acadoWorkspace.evHx[ 400 ]), &(acadoWorkspace.E[ 1190 ]), 8, 7 );
+acado_multHxE( &(acadoWorkspace.evHx[ 450 ]), &(acadoWorkspace.E[ 80 ]), 9, 0 );
+acado_multHxE( &(acadoWorkspace.evHx[ 450 ]), &(acadoWorkspace.E[ 270 ]), 9, 1 );
+acado_multHxE( &(acadoWorkspace.evHx[ 450 ]), &(acadoWorkspace.E[ 450 ]), 9, 2 );
+acado_multHxE( &(acadoWorkspace.evHx[ 450 ]), &(acadoWorkspace.E[ 620 ]), 9, 3 );
+acado_multHxE( &(acadoWorkspace.evHx[ 450 ]), &(acadoWorkspace.E[ 780 ]), 9, 4 );
+acado_multHxE( &(acadoWorkspace.evHx[ 450 ]), &(acadoWorkspace.E[ 930 ]), 9, 5 );
+acado_multHxE( &(acadoWorkspace.evHx[ 450 ]), &(acadoWorkspace.E[ 1070 ]), 9, 6 );
+acado_multHxE( &(acadoWorkspace.evHx[ 450 ]), &(acadoWorkspace.E[ 1200 ]), 9, 7 );
+acado_multHxE( &(acadoWorkspace.evHx[ 450 ]), &(acadoWorkspace.E[ 1320 ]), 9, 8 );
+acado_multHxE( &(acadoWorkspace.evHx[ 500 ]), &(acadoWorkspace.E[ 90 ]), 10, 0 );
+acado_multHxE( &(acadoWorkspace.evHx[ 500 ]), &(acadoWorkspace.E[ 280 ]), 10, 1 );
+acado_multHxE( &(acadoWorkspace.evHx[ 500 ]), &(acadoWorkspace.E[ 460 ]), 10, 2 );
+acado_multHxE( &(acadoWorkspace.evHx[ 500 ]), &(acadoWorkspace.E[ 630 ]), 10, 3 );
+acado_multHxE( &(acadoWorkspace.evHx[ 500 ]), &(acadoWorkspace.E[ 790 ]), 10, 4 );
+acado_multHxE( &(acadoWorkspace.evHx[ 500 ]), &(acadoWorkspace.E[ 940 ]), 10, 5 );
+acado_multHxE( &(acadoWorkspace.evHx[ 500 ]), &(acadoWorkspace.E[ 1080 ]), 10, 6 );
+acado_multHxE( &(acadoWorkspace.evHx[ 500 ]), &(acadoWorkspace.E[ 1210 ]), 10, 7 );
+acado_multHxE( &(acadoWorkspace.evHx[ 500 ]), &(acadoWorkspace.E[ 1330 ]), 10, 8 );
+acado_multHxE( &(acadoWorkspace.evHx[ 500 ]), &(acadoWorkspace.E[ 1440 ]), 10, 9 );
+acado_multHxE( &(acadoWorkspace.evHx[ 550 ]), &(acadoWorkspace.E[ 100 ]), 11, 0 );
+acado_multHxE( &(acadoWorkspace.evHx[ 550 ]), &(acadoWorkspace.E[ 290 ]), 11, 1 );
+acado_multHxE( &(acadoWorkspace.evHx[ 550 ]), &(acadoWorkspace.E[ 470 ]), 11, 2 );
+acado_multHxE( &(acadoWorkspace.evHx[ 550 ]), &(acadoWorkspace.E[ 640 ]), 11, 3 );
+acado_multHxE( &(acadoWorkspace.evHx[ 550 ]), &(acadoWorkspace.E[ 800 ]), 11, 4 );
+acado_multHxE( &(acadoWorkspace.evHx[ 550 ]), &(acadoWorkspace.E[ 950 ]), 11, 5 );
+acado_multHxE( &(acadoWorkspace.evHx[ 550 ]), &(acadoWorkspace.E[ 1090 ]), 11, 6 );
+acado_multHxE( &(acadoWorkspace.evHx[ 550 ]), &(acadoWorkspace.E[ 1220 ]), 11, 7 );
+acado_multHxE( &(acadoWorkspace.evHx[ 550 ]), &(acadoWorkspace.E[ 1340 ]), 11, 8 );
+acado_multHxE( &(acadoWorkspace.evHx[ 550 ]), &(acadoWorkspace.E[ 1450 ]), 11, 9 );
+acado_multHxE( &(acadoWorkspace.evHx[ 550 ]), &(acadoWorkspace.E[ 1550 ]), 11, 10 );
+acado_multHxE( &(acadoWorkspace.evHx[ 600 ]), &(acadoWorkspace.E[ 110 ]), 12, 0 );
+acado_multHxE( &(acadoWorkspace.evHx[ 600 ]), &(acadoWorkspace.E[ 300 ]), 12, 1 );
+acado_multHxE( &(acadoWorkspace.evHx[ 600 ]), &(acadoWorkspace.E[ 480 ]), 12, 2 );
+acado_multHxE( &(acadoWorkspace.evHx[ 600 ]), &(acadoWorkspace.E[ 650 ]), 12, 3 );
+acado_multHxE( &(acadoWorkspace.evHx[ 600 ]), &(acadoWorkspace.E[ 810 ]), 12, 4 );
+acado_multHxE( &(acadoWorkspace.evHx[ 600 ]), &(acadoWorkspace.E[ 960 ]), 12, 5 );
+acado_multHxE( &(acadoWorkspace.evHx[ 600 ]), &(acadoWorkspace.E[ 1100 ]), 12, 6 );
+acado_multHxE( &(acadoWorkspace.evHx[ 600 ]), &(acadoWorkspace.E[ 1230 ]), 12, 7 );
+acado_multHxE( &(acadoWorkspace.evHx[ 600 ]), &(acadoWorkspace.E[ 1350 ]), 12, 8 );
+acado_multHxE( &(acadoWorkspace.evHx[ 600 ]), &(acadoWorkspace.E[ 1460 ]), 12, 9 );
+acado_multHxE( &(acadoWorkspace.evHx[ 600 ]), &(acadoWorkspace.E[ 1560 ]), 12, 10 );
+acado_multHxE( &(acadoWorkspace.evHx[ 600 ]), &(acadoWorkspace.E[ 1650 ]), 12, 11 );
+acado_multHxE( &(acadoWorkspace.evHx[ 650 ]), &(acadoWorkspace.E[ 120 ]), 13, 0 );
+acado_multHxE( &(acadoWorkspace.evHx[ 650 ]), &(acadoWorkspace.E[ 310 ]), 13, 1 );
+acado_multHxE( &(acadoWorkspace.evHx[ 650 ]), &(acadoWorkspace.E[ 490 ]), 13, 2 );
+acado_multHxE( &(acadoWorkspace.evHx[ 650 ]), &(acadoWorkspace.E[ 660 ]), 13, 3 );
+acado_multHxE( &(acadoWorkspace.evHx[ 650 ]), &(acadoWorkspace.E[ 820 ]), 13, 4 );
+acado_multHxE( &(acadoWorkspace.evHx[ 650 ]), &(acadoWorkspace.E[ 970 ]), 13, 5 );
+acado_multHxE( &(acadoWorkspace.evHx[ 650 ]), &(acadoWorkspace.E[ 1110 ]), 13, 6 );
+acado_multHxE( &(acadoWorkspace.evHx[ 650 ]), &(acadoWorkspace.E[ 1240 ]), 13, 7 );
+acado_multHxE( &(acadoWorkspace.evHx[ 650 ]), &(acadoWorkspace.E[ 1360 ]), 13, 8 );
+acado_multHxE( &(acadoWorkspace.evHx[ 650 ]), &(acadoWorkspace.E[ 1470 ]), 13, 9 );
+acado_multHxE( &(acadoWorkspace.evHx[ 650 ]), &(acadoWorkspace.E[ 1570 ]), 13, 10 );
+acado_multHxE( &(acadoWorkspace.evHx[ 650 ]), &(acadoWorkspace.E[ 1660 ]), 13, 11 );
+acado_multHxE( &(acadoWorkspace.evHx[ 650 ]), &(acadoWorkspace.E[ 1740 ]), 13, 12 );
+acado_multHxE( &(acadoWorkspace.evHx[ 700 ]), &(acadoWorkspace.E[ 130 ]), 14, 0 );
+acado_multHxE( &(acadoWorkspace.evHx[ 700 ]), &(acadoWorkspace.E[ 320 ]), 14, 1 );
+acado_multHxE( &(acadoWorkspace.evHx[ 700 ]), &(acadoWorkspace.E[ 500 ]), 14, 2 );
+acado_multHxE( &(acadoWorkspace.evHx[ 700 ]), &(acadoWorkspace.E[ 670 ]), 14, 3 );
+acado_multHxE( &(acadoWorkspace.evHx[ 700 ]), &(acadoWorkspace.E[ 830 ]), 14, 4 );
+acado_multHxE( &(acadoWorkspace.evHx[ 700 ]), &(acadoWorkspace.E[ 980 ]), 14, 5 );
+acado_multHxE( &(acadoWorkspace.evHx[ 700 ]), &(acadoWorkspace.E[ 1120 ]), 14, 6 );
+acado_multHxE( &(acadoWorkspace.evHx[ 700 ]), &(acadoWorkspace.E[ 1250 ]), 14, 7 );
+acado_multHxE( &(acadoWorkspace.evHx[ 700 ]), &(acadoWorkspace.E[ 1370 ]), 14, 8 );
+acado_multHxE( &(acadoWorkspace.evHx[ 700 ]), &(acadoWorkspace.E[ 1480 ]), 14, 9 );
+acado_multHxE( &(acadoWorkspace.evHx[ 700 ]), &(acadoWorkspace.E[ 1580 ]), 14, 10 );
+acado_multHxE( &(acadoWorkspace.evHx[ 700 ]), &(acadoWorkspace.E[ 1670 ]), 14, 11 );
+acado_multHxE( &(acadoWorkspace.evHx[ 700 ]), &(acadoWorkspace.E[ 1750 ]), 14, 12 );
+acado_multHxE( &(acadoWorkspace.evHx[ 700 ]), &(acadoWorkspace.E[ 1820 ]), 14, 13 );
+acado_multHxE( &(acadoWorkspace.evHx[ 750 ]), &(acadoWorkspace.E[ 140 ]), 15, 0 );
+acado_multHxE( &(acadoWorkspace.evHx[ 750 ]), &(acadoWorkspace.E[ 330 ]), 15, 1 );
+acado_multHxE( &(acadoWorkspace.evHx[ 750 ]), &(acadoWorkspace.E[ 510 ]), 15, 2 );
+acado_multHxE( &(acadoWorkspace.evHx[ 750 ]), &(acadoWorkspace.E[ 680 ]), 15, 3 );
+acado_multHxE( &(acadoWorkspace.evHx[ 750 ]), &(acadoWorkspace.E[ 840 ]), 15, 4 );
+acado_multHxE( &(acadoWorkspace.evHx[ 750 ]), &(acadoWorkspace.E[ 990 ]), 15, 5 );
+acado_multHxE( &(acadoWorkspace.evHx[ 750 ]), &(acadoWorkspace.E[ 1130 ]), 15, 6 );
+acado_multHxE( &(acadoWorkspace.evHx[ 750 ]), &(acadoWorkspace.E[ 1260 ]), 15, 7 );
+acado_multHxE( &(acadoWorkspace.evHx[ 750 ]), &(acadoWorkspace.E[ 1380 ]), 15, 8 );
+acado_multHxE( &(acadoWorkspace.evHx[ 750 ]), &(acadoWorkspace.E[ 1490 ]), 15, 9 );
+acado_multHxE( &(acadoWorkspace.evHx[ 750 ]), &(acadoWorkspace.E[ 1590 ]), 15, 10 );
+acado_multHxE( &(acadoWorkspace.evHx[ 750 ]), &(acadoWorkspace.E[ 1680 ]), 15, 11 );
+acado_multHxE( &(acadoWorkspace.evHx[ 750 ]), &(acadoWorkspace.E[ 1760 ]), 15, 12 );
+acado_multHxE( &(acadoWorkspace.evHx[ 750 ]), &(acadoWorkspace.E[ 1830 ]), 15, 13 );
+acado_multHxE( &(acadoWorkspace.evHx[ 750 ]), &(acadoWorkspace.E[ 1890 ]), 15, 14 );
+acado_multHxE( &(acadoWorkspace.evHx[ 800 ]), &(acadoWorkspace.E[ 150 ]), 16, 0 );
+acado_multHxE( &(acadoWorkspace.evHx[ 800 ]), &(acadoWorkspace.E[ 340 ]), 16, 1 );
+acado_multHxE( &(acadoWorkspace.evHx[ 800 ]), &(acadoWorkspace.E[ 520 ]), 16, 2 );
+acado_multHxE( &(acadoWorkspace.evHx[ 800 ]), &(acadoWorkspace.E[ 690 ]), 16, 3 );
+acado_multHxE( &(acadoWorkspace.evHx[ 800 ]), &(acadoWorkspace.E[ 850 ]), 16, 4 );
+acado_multHxE( &(acadoWorkspace.evHx[ 800 ]), &(acadoWorkspace.E[ 1000 ]), 16, 5 );
+acado_multHxE( &(acadoWorkspace.evHx[ 800 ]), &(acadoWorkspace.E[ 1140 ]), 16, 6 );
+acado_multHxE( &(acadoWorkspace.evHx[ 800 ]), &(acadoWorkspace.E[ 1270 ]), 16, 7 );
+acado_multHxE( &(acadoWorkspace.evHx[ 800 ]), &(acadoWorkspace.E[ 1390 ]), 16, 8 );
+acado_multHxE( &(acadoWorkspace.evHx[ 800 ]), &(acadoWorkspace.E[ 1500 ]), 16, 9 );
+acado_multHxE( &(acadoWorkspace.evHx[ 800 ]), &(acadoWorkspace.E[ 1600 ]), 16, 10 );
+acado_multHxE( &(acadoWorkspace.evHx[ 800 ]), &(acadoWorkspace.E[ 1690 ]), 16, 11 );
+acado_multHxE( &(acadoWorkspace.evHx[ 800 ]), &(acadoWorkspace.E[ 1770 ]), 16, 12 );
+acado_multHxE( &(acadoWorkspace.evHx[ 800 ]), &(acadoWorkspace.E[ 1840 ]), 16, 13 );
+acado_multHxE( &(acadoWorkspace.evHx[ 800 ]), &(acadoWorkspace.E[ 1900 ]), 16, 14 );
+acado_multHxE( &(acadoWorkspace.evHx[ 800 ]), &(acadoWorkspace.E[ 1950 ]), 16, 15 );
+acado_multHxE( &(acadoWorkspace.evHx[ 850 ]), &(acadoWorkspace.E[ 160 ]), 17, 0 );
+acado_multHxE( &(acadoWorkspace.evHx[ 850 ]), &(acadoWorkspace.E[ 350 ]), 17, 1 );
+acado_multHxE( &(acadoWorkspace.evHx[ 850 ]), &(acadoWorkspace.E[ 530 ]), 17, 2 );
+acado_multHxE( &(acadoWorkspace.evHx[ 850 ]), &(acadoWorkspace.E[ 700 ]), 17, 3 );
+acado_multHxE( &(acadoWorkspace.evHx[ 850 ]), &(acadoWorkspace.E[ 860 ]), 17, 4 );
+acado_multHxE( &(acadoWorkspace.evHx[ 850 ]), &(acadoWorkspace.E[ 1010 ]), 17, 5 );
+acado_multHxE( &(acadoWorkspace.evHx[ 850 ]), &(acadoWorkspace.E[ 1150 ]), 17, 6 );
+acado_multHxE( &(acadoWorkspace.evHx[ 850 ]), &(acadoWorkspace.E[ 1280 ]), 17, 7 );
+acado_multHxE( &(acadoWorkspace.evHx[ 850 ]), &(acadoWorkspace.E[ 1400 ]), 17, 8 );
+acado_multHxE( &(acadoWorkspace.evHx[ 850 ]), &(acadoWorkspace.E[ 1510 ]), 17, 9 );
+acado_multHxE( &(acadoWorkspace.evHx[ 850 ]), &(acadoWorkspace.E[ 1610 ]), 17, 10 );
+acado_multHxE( &(acadoWorkspace.evHx[ 850 ]), &(acadoWorkspace.E[ 1700 ]), 17, 11 );
+acado_multHxE( &(acadoWorkspace.evHx[ 850 ]), &(acadoWorkspace.E[ 1780 ]), 17, 12 );
+acado_multHxE( &(acadoWorkspace.evHx[ 850 ]), &(acadoWorkspace.E[ 1850 ]), 17, 13 );
+acado_multHxE( &(acadoWorkspace.evHx[ 850 ]), &(acadoWorkspace.E[ 1910 ]), 17, 14 );
+acado_multHxE( &(acadoWorkspace.evHx[ 850 ]), &(acadoWorkspace.E[ 1960 ]), 17, 15 );
+acado_multHxE( &(acadoWorkspace.evHx[ 850 ]), &(acadoWorkspace.E[ 2000 ]), 17, 16 );
+acado_multHxE( &(acadoWorkspace.evHx[ 900 ]), &(acadoWorkspace.E[ 170 ]), 18, 0 );
+acado_multHxE( &(acadoWorkspace.evHx[ 900 ]), &(acadoWorkspace.E[ 360 ]), 18, 1 );
+acado_multHxE( &(acadoWorkspace.evHx[ 900 ]), &(acadoWorkspace.E[ 540 ]), 18, 2 );
+acado_multHxE( &(acadoWorkspace.evHx[ 900 ]), &(acadoWorkspace.E[ 710 ]), 18, 3 );
+acado_multHxE( &(acadoWorkspace.evHx[ 900 ]), &(acadoWorkspace.E[ 870 ]), 18, 4 );
+acado_multHxE( &(acadoWorkspace.evHx[ 900 ]), &(acadoWorkspace.E[ 1020 ]), 18, 5 );
+acado_multHxE( &(acadoWorkspace.evHx[ 900 ]), &(acadoWorkspace.E[ 1160 ]), 18, 6 );
+acado_multHxE( &(acadoWorkspace.evHx[ 900 ]), &(acadoWorkspace.E[ 1290 ]), 18, 7 );
+acado_multHxE( &(acadoWorkspace.evHx[ 900 ]), &(acadoWorkspace.E[ 1410 ]), 18, 8 );
+acado_multHxE( &(acadoWorkspace.evHx[ 900 ]), &(acadoWorkspace.E[ 1520 ]), 18, 9 );
+acado_multHxE( &(acadoWorkspace.evHx[ 900 ]), &(acadoWorkspace.E[ 1620 ]), 18, 10 );
+acado_multHxE( &(acadoWorkspace.evHx[ 900 ]), &(acadoWorkspace.E[ 1710 ]), 18, 11 );
+acado_multHxE( &(acadoWorkspace.evHx[ 900 ]), &(acadoWorkspace.E[ 1790 ]), 18, 12 );
+acado_multHxE( &(acadoWorkspace.evHx[ 900 ]), &(acadoWorkspace.E[ 1860 ]), 18, 13 );
+acado_multHxE( &(acadoWorkspace.evHx[ 900 ]), &(acadoWorkspace.E[ 1920 ]), 18, 14 );
+acado_multHxE( &(acadoWorkspace.evHx[ 900 ]), &(acadoWorkspace.E[ 1970 ]), 18, 15 );
+acado_multHxE( &(acadoWorkspace.evHx[ 900 ]), &(acadoWorkspace.E[ 2010 ]), 18, 16 );
+acado_multHxE( &(acadoWorkspace.evHx[ 900 ]), &(acadoWorkspace.E[ 2040 ]), 18, 17 );
+acado_multHxE( &(acadoWorkspace.evHx[ 950 ]), &(acadoWorkspace.E[ 180 ]), 19, 0 );
+acado_multHxE( &(acadoWorkspace.evHx[ 950 ]), &(acadoWorkspace.E[ 370 ]), 19, 1 );
+acado_multHxE( &(acadoWorkspace.evHx[ 950 ]), &(acadoWorkspace.E[ 550 ]), 19, 2 );
+acado_multHxE( &(acadoWorkspace.evHx[ 950 ]), &(acadoWorkspace.E[ 720 ]), 19, 3 );
+acado_multHxE( &(acadoWorkspace.evHx[ 950 ]), &(acadoWorkspace.E[ 880 ]), 19, 4 );
+acado_multHxE( &(acadoWorkspace.evHx[ 950 ]), &(acadoWorkspace.E[ 1030 ]), 19, 5 );
+acado_multHxE( &(acadoWorkspace.evHx[ 950 ]), &(acadoWorkspace.E[ 1170 ]), 19, 6 );
+acado_multHxE( &(acadoWorkspace.evHx[ 950 ]), &(acadoWorkspace.E[ 1300 ]), 19, 7 );
+acado_multHxE( &(acadoWorkspace.evHx[ 950 ]), &(acadoWorkspace.E[ 1420 ]), 19, 8 );
+acado_multHxE( &(acadoWorkspace.evHx[ 950 ]), &(acadoWorkspace.E[ 1530 ]), 19, 9 );
+acado_multHxE( &(acadoWorkspace.evHx[ 950 ]), &(acadoWorkspace.E[ 1630 ]), 19, 10 );
+acado_multHxE( &(acadoWorkspace.evHx[ 950 ]), &(acadoWorkspace.E[ 1720 ]), 19, 11 );
+acado_multHxE( &(acadoWorkspace.evHx[ 950 ]), &(acadoWorkspace.E[ 1800 ]), 19, 12 );
+acado_multHxE( &(acadoWorkspace.evHx[ 950 ]), &(acadoWorkspace.E[ 1870 ]), 19, 13 );
+acado_multHxE( &(acadoWorkspace.evHx[ 950 ]), &(acadoWorkspace.E[ 1930 ]), 19, 14 );
+acado_multHxE( &(acadoWorkspace.evHx[ 950 ]), &(acadoWorkspace.E[ 1980 ]), 19, 15 );
+acado_multHxE( &(acadoWorkspace.evHx[ 950 ]), &(acadoWorkspace.E[ 2020 ]), 19, 16 );
+acado_multHxE( &(acadoWorkspace.evHx[ 950 ]), &(acadoWorkspace.E[ 2050 ]), 19, 17 );
+acado_multHxE( &(acadoWorkspace.evHx[ 950 ]), &(acadoWorkspace.E[ 2070 ]), 19, 18 );
+
+acadoWorkspace.A[1600] = acadoWorkspace.evHu[0];
+acadoWorkspace.A[1601] = acadoWorkspace.evHu[1];
+acadoWorkspace.A[1640] = acadoWorkspace.evHu[2];
+acadoWorkspace.A[1641] = acadoWorkspace.evHu[3];
+acadoWorkspace.A[1680] = acadoWorkspace.evHu[4];
+acadoWorkspace.A[1681] = acadoWorkspace.evHu[5];
+acadoWorkspace.A[1720] = acadoWorkspace.evHu[6];
+acadoWorkspace.A[1721] = acadoWorkspace.evHu[7];
+acadoWorkspace.A[1760] = acadoWorkspace.evHu[8];
+acadoWorkspace.A[1761] = acadoWorkspace.evHu[9];
+acadoWorkspace.A[1800] = acadoWorkspace.evHu[10];
+acadoWorkspace.A[1801] = acadoWorkspace.evHu[11];
+acadoWorkspace.A[1840] = acadoWorkspace.evHu[12];
+acadoWorkspace.A[1841] = acadoWorkspace.evHu[13];
+acadoWorkspace.A[1880] = acadoWorkspace.evHu[14];
+acadoWorkspace.A[1881] = acadoWorkspace.evHu[15];
+acadoWorkspace.A[1920] = acadoWorkspace.evHu[16];
+acadoWorkspace.A[1921] = acadoWorkspace.evHu[17];
+acadoWorkspace.A[1960] = acadoWorkspace.evHu[18];
+acadoWorkspace.A[1961] = acadoWorkspace.evHu[19];
+acadoWorkspace.A[2002] = acadoWorkspace.evHu[20];
+acadoWorkspace.A[2003] = acadoWorkspace.evHu[21];
+acadoWorkspace.A[2042] = acadoWorkspace.evHu[22];
+acadoWorkspace.A[2043] = acadoWorkspace.evHu[23];
+acadoWorkspace.A[2082] = acadoWorkspace.evHu[24];
+acadoWorkspace.A[2083] = acadoWorkspace.evHu[25];
+acadoWorkspace.A[2122] = acadoWorkspace.evHu[26];
+acadoWorkspace.A[2123] = acadoWorkspace.evHu[27];
+acadoWorkspace.A[2162] = acadoWorkspace.evHu[28];
+acadoWorkspace.A[2163] = acadoWorkspace.evHu[29];
+acadoWorkspace.A[2202] = acadoWorkspace.evHu[30];
+acadoWorkspace.A[2203] = acadoWorkspace.evHu[31];
+acadoWorkspace.A[2242] = acadoWorkspace.evHu[32];
+acadoWorkspace.A[2243] = acadoWorkspace.evHu[33];
+acadoWorkspace.A[2282] = acadoWorkspace.evHu[34];
+acadoWorkspace.A[2283] = acadoWorkspace.evHu[35];
+acadoWorkspace.A[2322] = acadoWorkspace.evHu[36];
+acadoWorkspace.A[2323] = acadoWorkspace.evHu[37];
+acadoWorkspace.A[2362] = acadoWorkspace.evHu[38];
+acadoWorkspace.A[2363] = acadoWorkspace.evHu[39];
+acadoWorkspace.A[2404] = acadoWorkspace.evHu[40];
+acadoWorkspace.A[2405] = acadoWorkspace.evHu[41];
+acadoWorkspace.A[2444] = acadoWorkspace.evHu[42];
+acadoWorkspace.A[2445] = acadoWorkspace.evHu[43];
+acadoWorkspace.A[2484] = acadoWorkspace.evHu[44];
+acadoWorkspace.A[2485] = acadoWorkspace.evHu[45];
+acadoWorkspace.A[2524] = acadoWorkspace.evHu[46];
+acadoWorkspace.A[2525] = acadoWorkspace.evHu[47];
+acadoWorkspace.A[2564] = acadoWorkspace.evHu[48];
+acadoWorkspace.A[2565] = acadoWorkspace.evHu[49];
+acadoWorkspace.A[2604] = acadoWorkspace.evHu[50];
+acadoWorkspace.A[2605] = acadoWorkspace.evHu[51];
+acadoWorkspace.A[2644] = acadoWorkspace.evHu[52];
+acadoWorkspace.A[2645] = acadoWorkspace.evHu[53];
+acadoWorkspace.A[2684] = acadoWorkspace.evHu[54];
+acadoWorkspace.A[2685] = acadoWorkspace.evHu[55];
+acadoWorkspace.A[2724] = acadoWorkspace.evHu[56];
+acadoWorkspace.A[2725] = acadoWorkspace.evHu[57];
+acadoWorkspace.A[2764] = acadoWorkspace.evHu[58];
+acadoWorkspace.A[2765] = acadoWorkspace.evHu[59];
+acadoWorkspace.A[2806] = acadoWorkspace.evHu[60];
+acadoWorkspace.A[2807] = acadoWorkspace.evHu[61];
+acadoWorkspace.A[2846] = acadoWorkspace.evHu[62];
+acadoWorkspace.A[2847] = acadoWorkspace.evHu[63];
+acadoWorkspace.A[2886] = acadoWorkspace.evHu[64];
+acadoWorkspace.A[2887] = acadoWorkspace.evHu[65];
+acadoWorkspace.A[2926] = acadoWorkspace.evHu[66];
+acadoWorkspace.A[2927] = acadoWorkspace.evHu[67];
+acadoWorkspace.A[2966] = acadoWorkspace.evHu[68];
+acadoWorkspace.A[2967] = acadoWorkspace.evHu[69];
+acadoWorkspace.A[3006] = acadoWorkspace.evHu[70];
+acadoWorkspace.A[3007] = acadoWorkspace.evHu[71];
+acadoWorkspace.A[3046] = acadoWorkspace.evHu[72];
+acadoWorkspace.A[3047] = acadoWorkspace.evHu[73];
+acadoWorkspace.A[3086] = acadoWorkspace.evHu[74];
+acadoWorkspace.A[3087] = acadoWorkspace.evHu[75];
+acadoWorkspace.A[3126] = acadoWorkspace.evHu[76];
+acadoWorkspace.A[3127] = acadoWorkspace.evHu[77];
+acadoWorkspace.A[3166] = acadoWorkspace.evHu[78];
+acadoWorkspace.A[3167] = acadoWorkspace.evHu[79];
+acadoWorkspace.A[3208] = acadoWorkspace.evHu[80];
+acadoWorkspace.A[3209] = acadoWorkspace.evHu[81];
+acadoWorkspace.A[3248] = acadoWorkspace.evHu[82];
+acadoWorkspace.A[3249] = acadoWorkspace.evHu[83];
+acadoWorkspace.A[3288] = acadoWorkspace.evHu[84];
+acadoWorkspace.A[3289] = acadoWorkspace.evHu[85];
+acadoWorkspace.A[3328] = acadoWorkspace.evHu[86];
+acadoWorkspace.A[3329] = acadoWorkspace.evHu[87];
+acadoWorkspace.A[3368] = acadoWorkspace.evHu[88];
+acadoWorkspace.A[3369] = acadoWorkspace.evHu[89];
+acadoWorkspace.A[3408] = acadoWorkspace.evHu[90];
+acadoWorkspace.A[3409] = acadoWorkspace.evHu[91];
+acadoWorkspace.A[3448] = acadoWorkspace.evHu[92];
+acadoWorkspace.A[3449] = acadoWorkspace.evHu[93];
+acadoWorkspace.A[3488] = acadoWorkspace.evHu[94];
+acadoWorkspace.A[3489] = acadoWorkspace.evHu[95];
+acadoWorkspace.A[3528] = acadoWorkspace.evHu[96];
+acadoWorkspace.A[3529] = acadoWorkspace.evHu[97];
+acadoWorkspace.A[3568] = acadoWorkspace.evHu[98];
+acadoWorkspace.A[3569] = acadoWorkspace.evHu[99];
+acadoWorkspace.A[3610] = acadoWorkspace.evHu[100];
+acadoWorkspace.A[3611] = acadoWorkspace.evHu[101];
+acadoWorkspace.A[3650] = acadoWorkspace.evHu[102];
+acadoWorkspace.A[3651] = acadoWorkspace.evHu[103];
+acadoWorkspace.A[3690] = acadoWorkspace.evHu[104];
+acadoWorkspace.A[3691] = acadoWorkspace.evHu[105];
+acadoWorkspace.A[3730] = acadoWorkspace.evHu[106];
+acadoWorkspace.A[3731] = acadoWorkspace.evHu[107];
+acadoWorkspace.A[3770] = acadoWorkspace.evHu[108];
+acadoWorkspace.A[3771] = acadoWorkspace.evHu[109];
+acadoWorkspace.A[3810] = acadoWorkspace.evHu[110];
+acadoWorkspace.A[3811] = acadoWorkspace.evHu[111];
+acadoWorkspace.A[3850] = acadoWorkspace.evHu[112];
+acadoWorkspace.A[3851] = acadoWorkspace.evHu[113];
+acadoWorkspace.A[3890] = acadoWorkspace.evHu[114];
+acadoWorkspace.A[3891] = acadoWorkspace.evHu[115];
+acadoWorkspace.A[3930] = acadoWorkspace.evHu[116];
+acadoWorkspace.A[3931] = acadoWorkspace.evHu[117];
+acadoWorkspace.A[3970] = acadoWorkspace.evHu[118];
+acadoWorkspace.A[3971] = acadoWorkspace.evHu[119];
+acadoWorkspace.A[4012] = acadoWorkspace.evHu[120];
+acadoWorkspace.A[4013] = acadoWorkspace.evHu[121];
+acadoWorkspace.A[4052] = acadoWorkspace.evHu[122];
+acadoWorkspace.A[4053] = acadoWorkspace.evHu[123];
+acadoWorkspace.A[4092] = acadoWorkspace.evHu[124];
+acadoWorkspace.A[4093] = acadoWorkspace.evHu[125];
+acadoWorkspace.A[4132] = acadoWorkspace.evHu[126];
+acadoWorkspace.A[4133] = acadoWorkspace.evHu[127];
+acadoWorkspace.A[4172] = acadoWorkspace.evHu[128];
+acadoWorkspace.A[4173] = acadoWorkspace.evHu[129];
+acadoWorkspace.A[4212] = acadoWorkspace.evHu[130];
+acadoWorkspace.A[4213] = acadoWorkspace.evHu[131];
+acadoWorkspace.A[4252] = acadoWorkspace.evHu[132];
+acadoWorkspace.A[4253] = acadoWorkspace.evHu[133];
+acadoWorkspace.A[4292] = acadoWorkspace.evHu[134];
+acadoWorkspace.A[4293] = acadoWorkspace.evHu[135];
+acadoWorkspace.A[4332] = acadoWorkspace.evHu[136];
+acadoWorkspace.A[4333] = acadoWorkspace.evHu[137];
+acadoWorkspace.A[4372] = acadoWorkspace.evHu[138];
+acadoWorkspace.A[4373] = acadoWorkspace.evHu[139];
+acadoWorkspace.A[4414] = acadoWorkspace.evHu[140];
+acadoWorkspace.A[4415] = acadoWorkspace.evHu[141];
+acadoWorkspace.A[4454] = acadoWorkspace.evHu[142];
+acadoWorkspace.A[4455] = acadoWorkspace.evHu[143];
+acadoWorkspace.A[4494] = acadoWorkspace.evHu[144];
+acadoWorkspace.A[4495] = acadoWorkspace.evHu[145];
+acadoWorkspace.A[4534] = acadoWorkspace.evHu[146];
+acadoWorkspace.A[4535] = acadoWorkspace.evHu[147];
+acadoWorkspace.A[4574] = acadoWorkspace.evHu[148];
+acadoWorkspace.A[4575] = acadoWorkspace.evHu[149];
+acadoWorkspace.A[4614] = acadoWorkspace.evHu[150];
+acadoWorkspace.A[4615] = acadoWorkspace.evHu[151];
+acadoWorkspace.A[4654] = acadoWorkspace.evHu[152];
+acadoWorkspace.A[4655] = acadoWorkspace.evHu[153];
+acadoWorkspace.A[4694] = acadoWorkspace.evHu[154];
+acadoWorkspace.A[4695] = acadoWorkspace.evHu[155];
+acadoWorkspace.A[4734] = acadoWorkspace.evHu[156];
+acadoWorkspace.A[4735] = acadoWorkspace.evHu[157];
+acadoWorkspace.A[4774] = acadoWorkspace.evHu[158];
+acadoWorkspace.A[4775] = acadoWorkspace.evHu[159];
+acadoWorkspace.A[4816] = acadoWorkspace.evHu[160];
+acadoWorkspace.A[4817] = acadoWorkspace.evHu[161];
+acadoWorkspace.A[4856] = acadoWorkspace.evHu[162];
+acadoWorkspace.A[4857] = acadoWorkspace.evHu[163];
+acadoWorkspace.A[4896] = acadoWorkspace.evHu[164];
+acadoWorkspace.A[4897] = acadoWorkspace.evHu[165];
+acadoWorkspace.A[4936] = acadoWorkspace.evHu[166];
+acadoWorkspace.A[4937] = acadoWorkspace.evHu[167];
+acadoWorkspace.A[4976] = acadoWorkspace.evHu[168];
+acadoWorkspace.A[4977] = acadoWorkspace.evHu[169];
+acadoWorkspace.A[5016] = acadoWorkspace.evHu[170];
+acadoWorkspace.A[5017] = acadoWorkspace.evHu[171];
+acadoWorkspace.A[5056] = acadoWorkspace.evHu[172];
+acadoWorkspace.A[5057] = acadoWorkspace.evHu[173];
+acadoWorkspace.A[5096] = acadoWorkspace.evHu[174];
+acadoWorkspace.A[5097] = acadoWorkspace.evHu[175];
+acadoWorkspace.A[5136] = acadoWorkspace.evHu[176];
+acadoWorkspace.A[5137] = acadoWorkspace.evHu[177];
+acadoWorkspace.A[5176] = acadoWorkspace.evHu[178];
+acadoWorkspace.A[5177] = acadoWorkspace.evHu[179];
+acadoWorkspace.A[5218] = acadoWorkspace.evHu[180];
+acadoWorkspace.A[5219] = acadoWorkspace.evHu[181];
+acadoWorkspace.A[5258] = acadoWorkspace.evHu[182];
+acadoWorkspace.A[5259] = acadoWorkspace.evHu[183];
+acadoWorkspace.A[5298] = acadoWorkspace.evHu[184];
+acadoWorkspace.A[5299] = acadoWorkspace.evHu[185];
+acadoWorkspace.A[5338] = acadoWorkspace.evHu[186];
+acadoWorkspace.A[5339] = acadoWorkspace.evHu[187];
+acadoWorkspace.A[5378] = acadoWorkspace.evHu[188];
+acadoWorkspace.A[5379] = acadoWorkspace.evHu[189];
+acadoWorkspace.A[5418] = acadoWorkspace.evHu[190];
+acadoWorkspace.A[5419] = acadoWorkspace.evHu[191];
+acadoWorkspace.A[5458] = acadoWorkspace.evHu[192];
+acadoWorkspace.A[5459] = acadoWorkspace.evHu[193];
+acadoWorkspace.A[5498] = acadoWorkspace.evHu[194];
+acadoWorkspace.A[5499] = acadoWorkspace.evHu[195];
+acadoWorkspace.A[5538] = acadoWorkspace.evHu[196];
+acadoWorkspace.A[5539] = acadoWorkspace.evHu[197];
+acadoWorkspace.A[5578] = acadoWorkspace.evHu[198];
+acadoWorkspace.A[5579] = acadoWorkspace.evHu[199];
+acadoWorkspace.A[5620] = acadoWorkspace.evHu[200];
+acadoWorkspace.A[5621] = acadoWorkspace.evHu[201];
+acadoWorkspace.A[5660] = acadoWorkspace.evHu[202];
+acadoWorkspace.A[5661] = acadoWorkspace.evHu[203];
+acadoWorkspace.A[5700] = acadoWorkspace.evHu[204];
+acadoWorkspace.A[5701] = acadoWorkspace.evHu[205];
+acadoWorkspace.A[5740] = acadoWorkspace.evHu[206];
+acadoWorkspace.A[5741] = acadoWorkspace.evHu[207];
+acadoWorkspace.A[5780] = acadoWorkspace.evHu[208];
+acadoWorkspace.A[5781] = acadoWorkspace.evHu[209];
+acadoWorkspace.A[5820] = acadoWorkspace.evHu[210];
+acadoWorkspace.A[5821] = acadoWorkspace.evHu[211];
+acadoWorkspace.A[5860] = acadoWorkspace.evHu[212];
+acadoWorkspace.A[5861] = acadoWorkspace.evHu[213];
+acadoWorkspace.A[5900] = acadoWorkspace.evHu[214];
+acadoWorkspace.A[5901] = acadoWorkspace.evHu[215];
+acadoWorkspace.A[5940] = acadoWorkspace.evHu[216];
+acadoWorkspace.A[5941] = acadoWorkspace.evHu[217];
+acadoWorkspace.A[5980] = acadoWorkspace.evHu[218];
+acadoWorkspace.A[5981] = acadoWorkspace.evHu[219];
+acadoWorkspace.A[6022] = acadoWorkspace.evHu[220];
+acadoWorkspace.A[6023] = acadoWorkspace.evHu[221];
+acadoWorkspace.A[6062] = acadoWorkspace.evHu[222];
+acadoWorkspace.A[6063] = acadoWorkspace.evHu[223];
+acadoWorkspace.A[6102] = acadoWorkspace.evHu[224];
+acadoWorkspace.A[6103] = acadoWorkspace.evHu[225];
+acadoWorkspace.A[6142] = acadoWorkspace.evHu[226];
+acadoWorkspace.A[6143] = acadoWorkspace.evHu[227];
+acadoWorkspace.A[6182] = acadoWorkspace.evHu[228];
+acadoWorkspace.A[6183] = acadoWorkspace.evHu[229];
+acadoWorkspace.A[6222] = acadoWorkspace.evHu[230];
+acadoWorkspace.A[6223] = acadoWorkspace.evHu[231];
+acadoWorkspace.A[6262] = acadoWorkspace.evHu[232];
+acadoWorkspace.A[6263] = acadoWorkspace.evHu[233];
+acadoWorkspace.A[6302] = acadoWorkspace.evHu[234];
+acadoWorkspace.A[6303] = acadoWorkspace.evHu[235];
+acadoWorkspace.A[6342] = acadoWorkspace.evHu[236];
+acadoWorkspace.A[6343] = acadoWorkspace.evHu[237];
+acadoWorkspace.A[6382] = acadoWorkspace.evHu[238];
+acadoWorkspace.A[6383] = acadoWorkspace.evHu[239];
+acadoWorkspace.A[6424] = acadoWorkspace.evHu[240];
+acadoWorkspace.A[6425] = acadoWorkspace.evHu[241];
+acadoWorkspace.A[6464] = acadoWorkspace.evHu[242];
+acadoWorkspace.A[6465] = acadoWorkspace.evHu[243];
+acadoWorkspace.A[6504] = acadoWorkspace.evHu[244];
+acadoWorkspace.A[6505] = acadoWorkspace.evHu[245];
+acadoWorkspace.A[6544] = acadoWorkspace.evHu[246];
+acadoWorkspace.A[6545] = acadoWorkspace.evHu[247];
+acadoWorkspace.A[6584] = acadoWorkspace.evHu[248];
+acadoWorkspace.A[6585] = acadoWorkspace.evHu[249];
+acadoWorkspace.A[6624] = acadoWorkspace.evHu[250];
+acadoWorkspace.A[6625] = acadoWorkspace.evHu[251];
+acadoWorkspace.A[6664] = acadoWorkspace.evHu[252];
+acadoWorkspace.A[6665] = acadoWorkspace.evHu[253];
+acadoWorkspace.A[6704] = acadoWorkspace.evHu[254];
+acadoWorkspace.A[6705] = acadoWorkspace.evHu[255];
+acadoWorkspace.A[6744] = acadoWorkspace.evHu[256];
+acadoWorkspace.A[6745] = acadoWorkspace.evHu[257];
+acadoWorkspace.A[6784] = acadoWorkspace.evHu[258];
+acadoWorkspace.A[6785] = acadoWorkspace.evHu[259];
+acadoWorkspace.A[6826] = acadoWorkspace.evHu[260];
+acadoWorkspace.A[6827] = acadoWorkspace.evHu[261];
+acadoWorkspace.A[6866] = acadoWorkspace.evHu[262];
+acadoWorkspace.A[6867] = acadoWorkspace.evHu[263];
+acadoWorkspace.A[6906] = acadoWorkspace.evHu[264];
+acadoWorkspace.A[6907] = acadoWorkspace.evHu[265];
+acadoWorkspace.A[6946] = acadoWorkspace.evHu[266];
+acadoWorkspace.A[6947] = acadoWorkspace.evHu[267];
+acadoWorkspace.A[6986] = acadoWorkspace.evHu[268];
+acadoWorkspace.A[6987] = acadoWorkspace.evHu[269];
+acadoWorkspace.A[7026] = acadoWorkspace.evHu[270];
+acadoWorkspace.A[7027] = acadoWorkspace.evHu[271];
+acadoWorkspace.A[7066] = acadoWorkspace.evHu[272];
+acadoWorkspace.A[7067] = acadoWorkspace.evHu[273];
+acadoWorkspace.A[7106] = acadoWorkspace.evHu[274];
+acadoWorkspace.A[7107] = acadoWorkspace.evHu[275];
+acadoWorkspace.A[7146] = acadoWorkspace.evHu[276];
+acadoWorkspace.A[7147] = acadoWorkspace.evHu[277];
+acadoWorkspace.A[7186] = acadoWorkspace.evHu[278];
+acadoWorkspace.A[7187] = acadoWorkspace.evHu[279];
+acadoWorkspace.A[7228] = acadoWorkspace.evHu[280];
+acadoWorkspace.A[7229] = acadoWorkspace.evHu[281];
+acadoWorkspace.A[7268] = acadoWorkspace.evHu[282];
+acadoWorkspace.A[7269] = acadoWorkspace.evHu[283];
+acadoWorkspace.A[7308] = acadoWorkspace.evHu[284];
+acadoWorkspace.A[7309] = acadoWorkspace.evHu[285];
+acadoWorkspace.A[7348] = acadoWorkspace.evHu[286];
+acadoWorkspace.A[7349] = acadoWorkspace.evHu[287];
+acadoWorkspace.A[7388] = acadoWorkspace.evHu[288];
+acadoWorkspace.A[7389] = acadoWorkspace.evHu[289];
+acadoWorkspace.A[7428] = acadoWorkspace.evHu[290];
+acadoWorkspace.A[7429] = acadoWorkspace.evHu[291];
+acadoWorkspace.A[7468] = acadoWorkspace.evHu[292];
+acadoWorkspace.A[7469] = acadoWorkspace.evHu[293];
+acadoWorkspace.A[7508] = acadoWorkspace.evHu[294];
+acadoWorkspace.A[7509] = acadoWorkspace.evHu[295];
+acadoWorkspace.A[7548] = acadoWorkspace.evHu[296];
+acadoWorkspace.A[7549] = acadoWorkspace.evHu[297];
+acadoWorkspace.A[7588] = acadoWorkspace.evHu[298];
+acadoWorkspace.A[7589] = acadoWorkspace.evHu[299];
+acadoWorkspace.A[7630] = acadoWorkspace.evHu[300];
+acadoWorkspace.A[7631] = acadoWorkspace.evHu[301];
+acadoWorkspace.A[7670] = acadoWorkspace.evHu[302];
+acadoWorkspace.A[7671] = acadoWorkspace.evHu[303];
+acadoWorkspace.A[7710] = acadoWorkspace.evHu[304];
+acadoWorkspace.A[7711] = acadoWorkspace.evHu[305];
+acadoWorkspace.A[7750] = acadoWorkspace.evHu[306];
+acadoWorkspace.A[7751] = acadoWorkspace.evHu[307];
+acadoWorkspace.A[7790] = acadoWorkspace.evHu[308];
+acadoWorkspace.A[7791] = acadoWorkspace.evHu[309];
+acadoWorkspace.A[7830] = acadoWorkspace.evHu[310];
+acadoWorkspace.A[7831] = acadoWorkspace.evHu[311];
+acadoWorkspace.A[7870] = acadoWorkspace.evHu[312];
+acadoWorkspace.A[7871] = acadoWorkspace.evHu[313];
+acadoWorkspace.A[7910] = acadoWorkspace.evHu[314];
+acadoWorkspace.A[7911] = acadoWorkspace.evHu[315];
+acadoWorkspace.A[7950] = acadoWorkspace.evHu[316];
+acadoWorkspace.A[7951] = acadoWorkspace.evHu[317];
+acadoWorkspace.A[7990] = acadoWorkspace.evHu[318];
+acadoWorkspace.A[7991] = acadoWorkspace.evHu[319];
+acadoWorkspace.A[8032] = acadoWorkspace.evHu[320];
+acadoWorkspace.A[8033] = acadoWorkspace.evHu[321];
+acadoWorkspace.A[8072] = acadoWorkspace.evHu[322];
+acadoWorkspace.A[8073] = acadoWorkspace.evHu[323];
+acadoWorkspace.A[8112] = acadoWorkspace.evHu[324];
+acadoWorkspace.A[8113] = acadoWorkspace.evHu[325];
+acadoWorkspace.A[8152] = acadoWorkspace.evHu[326];
+acadoWorkspace.A[8153] = acadoWorkspace.evHu[327];
+acadoWorkspace.A[8192] = acadoWorkspace.evHu[328];
+acadoWorkspace.A[8193] = acadoWorkspace.evHu[329];
+acadoWorkspace.A[8232] = acadoWorkspace.evHu[330];
+acadoWorkspace.A[8233] = acadoWorkspace.evHu[331];
+acadoWorkspace.A[8272] = acadoWorkspace.evHu[332];
+acadoWorkspace.A[8273] = acadoWorkspace.evHu[333];
+acadoWorkspace.A[8312] = acadoWorkspace.evHu[334];
+acadoWorkspace.A[8313] = acadoWorkspace.evHu[335];
+acadoWorkspace.A[8352] = acadoWorkspace.evHu[336];
+acadoWorkspace.A[8353] = acadoWorkspace.evHu[337];
+acadoWorkspace.A[8392] = acadoWorkspace.evHu[338];
+acadoWorkspace.A[8393] = acadoWorkspace.evHu[339];
+acadoWorkspace.A[8434] = acadoWorkspace.evHu[340];
+acadoWorkspace.A[8435] = acadoWorkspace.evHu[341];
+acadoWorkspace.A[8474] = acadoWorkspace.evHu[342];
+acadoWorkspace.A[8475] = acadoWorkspace.evHu[343];
+acadoWorkspace.A[8514] = acadoWorkspace.evHu[344];
+acadoWorkspace.A[8515] = acadoWorkspace.evHu[345];
+acadoWorkspace.A[8554] = acadoWorkspace.evHu[346];
+acadoWorkspace.A[8555] = acadoWorkspace.evHu[347];
+acadoWorkspace.A[8594] = acadoWorkspace.evHu[348];
+acadoWorkspace.A[8595] = acadoWorkspace.evHu[349];
+acadoWorkspace.A[8634] = acadoWorkspace.evHu[350];
+acadoWorkspace.A[8635] = acadoWorkspace.evHu[351];
+acadoWorkspace.A[8674] = acadoWorkspace.evHu[352];
+acadoWorkspace.A[8675] = acadoWorkspace.evHu[353];
+acadoWorkspace.A[8714] = acadoWorkspace.evHu[354];
+acadoWorkspace.A[8715] = acadoWorkspace.evHu[355];
+acadoWorkspace.A[8754] = acadoWorkspace.evHu[356];
+acadoWorkspace.A[8755] = acadoWorkspace.evHu[357];
+acadoWorkspace.A[8794] = acadoWorkspace.evHu[358];
+acadoWorkspace.A[8795] = acadoWorkspace.evHu[359];
+acadoWorkspace.A[8836] = acadoWorkspace.evHu[360];
+acadoWorkspace.A[8837] = acadoWorkspace.evHu[361];
+acadoWorkspace.A[8876] = acadoWorkspace.evHu[362];
+acadoWorkspace.A[8877] = acadoWorkspace.evHu[363];
+acadoWorkspace.A[8916] = acadoWorkspace.evHu[364];
+acadoWorkspace.A[8917] = acadoWorkspace.evHu[365];
+acadoWorkspace.A[8956] = acadoWorkspace.evHu[366];
+acadoWorkspace.A[8957] = acadoWorkspace.evHu[367];
+acadoWorkspace.A[8996] = acadoWorkspace.evHu[368];
+acadoWorkspace.A[8997] = acadoWorkspace.evHu[369];
+acadoWorkspace.A[9036] = acadoWorkspace.evHu[370];
+acadoWorkspace.A[9037] = acadoWorkspace.evHu[371];
+acadoWorkspace.A[9076] = acadoWorkspace.evHu[372];
+acadoWorkspace.A[9077] = acadoWorkspace.evHu[373];
+acadoWorkspace.A[9116] = acadoWorkspace.evHu[374];
+acadoWorkspace.A[9117] = acadoWorkspace.evHu[375];
+acadoWorkspace.A[9156] = acadoWorkspace.evHu[376];
+acadoWorkspace.A[9157] = acadoWorkspace.evHu[377];
+acadoWorkspace.A[9196] = acadoWorkspace.evHu[378];
+acadoWorkspace.A[9197] = acadoWorkspace.evHu[379];
+acadoWorkspace.A[9238] = acadoWorkspace.evHu[380];
+acadoWorkspace.A[9239] = acadoWorkspace.evHu[381];
+acadoWorkspace.A[9278] = acadoWorkspace.evHu[382];
+acadoWorkspace.A[9279] = acadoWorkspace.evHu[383];
+acadoWorkspace.A[9318] = acadoWorkspace.evHu[384];
+acadoWorkspace.A[9319] = acadoWorkspace.evHu[385];
+acadoWorkspace.A[9358] = acadoWorkspace.evHu[386];
+acadoWorkspace.A[9359] = acadoWorkspace.evHu[387];
+acadoWorkspace.A[9398] = acadoWorkspace.evHu[388];
+acadoWorkspace.A[9399] = acadoWorkspace.evHu[389];
+acadoWorkspace.A[9438] = acadoWorkspace.evHu[390];
+acadoWorkspace.A[9439] = acadoWorkspace.evHu[391];
+acadoWorkspace.A[9478] = acadoWorkspace.evHu[392];
+acadoWorkspace.A[9479] = acadoWorkspace.evHu[393];
+acadoWorkspace.A[9518] = acadoWorkspace.evHu[394];
+acadoWorkspace.A[9519] = acadoWorkspace.evHu[395];
+acadoWorkspace.A[9558] = acadoWorkspace.evHu[396];
+acadoWorkspace.A[9559] = acadoWorkspace.evHu[397];
+acadoWorkspace.A[9598] = acadoWorkspace.evHu[398];
+acadoWorkspace.A[9599] = acadoWorkspace.evHu[399];
+acadoWorkspace.lbA[40] = acadoVariables.lbAValues[40] - acadoWorkspace.evH[0];
+acadoWorkspace.lbA[41] = acadoVariables.lbAValues[41] - acadoWorkspace.evH[1];
+acadoWorkspace.lbA[42] = acadoVariables.lbAValues[42] - acadoWorkspace.evH[2];
+acadoWorkspace.lbA[43] = acadoVariables.lbAValues[43] - acadoWorkspace.evH[3];
+acadoWorkspace.lbA[44] = acadoVariables.lbAValues[44] - acadoWorkspace.evH[4];
+acadoWorkspace.lbA[45] = acadoVariables.lbAValues[45] - acadoWorkspace.evH[5];
+acadoWorkspace.lbA[46] = acadoVariables.lbAValues[46] - acadoWorkspace.evH[6];
+acadoWorkspace.lbA[47] = acadoVariables.lbAValues[47] - acadoWorkspace.evH[7];
+acadoWorkspace.lbA[48] = acadoVariables.lbAValues[48] - acadoWorkspace.evH[8];
+acadoWorkspace.lbA[49] = acadoVariables.lbAValues[49] - acadoWorkspace.evH[9];
+acadoWorkspace.lbA[50] = acadoVariables.lbAValues[50] - acadoWorkspace.evH[10];
+acadoWorkspace.lbA[51] = acadoVariables.lbAValues[51] - acadoWorkspace.evH[11];
+acadoWorkspace.lbA[52] = acadoVariables.lbAValues[52] - acadoWorkspace.evH[12];
+acadoWorkspace.lbA[53] = acadoVariables.lbAValues[53] - acadoWorkspace.evH[13];
+acadoWorkspace.lbA[54] = acadoVariables.lbAValues[54] - acadoWorkspace.evH[14];
+acadoWorkspace.lbA[55] = acadoVariables.lbAValues[55] - acadoWorkspace.evH[15];
+acadoWorkspace.lbA[56] = acadoVariables.lbAValues[56] - acadoWorkspace.evH[16];
+acadoWorkspace.lbA[57] = acadoVariables.lbAValues[57] - acadoWorkspace.evH[17];
+acadoWorkspace.lbA[58] = acadoVariables.lbAValues[58] - acadoWorkspace.evH[18];
+acadoWorkspace.lbA[59] = acadoVariables.lbAValues[59] - acadoWorkspace.evH[19];
+acadoWorkspace.lbA[60] = acadoVariables.lbAValues[60] - acadoWorkspace.evH[20];
+acadoWorkspace.lbA[61] = acadoVariables.lbAValues[61] - acadoWorkspace.evH[21];
+acadoWorkspace.lbA[62] = acadoVariables.lbAValues[62] - acadoWorkspace.evH[22];
+acadoWorkspace.lbA[63] = acadoVariables.lbAValues[63] - acadoWorkspace.evH[23];
+acadoWorkspace.lbA[64] = acadoVariables.lbAValues[64] - acadoWorkspace.evH[24];
+acadoWorkspace.lbA[65] = acadoVariables.lbAValues[65] - acadoWorkspace.evH[25];
+acadoWorkspace.lbA[66] = acadoVariables.lbAValues[66] - acadoWorkspace.evH[26];
+acadoWorkspace.lbA[67] = acadoVariables.lbAValues[67] - acadoWorkspace.evH[27];
+acadoWorkspace.lbA[68] = acadoVariables.lbAValues[68] - acadoWorkspace.evH[28];
+acadoWorkspace.lbA[69] = acadoVariables.lbAValues[69] - acadoWorkspace.evH[29];
+acadoWorkspace.lbA[70] = acadoVariables.lbAValues[70] - acadoWorkspace.evH[30];
+acadoWorkspace.lbA[71] = acadoVariables.lbAValues[71] - acadoWorkspace.evH[31];
+acadoWorkspace.lbA[72] = acadoVariables.lbAValues[72] - acadoWorkspace.evH[32];
+acadoWorkspace.lbA[73] = acadoVariables.lbAValues[73] - acadoWorkspace.evH[33];
+acadoWorkspace.lbA[74] = acadoVariables.lbAValues[74] - acadoWorkspace.evH[34];
+acadoWorkspace.lbA[75] = acadoVariables.lbAValues[75] - acadoWorkspace.evH[35];
+acadoWorkspace.lbA[76] = acadoVariables.lbAValues[76] - acadoWorkspace.evH[36];
+acadoWorkspace.lbA[77] = acadoVariables.lbAValues[77] - acadoWorkspace.evH[37];
+acadoWorkspace.lbA[78] = acadoVariables.lbAValues[78] - acadoWorkspace.evH[38];
+acadoWorkspace.lbA[79] = acadoVariables.lbAValues[79] - acadoWorkspace.evH[39];
+acadoWorkspace.lbA[80] = acadoVariables.lbAValues[80] - acadoWorkspace.evH[40];
+acadoWorkspace.lbA[81] = acadoVariables.lbAValues[81] - acadoWorkspace.evH[41];
+acadoWorkspace.lbA[82] = acadoVariables.lbAValues[82] - acadoWorkspace.evH[42];
+acadoWorkspace.lbA[83] = acadoVariables.lbAValues[83] - acadoWorkspace.evH[43];
+acadoWorkspace.lbA[84] = acadoVariables.lbAValues[84] - acadoWorkspace.evH[44];
+acadoWorkspace.lbA[85] = acadoVariables.lbAValues[85] - acadoWorkspace.evH[45];
+acadoWorkspace.lbA[86] = acadoVariables.lbAValues[86] - acadoWorkspace.evH[46];
+acadoWorkspace.lbA[87] = acadoVariables.lbAValues[87] - acadoWorkspace.evH[47];
+acadoWorkspace.lbA[88] = acadoVariables.lbAValues[88] - acadoWorkspace.evH[48];
+acadoWorkspace.lbA[89] = acadoVariables.lbAValues[89] - acadoWorkspace.evH[49];
+acadoWorkspace.lbA[90] = acadoVariables.lbAValues[90] - acadoWorkspace.evH[50];
+acadoWorkspace.lbA[91] = acadoVariables.lbAValues[91] - acadoWorkspace.evH[51];
+acadoWorkspace.lbA[92] = acadoVariables.lbAValues[92] - acadoWorkspace.evH[52];
+acadoWorkspace.lbA[93] = acadoVariables.lbAValues[93] - acadoWorkspace.evH[53];
+acadoWorkspace.lbA[94] = acadoVariables.lbAValues[94] - acadoWorkspace.evH[54];
+acadoWorkspace.lbA[95] = acadoVariables.lbAValues[95] - acadoWorkspace.evH[55];
+acadoWorkspace.lbA[96] = acadoVariables.lbAValues[96] - acadoWorkspace.evH[56];
+acadoWorkspace.lbA[97] = acadoVariables.lbAValues[97] - acadoWorkspace.evH[57];
+acadoWorkspace.lbA[98] = acadoVariables.lbAValues[98] - acadoWorkspace.evH[58];
+acadoWorkspace.lbA[99] = acadoVariables.lbAValues[99] - acadoWorkspace.evH[59];
+acadoWorkspace.lbA[100] = acadoVariables.lbAValues[100] - acadoWorkspace.evH[60];
+acadoWorkspace.lbA[101] = acadoVariables.lbAValues[101] - acadoWorkspace.evH[61];
+acadoWorkspace.lbA[102] = acadoVariables.lbAValues[102] - acadoWorkspace.evH[62];
+acadoWorkspace.lbA[103] = acadoVariables.lbAValues[103] - acadoWorkspace.evH[63];
+acadoWorkspace.lbA[104] = acadoVariables.lbAValues[104] - acadoWorkspace.evH[64];
+acadoWorkspace.lbA[105] = acadoVariables.lbAValues[105] - acadoWorkspace.evH[65];
+acadoWorkspace.lbA[106] = acadoVariables.lbAValues[106] - acadoWorkspace.evH[66];
+acadoWorkspace.lbA[107] = acadoVariables.lbAValues[107] - acadoWorkspace.evH[67];
+acadoWorkspace.lbA[108] = acadoVariables.lbAValues[108] - acadoWorkspace.evH[68];
+acadoWorkspace.lbA[109] = acadoVariables.lbAValues[109] - acadoWorkspace.evH[69];
+acadoWorkspace.lbA[110] = acadoVariables.lbAValues[110] - acadoWorkspace.evH[70];
+acadoWorkspace.lbA[111] = acadoVariables.lbAValues[111] - acadoWorkspace.evH[71];
+acadoWorkspace.lbA[112] = acadoVariables.lbAValues[112] - acadoWorkspace.evH[72];
+acadoWorkspace.lbA[113] = acadoVariables.lbAValues[113] - acadoWorkspace.evH[73];
+acadoWorkspace.lbA[114] = acadoVariables.lbAValues[114] - acadoWorkspace.evH[74];
+acadoWorkspace.lbA[115] = acadoVariables.lbAValues[115] - acadoWorkspace.evH[75];
+acadoWorkspace.lbA[116] = acadoVariables.lbAValues[116] - acadoWorkspace.evH[76];
+acadoWorkspace.lbA[117] = acadoVariables.lbAValues[117] - acadoWorkspace.evH[77];
+acadoWorkspace.lbA[118] = acadoVariables.lbAValues[118] - acadoWorkspace.evH[78];
+acadoWorkspace.lbA[119] = acadoVariables.lbAValues[119] - acadoWorkspace.evH[79];
+acadoWorkspace.lbA[120] = acadoVariables.lbAValues[120] - acadoWorkspace.evH[80];
+acadoWorkspace.lbA[121] = acadoVariables.lbAValues[121] - acadoWorkspace.evH[81];
+acadoWorkspace.lbA[122] = acadoVariables.lbAValues[122] - acadoWorkspace.evH[82];
+acadoWorkspace.lbA[123] = acadoVariables.lbAValues[123] - acadoWorkspace.evH[83];
+acadoWorkspace.lbA[124] = acadoVariables.lbAValues[124] - acadoWorkspace.evH[84];
+acadoWorkspace.lbA[125] = acadoVariables.lbAValues[125] - acadoWorkspace.evH[85];
+acadoWorkspace.lbA[126] = acadoVariables.lbAValues[126] - acadoWorkspace.evH[86];
+acadoWorkspace.lbA[127] = acadoVariables.lbAValues[127] - acadoWorkspace.evH[87];
+acadoWorkspace.lbA[128] = acadoVariables.lbAValues[128] - acadoWorkspace.evH[88];
+acadoWorkspace.lbA[129] = acadoVariables.lbAValues[129] - acadoWorkspace.evH[89];
+acadoWorkspace.lbA[130] = acadoVariables.lbAValues[130] - acadoWorkspace.evH[90];
+acadoWorkspace.lbA[131] = acadoVariables.lbAValues[131] - acadoWorkspace.evH[91];
+acadoWorkspace.lbA[132] = acadoVariables.lbAValues[132] - acadoWorkspace.evH[92];
+acadoWorkspace.lbA[133] = acadoVariables.lbAValues[133] - acadoWorkspace.evH[93];
+acadoWorkspace.lbA[134] = acadoVariables.lbAValues[134] - acadoWorkspace.evH[94];
+acadoWorkspace.lbA[135] = acadoVariables.lbAValues[135] - acadoWorkspace.evH[95];
+acadoWorkspace.lbA[136] = acadoVariables.lbAValues[136] - acadoWorkspace.evH[96];
+acadoWorkspace.lbA[137] = acadoVariables.lbAValues[137] - acadoWorkspace.evH[97];
+acadoWorkspace.lbA[138] = acadoVariables.lbAValues[138] - acadoWorkspace.evH[98];
+acadoWorkspace.lbA[139] = acadoVariables.lbAValues[139] - acadoWorkspace.evH[99];
+acadoWorkspace.lbA[140] = acadoVariables.lbAValues[140] - acadoWorkspace.evH[100];
+acadoWorkspace.lbA[141] = acadoVariables.lbAValues[141] - acadoWorkspace.evH[101];
+acadoWorkspace.lbA[142] = acadoVariables.lbAValues[142] - acadoWorkspace.evH[102];
+acadoWorkspace.lbA[143] = acadoVariables.lbAValues[143] - acadoWorkspace.evH[103];
+acadoWorkspace.lbA[144] = acadoVariables.lbAValues[144] - acadoWorkspace.evH[104];
+acadoWorkspace.lbA[145] = acadoVariables.lbAValues[145] - acadoWorkspace.evH[105];
+acadoWorkspace.lbA[146] = acadoVariables.lbAValues[146] - acadoWorkspace.evH[106];
+acadoWorkspace.lbA[147] = acadoVariables.lbAValues[147] - acadoWorkspace.evH[107];
+acadoWorkspace.lbA[148] = acadoVariables.lbAValues[148] - acadoWorkspace.evH[108];
+acadoWorkspace.lbA[149] = acadoVariables.lbAValues[149] - acadoWorkspace.evH[109];
+acadoWorkspace.lbA[150] = acadoVariables.lbAValues[150] - acadoWorkspace.evH[110];
+acadoWorkspace.lbA[151] = acadoVariables.lbAValues[151] - acadoWorkspace.evH[111];
+acadoWorkspace.lbA[152] = acadoVariables.lbAValues[152] - acadoWorkspace.evH[112];
+acadoWorkspace.lbA[153] = acadoVariables.lbAValues[153] - acadoWorkspace.evH[113];
+acadoWorkspace.lbA[154] = acadoVariables.lbAValues[154] - acadoWorkspace.evH[114];
+acadoWorkspace.lbA[155] = acadoVariables.lbAValues[155] - acadoWorkspace.evH[115];
+acadoWorkspace.lbA[156] = acadoVariables.lbAValues[156] - acadoWorkspace.evH[116];
+acadoWorkspace.lbA[157] = acadoVariables.lbAValues[157] - acadoWorkspace.evH[117];
+acadoWorkspace.lbA[158] = acadoVariables.lbAValues[158] - acadoWorkspace.evH[118];
+acadoWorkspace.lbA[159] = acadoVariables.lbAValues[159] - acadoWorkspace.evH[119];
+acadoWorkspace.lbA[160] = acadoVariables.lbAValues[160] - acadoWorkspace.evH[120];
+acadoWorkspace.lbA[161] = acadoVariables.lbAValues[161] - acadoWorkspace.evH[121];
+acadoWorkspace.lbA[162] = acadoVariables.lbAValues[162] - acadoWorkspace.evH[122];
+acadoWorkspace.lbA[163] = acadoVariables.lbAValues[163] - acadoWorkspace.evH[123];
+acadoWorkspace.lbA[164] = acadoVariables.lbAValues[164] - acadoWorkspace.evH[124];
+acadoWorkspace.lbA[165] = acadoVariables.lbAValues[165] - acadoWorkspace.evH[125];
+acadoWorkspace.lbA[166] = acadoVariables.lbAValues[166] - acadoWorkspace.evH[126];
+acadoWorkspace.lbA[167] = acadoVariables.lbAValues[167] - acadoWorkspace.evH[127];
+acadoWorkspace.lbA[168] = acadoVariables.lbAValues[168] - acadoWorkspace.evH[128];
+acadoWorkspace.lbA[169] = acadoVariables.lbAValues[169] - acadoWorkspace.evH[129];
+acadoWorkspace.lbA[170] = acadoVariables.lbAValues[170] - acadoWorkspace.evH[130];
+acadoWorkspace.lbA[171] = acadoVariables.lbAValues[171] - acadoWorkspace.evH[131];
+acadoWorkspace.lbA[172] = acadoVariables.lbAValues[172] - acadoWorkspace.evH[132];
+acadoWorkspace.lbA[173] = acadoVariables.lbAValues[173] - acadoWorkspace.evH[133];
+acadoWorkspace.lbA[174] = acadoVariables.lbAValues[174] - acadoWorkspace.evH[134];
+acadoWorkspace.lbA[175] = acadoVariables.lbAValues[175] - acadoWorkspace.evH[135];
+acadoWorkspace.lbA[176] = acadoVariables.lbAValues[176] - acadoWorkspace.evH[136];
+acadoWorkspace.lbA[177] = acadoVariables.lbAValues[177] - acadoWorkspace.evH[137];
+acadoWorkspace.lbA[178] = acadoVariables.lbAValues[178] - acadoWorkspace.evH[138];
+acadoWorkspace.lbA[179] = acadoVariables.lbAValues[179] - acadoWorkspace.evH[139];
+acadoWorkspace.lbA[180] = acadoVariables.lbAValues[180] - acadoWorkspace.evH[140];
+acadoWorkspace.lbA[181] = acadoVariables.lbAValues[181] - acadoWorkspace.evH[141];
+acadoWorkspace.lbA[182] = acadoVariables.lbAValues[182] - acadoWorkspace.evH[142];
+acadoWorkspace.lbA[183] = acadoVariables.lbAValues[183] - acadoWorkspace.evH[143];
+acadoWorkspace.lbA[184] = acadoVariables.lbAValues[184] - acadoWorkspace.evH[144];
+acadoWorkspace.lbA[185] = acadoVariables.lbAValues[185] - acadoWorkspace.evH[145];
+acadoWorkspace.lbA[186] = acadoVariables.lbAValues[186] - acadoWorkspace.evH[146];
+acadoWorkspace.lbA[187] = acadoVariables.lbAValues[187] - acadoWorkspace.evH[147];
+acadoWorkspace.lbA[188] = acadoVariables.lbAValues[188] - acadoWorkspace.evH[148];
+acadoWorkspace.lbA[189] = acadoVariables.lbAValues[189] - acadoWorkspace.evH[149];
+acadoWorkspace.lbA[190] = acadoVariables.lbAValues[190] - acadoWorkspace.evH[150];
+acadoWorkspace.lbA[191] = acadoVariables.lbAValues[191] - acadoWorkspace.evH[151];
+acadoWorkspace.lbA[192] = acadoVariables.lbAValues[192] - acadoWorkspace.evH[152];
+acadoWorkspace.lbA[193] = acadoVariables.lbAValues[193] - acadoWorkspace.evH[153];
+acadoWorkspace.lbA[194] = acadoVariables.lbAValues[194] - acadoWorkspace.evH[154];
+acadoWorkspace.lbA[195] = acadoVariables.lbAValues[195] - acadoWorkspace.evH[155];
+acadoWorkspace.lbA[196] = acadoVariables.lbAValues[196] - acadoWorkspace.evH[156];
+acadoWorkspace.lbA[197] = acadoVariables.lbAValues[197] - acadoWorkspace.evH[157];
+acadoWorkspace.lbA[198] = acadoVariables.lbAValues[198] - acadoWorkspace.evH[158];
+acadoWorkspace.lbA[199] = acadoVariables.lbAValues[199] - acadoWorkspace.evH[159];
+acadoWorkspace.lbA[200] = acadoVariables.lbAValues[200] - acadoWorkspace.evH[160];
+acadoWorkspace.lbA[201] = acadoVariables.lbAValues[201] - acadoWorkspace.evH[161];
+acadoWorkspace.lbA[202] = acadoVariables.lbAValues[202] - acadoWorkspace.evH[162];
+acadoWorkspace.lbA[203] = acadoVariables.lbAValues[203] - acadoWorkspace.evH[163];
+acadoWorkspace.lbA[204] = acadoVariables.lbAValues[204] - acadoWorkspace.evH[164];
+acadoWorkspace.lbA[205] = acadoVariables.lbAValues[205] - acadoWorkspace.evH[165];
+acadoWorkspace.lbA[206] = acadoVariables.lbAValues[206] - acadoWorkspace.evH[166];
+acadoWorkspace.lbA[207] = acadoVariables.lbAValues[207] - acadoWorkspace.evH[167];
+acadoWorkspace.lbA[208] = acadoVariables.lbAValues[208] - acadoWorkspace.evH[168];
+acadoWorkspace.lbA[209] = acadoVariables.lbAValues[209] - acadoWorkspace.evH[169];
+acadoWorkspace.lbA[210] = acadoVariables.lbAValues[210] - acadoWorkspace.evH[170];
+acadoWorkspace.lbA[211] = acadoVariables.lbAValues[211] - acadoWorkspace.evH[171];
+acadoWorkspace.lbA[212] = acadoVariables.lbAValues[212] - acadoWorkspace.evH[172];
+acadoWorkspace.lbA[213] = acadoVariables.lbAValues[213] - acadoWorkspace.evH[173];
+acadoWorkspace.lbA[214] = acadoVariables.lbAValues[214] - acadoWorkspace.evH[174];
+acadoWorkspace.lbA[215] = acadoVariables.lbAValues[215] - acadoWorkspace.evH[175];
+acadoWorkspace.lbA[216] = acadoVariables.lbAValues[216] - acadoWorkspace.evH[176];
+acadoWorkspace.lbA[217] = acadoVariables.lbAValues[217] - acadoWorkspace.evH[177];
+acadoWorkspace.lbA[218] = acadoVariables.lbAValues[218] - acadoWorkspace.evH[178];
+acadoWorkspace.lbA[219] = acadoVariables.lbAValues[219] - acadoWorkspace.evH[179];
+acadoWorkspace.lbA[220] = acadoVariables.lbAValues[220] - acadoWorkspace.evH[180];
+acadoWorkspace.lbA[221] = acadoVariables.lbAValues[221] - acadoWorkspace.evH[181];
+acadoWorkspace.lbA[222] = acadoVariables.lbAValues[222] - acadoWorkspace.evH[182];
+acadoWorkspace.lbA[223] = acadoVariables.lbAValues[223] - acadoWorkspace.evH[183];
+acadoWorkspace.lbA[224] = acadoVariables.lbAValues[224] - acadoWorkspace.evH[184];
+acadoWorkspace.lbA[225] = acadoVariables.lbAValues[225] - acadoWorkspace.evH[185];
+acadoWorkspace.lbA[226] = acadoVariables.lbAValues[226] - acadoWorkspace.evH[186];
+acadoWorkspace.lbA[227] = acadoVariables.lbAValues[227] - acadoWorkspace.evH[187];
+acadoWorkspace.lbA[228] = acadoVariables.lbAValues[228] - acadoWorkspace.evH[188];
+acadoWorkspace.lbA[229] = acadoVariables.lbAValues[229] - acadoWorkspace.evH[189];
+acadoWorkspace.lbA[230] = acadoVariables.lbAValues[230] - acadoWorkspace.evH[190];
+acadoWorkspace.lbA[231] = acadoVariables.lbAValues[231] - acadoWorkspace.evH[191];
+acadoWorkspace.lbA[232] = acadoVariables.lbAValues[232] - acadoWorkspace.evH[192];
+acadoWorkspace.lbA[233] = acadoVariables.lbAValues[233] - acadoWorkspace.evH[193];
+acadoWorkspace.lbA[234] = acadoVariables.lbAValues[234] - acadoWorkspace.evH[194];
+acadoWorkspace.lbA[235] = acadoVariables.lbAValues[235] - acadoWorkspace.evH[195];
+acadoWorkspace.lbA[236] = acadoVariables.lbAValues[236] - acadoWorkspace.evH[196];
+acadoWorkspace.lbA[237] = acadoVariables.lbAValues[237] - acadoWorkspace.evH[197];
+acadoWorkspace.lbA[238] = acadoVariables.lbAValues[238] - acadoWorkspace.evH[198];
+acadoWorkspace.lbA[239] = acadoVariables.lbAValues[239] - acadoWorkspace.evH[199];
+
+acadoWorkspace.ubA[40] = acadoVariables.ubAValues[40] - acadoWorkspace.evH[0];
+acadoWorkspace.ubA[41] = acadoVariables.ubAValues[41] - acadoWorkspace.evH[1];
+acadoWorkspace.ubA[42] = acadoVariables.ubAValues[42] - acadoWorkspace.evH[2];
+acadoWorkspace.ubA[43] = acadoVariables.ubAValues[43] - acadoWorkspace.evH[3];
+acadoWorkspace.ubA[44] = acadoVariables.ubAValues[44] - acadoWorkspace.evH[4];
+acadoWorkspace.ubA[45] = acadoVariables.ubAValues[45] - acadoWorkspace.evH[5];
+acadoWorkspace.ubA[46] = acadoVariables.ubAValues[46] - acadoWorkspace.evH[6];
+acadoWorkspace.ubA[47] = acadoVariables.ubAValues[47] - acadoWorkspace.evH[7];
+acadoWorkspace.ubA[48] = acadoVariables.ubAValues[48] - acadoWorkspace.evH[8];
+acadoWorkspace.ubA[49] = acadoVariables.ubAValues[49] - acadoWorkspace.evH[9];
+acadoWorkspace.ubA[50] = acadoVariables.ubAValues[50] - acadoWorkspace.evH[10];
+acadoWorkspace.ubA[51] = acadoVariables.ubAValues[51] - acadoWorkspace.evH[11];
+acadoWorkspace.ubA[52] = acadoVariables.ubAValues[52] - acadoWorkspace.evH[12];
+acadoWorkspace.ubA[53] = acadoVariables.ubAValues[53] - acadoWorkspace.evH[13];
+acadoWorkspace.ubA[54] = acadoVariables.ubAValues[54] - acadoWorkspace.evH[14];
+acadoWorkspace.ubA[55] = acadoVariables.ubAValues[55] - acadoWorkspace.evH[15];
+acadoWorkspace.ubA[56] = acadoVariables.ubAValues[56] - acadoWorkspace.evH[16];
+acadoWorkspace.ubA[57] = acadoVariables.ubAValues[57] - acadoWorkspace.evH[17];
+acadoWorkspace.ubA[58] = acadoVariables.ubAValues[58] - acadoWorkspace.evH[18];
+acadoWorkspace.ubA[59] = acadoVariables.ubAValues[59] - acadoWorkspace.evH[19];
+acadoWorkspace.ubA[60] = acadoVariables.ubAValues[60] - acadoWorkspace.evH[20];
+acadoWorkspace.ubA[61] = acadoVariables.ubAValues[61] - acadoWorkspace.evH[21];
+acadoWorkspace.ubA[62] = acadoVariables.ubAValues[62] - acadoWorkspace.evH[22];
+acadoWorkspace.ubA[63] = acadoVariables.ubAValues[63] - acadoWorkspace.evH[23];
+acadoWorkspace.ubA[64] = acadoVariables.ubAValues[64] - acadoWorkspace.evH[24];
+acadoWorkspace.ubA[65] = acadoVariables.ubAValues[65] - acadoWorkspace.evH[25];
+acadoWorkspace.ubA[66] = acadoVariables.ubAValues[66] - acadoWorkspace.evH[26];
+acadoWorkspace.ubA[67] = acadoVariables.ubAValues[67] - acadoWorkspace.evH[27];
+acadoWorkspace.ubA[68] = acadoVariables.ubAValues[68] - acadoWorkspace.evH[28];
+acadoWorkspace.ubA[69] = acadoVariables.ubAValues[69] - acadoWorkspace.evH[29];
+acadoWorkspace.ubA[70] = acadoVariables.ubAValues[70] - acadoWorkspace.evH[30];
+acadoWorkspace.ubA[71] = acadoVariables.ubAValues[71] - acadoWorkspace.evH[31];
+acadoWorkspace.ubA[72] = acadoVariables.ubAValues[72] - acadoWorkspace.evH[32];
+acadoWorkspace.ubA[73] = acadoVariables.ubAValues[73] - acadoWorkspace.evH[33];
+acadoWorkspace.ubA[74] = acadoVariables.ubAValues[74] - acadoWorkspace.evH[34];
+acadoWorkspace.ubA[75] = acadoVariables.ubAValues[75] - acadoWorkspace.evH[35];
+acadoWorkspace.ubA[76] = acadoVariables.ubAValues[76] - acadoWorkspace.evH[36];
+acadoWorkspace.ubA[77] = acadoVariables.ubAValues[77] - acadoWorkspace.evH[37];
+acadoWorkspace.ubA[78] = acadoVariables.ubAValues[78] - acadoWorkspace.evH[38];
+acadoWorkspace.ubA[79] = acadoVariables.ubAValues[79] - acadoWorkspace.evH[39];
+acadoWorkspace.ubA[80] = acadoVariables.ubAValues[80] - acadoWorkspace.evH[40];
+acadoWorkspace.ubA[81] = acadoVariables.ubAValues[81] - acadoWorkspace.evH[41];
+acadoWorkspace.ubA[82] = acadoVariables.ubAValues[82] - acadoWorkspace.evH[42];
+acadoWorkspace.ubA[83] = acadoVariables.ubAValues[83] - acadoWorkspace.evH[43];
+acadoWorkspace.ubA[84] = acadoVariables.ubAValues[84] - acadoWorkspace.evH[44];
+acadoWorkspace.ubA[85] = acadoVariables.ubAValues[85] - acadoWorkspace.evH[45];
+acadoWorkspace.ubA[86] = acadoVariables.ubAValues[86] - acadoWorkspace.evH[46];
+acadoWorkspace.ubA[87] = acadoVariables.ubAValues[87] - acadoWorkspace.evH[47];
+acadoWorkspace.ubA[88] = acadoVariables.ubAValues[88] - acadoWorkspace.evH[48];
+acadoWorkspace.ubA[89] = acadoVariables.ubAValues[89] - acadoWorkspace.evH[49];
+acadoWorkspace.ubA[90] = acadoVariables.ubAValues[90] - acadoWorkspace.evH[50];
+acadoWorkspace.ubA[91] = acadoVariables.ubAValues[91] - acadoWorkspace.evH[51];
+acadoWorkspace.ubA[92] = acadoVariables.ubAValues[92] - acadoWorkspace.evH[52];
+acadoWorkspace.ubA[93] = acadoVariables.ubAValues[93] - acadoWorkspace.evH[53];
+acadoWorkspace.ubA[94] = acadoVariables.ubAValues[94] - acadoWorkspace.evH[54];
+acadoWorkspace.ubA[95] = acadoVariables.ubAValues[95] - acadoWorkspace.evH[55];
+acadoWorkspace.ubA[96] = acadoVariables.ubAValues[96] - acadoWorkspace.evH[56];
+acadoWorkspace.ubA[97] = acadoVariables.ubAValues[97] - acadoWorkspace.evH[57];
+acadoWorkspace.ubA[98] = acadoVariables.ubAValues[98] - acadoWorkspace.evH[58];
+acadoWorkspace.ubA[99] = acadoVariables.ubAValues[99] - acadoWorkspace.evH[59];
+acadoWorkspace.ubA[100] = acadoVariables.ubAValues[100] - acadoWorkspace.evH[60];
+acadoWorkspace.ubA[101] = acadoVariables.ubAValues[101] - acadoWorkspace.evH[61];
+acadoWorkspace.ubA[102] = acadoVariables.ubAValues[102] - acadoWorkspace.evH[62];
+acadoWorkspace.ubA[103] = acadoVariables.ubAValues[103] - acadoWorkspace.evH[63];
+acadoWorkspace.ubA[104] = acadoVariables.ubAValues[104] - acadoWorkspace.evH[64];
+acadoWorkspace.ubA[105] = acadoVariables.ubAValues[105] - acadoWorkspace.evH[65];
+acadoWorkspace.ubA[106] = acadoVariables.ubAValues[106] - acadoWorkspace.evH[66];
+acadoWorkspace.ubA[107] = acadoVariables.ubAValues[107] - acadoWorkspace.evH[67];
+acadoWorkspace.ubA[108] = acadoVariables.ubAValues[108] - acadoWorkspace.evH[68];
+acadoWorkspace.ubA[109] = acadoVariables.ubAValues[109] - acadoWorkspace.evH[69];
+acadoWorkspace.ubA[110] = acadoVariables.ubAValues[110] - acadoWorkspace.evH[70];
+acadoWorkspace.ubA[111] = acadoVariables.ubAValues[111] - acadoWorkspace.evH[71];
+acadoWorkspace.ubA[112] = acadoVariables.ubAValues[112] - acadoWorkspace.evH[72];
+acadoWorkspace.ubA[113] = acadoVariables.ubAValues[113] - acadoWorkspace.evH[73];
+acadoWorkspace.ubA[114] = acadoVariables.ubAValues[114] - acadoWorkspace.evH[74];
+acadoWorkspace.ubA[115] = acadoVariables.ubAValues[115] - acadoWorkspace.evH[75];
+acadoWorkspace.ubA[116] = acadoVariables.ubAValues[116] - acadoWorkspace.evH[76];
+acadoWorkspace.ubA[117] = acadoVariables.ubAValues[117] - acadoWorkspace.evH[77];
+acadoWorkspace.ubA[118] = acadoVariables.ubAValues[118] - acadoWorkspace.evH[78];
+acadoWorkspace.ubA[119] = acadoVariables.ubAValues[119] - acadoWorkspace.evH[79];
+acadoWorkspace.ubA[120] = acadoVariables.ubAValues[120] - acadoWorkspace.evH[80];
+acadoWorkspace.ubA[121] = acadoVariables.ubAValues[121] - acadoWorkspace.evH[81];
+acadoWorkspace.ubA[122] = acadoVariables.ubAValues[122] - acadoWorkspace.evH[82];
+acadoWorkspace.ubA[123] = acadoVariables.ubAValues[123] - acadoWorkspace.evH[83];
+acadoWorkspace.ubA[124] = acadoVariables.ubAValues[124] - acadoWorkspace.evH[84];
+acadoWorkspace.ubA[125] = acadoVariables.ubAValues[125] - acadoWorkspace.evH[85];
+acadoWorkspace.ubA[126] = acadoVariables.ubAValues[126] - acadoWorkspace.evH[86];
+acadoWorkspace.ubA[127] = acadoVariables.ubAValues[127] - acadoWorkspace.evH[87];
+acadoWorkspace.ubA[128] = acadoVariables.ubAValues[128] - acadoWorkspace.evH[88];
+acadoWorkspace.ubA[129] = acadoVariables.ubAValues[129] - acadoWorkspace.evH[89];
+acadoWorkspace.ubA[130] = acadoVariables.ubAValues[130] - acadoWorkspace.evH[90];
+acadoWorkspace.ubA[131] = acadoVariables.ubAValues[131] - acadoWorkspace.evH[91];
+acadoWorkspace.ubA[132] = acadoVariables.ubAValues[132] - acadoWorkspace.evH[92];
+acadoWorkspace.ubA[133] = acadoVariables.ubAValues[133] - acadoWorkspace.evH[93];
+acadoWorkspace.ubA[134] = acadoVariables.ubAValues[134] - acadoWorkspace.evH[94];
+acadoWorkspace.ubA[135] = acadoVariables.ubAValues[135] - acadoWorkspace.evH[95];
+acadoWorkspace.ubA[136] = acadoVariables.ubAValues[136] - acadoWorkspace.evH[96];
+acadoWorkspace.ubA[137] = acadoVariables.ubAValues[137] - acadoWorkspace.evH[97];
+acadoWorkspace.ubA[138] = acadoVariables.ubAValues[138] - acadoWorkspace.evH[98];
+acadoWorkspace.ubA[139] = acadoVariables.ubAValues[139] - acadoWorkspace.evH[99];
+acadoWorkspace.ubA[140] = acadoVariables.ubAValues[140] - acadoWorkspace.evH[100];
+acadoWorkspace.ubA[141] = acadoVariables.ubAValues[141] - acadoWorkspace.evH[101];
+acadoWorkspace.ubA[142] = acadoVariables.ubAValues[142] - acadoWorkspace.evH[102];
+acadoWorkspace.ubA[143] = acadoVariables.ubAValues[143] - acadoWorkspace.evH[103];
+acadoWorkspace.ubA[144] = acadoVariables.ubAValues[144] - acadoWorkspace.evH[104];
+acadoWorkspace.ubA[145] = acadoVariables.ubAValues[145] - acadoWorkspace.evH[105];
+acadoWorkspace.ubA[146] = acadoVariables.ubAValues[146] - acadoWorkspace.evH[106];
+acadoWorkspace.ubA[147] = acadoVariables.ubAValues[147] - acadoWorkspace.evH[107];
+acadoWorkspace.ubA[148] = acadoVariables.ubAValues[148] - acadoWorkspace.evH[108];
+acadoWorkspace.ubA[149] = acadoVariables.ubAValues[149] - acadoWorkspace.evH[109];
+acadoWorkspace.ubA[150] = acadoVariables.ubAValues[150] - acadoWorkspace.evH[110];
+acadoWorkspace.ubA[151] = acadoVariables.ubAValues[151] - acadoWorkspace.evH[111];
+acadoWorkspace.ubA[152] = acadoVariables.ubAValues[152] - acadoWorkspace.evH[112];
+acadoWorkspace.ubA[153] = acadoVariables.ubAValues[153] - acadoWorkspace.evH[113];
+acadoWorkspace.ubA[154] = acadoVariables.ubAValues[154] - acadoWorkspace.evH[114];
+acadoWorkspace.ubA[155] = acadoVariables.ubAValues[155] - acadoWorkspace.evH[115];
+acadoWorkspace.ubA[156] = acadoVariables.ubAValues[156] - acadoWorkspace.evH[116];
+acadoWorkspace.ubA[157] = acadoVariables.ubAValues[157] - acadoWorkspace.evH[117];
+acadoWorkspace.ubA[158] = acadoVariables.ubAValues[158] - acadoWorkspace.evH[118];
+acadoWorkspace.ubA[159] = acadoVariables.ubAValues[159] - acadoWorkspace.evH[119];
+acadoWorkspace.ubA[160] = acadoVariables.ubAValues[160] - acadoWorkspace.evH[120];
+acadoWorkspace.ubA[161] = acadoVariables.ubAValues[161] - acadoWorkspace.evH[121];
+acadoWorkspace.ubA[162] = acadoVariables.ubAValues[162] - acadoWorkspace.evH[122];
+acadoWorkspace.ubA[163] = acadoVariables.ubAValues[163] - acadoWorkspace.evH[123];
+acadoWorkspace.ubA[164] = acadoVariables.ubAValues[164] - acadoWorkspace.evH[124];
+acadoWorkspace.ubA[165] = acadoVariables.ubAValues[165] - acadoWorkspace.evH[125];
+acadoWorkspace.ubA[166] = acadoVariables.ubAValues[166] - acadoWorkspace.evH[126];
+acadoWorkspace.ubA[167] = acadoVariables.ubAValues[167] - acadoWorkspace.evH[127];
+acadoWorkspace.ubA[168] = acadoVariables.ubAValues[168] - acadoWorkspace.evH[128];
+acadoWorkspace.ubA[169] = acadoVariables.ubAValues[169] - acadoWorkspace.evH[129];
+acadoWorkspace.ubA[170] = acadoVariables.ubAValues[170] - acadoWorkspace.evH[130];
+acadoWorkspace.ubA[171] = acadoVariables.ubAValues[171] - acadoWorkspace.evH[131];
+acadoWorkspace.ubA[172] = acadoVariables.ubAValues[172] - acadoWorkspace.evH[132];
+acadoWorkspace.ubA[173] = acadoVariables.ubAValues[173] - acadoWorkspace.evH[133];
+acadoWorkspace.ubA[174] = acadoVariables.ubAValues[174] - acadoWorkspace.evH[134];
+acadoWorkspace.ubA[175] = acadoVariables.ubAValues[175] - acadoWorkspace.evH[135];
+acadoWorkspace.ubA[176] = acadoVariables.ubAValues[176] - acadoWorkspace.evH[136];
+acadoWorkspace.ubA[177] = acadoVariables.ubAValues[177] - acadoWorkspace.evH[137];
+acadoWorkspace.ubA[178] = acadoVariables.ubAValues[178] - acadoWorkspace.evH[138];
+acadoWorkspace.ubA[179] = acadoVariables.ubAValues[179] - acadoWorkspace.evH[139];
+acadoWorkspace.ubA[180] = acadoVariables.ubAValues[180] - acadoWorkspace.evH[140];
+acadoWorkspace.ubA[181] = acadoVariables.ubAValues[181] - acadoWorkspace.evH[141];
+acadoWorkspace.ubA[182] = acadoVariables.ubAValues[182] - acadoWorkspace.evH[142];
+acadoWorkspace.ubA[183] = acadoVariables.ubAValues[183] - acadoWorkspace.evH[143];
+acadoWorkspace.ubA[184] = acadoVariables.ubAValues[184] - acadoWorkspace.evH[144];
+acadoWorkspace.ubA[185] = acadoVariables.ubAValues[185] - acadoWorkspace.evH[145];
+acadoWorkspace.ubA[186] = acadoVariables.ubAValues[186] - acadoWorkspace.evH[146];
+acadoWorkspace.ubA[187] = acadoVariables.ubAValues[187] - acadoWorkspace.evH[147];
+acadoWorkspace.ubA[188] = acadoVariables.ubAValues[188] - acadoWorkspace.evH[148];
+acadoWorkspace.ubA[189] = acadoVariables.ubAValues[189] - acadoWorkspace.evH[149];
+acadoWorkspace.ubA[190] = acadoVariables.ubAValues[190] - acadoWorkspace.evH[150];
+acadoWorkspace.ubA[191] = acadoVariables.ubAValues[191] - acadoWorkspace.evH[151];
+acadoWorkspace.ubA[192] = acadoVariables.ubAValues[192] - acadoWorkspace.evH[152];
+acadoWorkspace.ubA[193] = acadoVariables.ubAValues[193] - acadoWorkspace.evH[153];
+acadoWorkspace.ubA[194] = acadoVariables.ubAValues[194] - acadoWorkspace.evH[154];
+acadoWorkspace.ubA[195] = acadoVariables.ubAValues[195] - acadoWorkspace.evH[155];
+acadoWorkspace.ubA[196] = acadoVariables.ubAValues[196] - acadoWorkspace.evH[156];
+acadoWorkspace.ubA[197] = acadoVariables.ubAValues[197] - acadoWorkspace.evH[157];
+acadoWorkspace.ubA[198] = acadoVariables.ubAValues[198] - acadoWorkspace.evH[158];
+acadoWorkspace.ubA[199] = acadoVariables.ubAValues[199] - acadoWorkspace.evH[159];
+acadoWorkspace.ubA[200] = acadoVariables.ubAValues[200] - acadoWorkspace.evH[160];
+acadoWorkspace.ubA[201] = acadoVariables.ubAValues[201] - acadoWorkspace.evH[161];
+acadoWorkspace.ubA[202] = acadoVariables.ubAValues[202] - acadoWorkspace.evH[162];
+acadoWorkspace.ubA[203] = acadoVariables.ubAValues[203] - acadoWorkspace.evH[163];
+acadoWorkspace.ubA[204] = acadoVariables.ubAValues[204] - acadoWorkspace.evH[164];
+acadoWorkspace.ubA[205] = acadoVariables.ubAValues[205] - acadoWorkspace.evH[165];
+acadoWorkspace.ubA[206] = acadoVariables.ubAValues[206] - acadoWorkspace.evH[166];
+acadoWorkspace.ubA[207] = acadoVariables.ubAValues[207] - acadoWorkspace.evH[167];
+acadoWorkspace.ubA[208] = acadoVariables.ubAValues[208] - acadoWorkspace.evH[168];
+acadoWorkspace.ubA[209] = acadoVariables.ubAValues[209] - acadoWorkspace.evH[169];
+acadoWorkspace.ubA[210] = acadoVariables.ubAValues[210] - acadoWorkspace.evH[170];
+acadoWorkspace.ubA[211] = acadoVariables.ubAValues[211] - acadoWorkspace.evH[171];
+acadoWorkspace.ubA[212] = acadoVariables.ubAValues[212] - acadoWorkspace.evH[172];
+acadoWorkspace.ubA[213] = acadoVariables.ubAValues[213] - acadoWorkspace.evH[173];
+acadoWorkspace.ubA[214] = acadoVariables.ubAValues[214] - acadoWorkspace.evH[174];
+acadoWorkspace.ubA[215] = acadoVariables.ubAValues[215] - acadoWorkspace.evH[175];
+acadoWorkspace.ubA[216] = acadoVariables.ubAValues[216] - acadoWorkspace.evH[176];
+acadoWorkspace.ubA[217] = acadoVariables.ubAValues[217] - acadoWorkspace.evH[177];
+acadoWorkspace.ubA[218] = acadoVariables.ubAValues[218] - acadoWorkspace.evH[178];
+acadoWorkspace.ubA[219] = acadoVariables.ubAValues[219] - acadoWorkspace.evH[179];
+acadoWorkspace.ubA[220] = acadoVariables.ubAValues[220] - acadoWorkspace.evH[180];
+acadoWorkspace.ubA[221] = acadoVariables.ubAValues[221] - acadoWorkspace.evH[181];
+acadoWorkspace.ubA[222] = acadoVariables.ubAValues[222] - acadoWorkspace.evH[182];
+acadoWorkspace.ubA[223] = acadoVariables.ubAValues[223] - acadoWorkspace.evH[183];
+acadoWorkspace.ubA[224] = acadoVariables.ubAValues[224] - acadoWorkspace.evH[184];
+acadoWorkspace.ubA[225] = acadoVariables.ubAValues[225] - acadoWorkspace.evH[185];
+acadoWorkspace.ubA[226] = acadoVariables.ubAValues[226] - acadoWorkspace.evH[186];
+acadoWorkspace.ubA[227] = acadoVariables.ubAValues[227] - acadoWorkspace.evH[187];
+acadoWorkspace.ubA[228] = acadoVariables.ubAValues[228] - acadoWorkspace.evH[188];
+acadoWorkspace.ubA[229] = acadoVariables.ubAValues[229] - acadoWorkspace.evH[189];
+acadoWorkspace.ubA[230] = acadoVariables.ubAValues[230] - acadoWorkspace.evH[190];
+acadoWorkspace.ubA[231] = acadoVariables.ubAValues[231] - acadoWorkspace.evH[191];
+acadoWorkspace.ubA[232] = acadoVariables.ubAValues[232] - acadoWorkspace.evH[192];
+acadoWorkspace.ubA[233] = acadoVariables.ubAValues[233] - acadoWorkspace.evH[193];
+acadoWorkspace.ubA[234] = acadoVariables.ubAValues[234] - acadoWorkspace.evH[194];
+acadoWorkspace.ubA[235] = acadoVariables.ubAValues[235] - acadoWorkspace.evH[195];
+acadoWorkspace.ubA[236] = acadoVariables.ubAValues[236] - acadoWorkspace.evH[196];
+acadoWorkspace.ubA[237] = acadoVariables.ubAValues[237] - acadoWorkspace.evH[197];
+acadoWorkspace.ubA[238] = acadoVariables.ubAValues[238] - acadoWorkspace.evH[198];
+acadoWorkspace.ubA[239] = acadoVariables.ubAValues[239] - acadoWorkspace.evH[199];
+
+}
+
+void acado_condenseFdb(  )
+{
+int lRun1;
+real_t tmp;
+
+acadoWorkspace.Dx0[0] = acadoVariables.x0[0] - acadoVariables.x[0];
+acadoWorkspace.Dx0[1] = acadoVariables.x0[1] - acadoVariables.x[1];
+acadoWorkspace.Dx0[2] = acadoVariables.x0[2] - acadoVariables.x[2];
+acadoWorkspace.Dx0[3] = acadoVariables.x0[3] - acadoVariables.x[3];
+acadoWorkspace.Dx0[4] = acadoVariables.x0[4] - acadoVariables.x[4];
+for (lRun1 = 0; lRun1 < 160; ++lRun1)
+acadoWorkspace.Dy[lRun1] -= acadoVariables.y[lRun1];
+
+acadoWorkspace.DyN[0] -= acadoVariables.yN[0];
+acadoWorkspace.DyN[1] -= acadoVariables.yN[1];
+acadoWorkspace.DyN[2] -= acadoVariables.yN[2];
+acadoWorkspace.DyN[3] -= acadoVariables.yN[3];
+acadoWorkspace.DyN[4] -= acadoVariables.yN[4];
+
+acado_multRDy( acadoWorkspace.R2, acadoWorkspace.Dy, acadoWorkspace.g );
+acado_multRDy( &(acadoWorkspace.R2[ 16 ]), &(acadoWorkspace.Dy[ 8 ]), &(acadoWorkspace.g[ 2 ]) );
+acado_multRDy( &(acadoWorkspace.R2[ 32 ]), &(acadoWorkspace.Dy[ 16 ]), &(acadoWorkspace.g[ 4 ]) );
+acado_multRDy( &(acadoWorkspace.R2[ 48 ]), &(acadoWorkspace.Dy[ 24 ]), &(acadoWorkspace.g[ 6 ]) );
+acado_multRDy( &(acadoWorkspace.R2[ 64 ]), &(acadoWorkspace.Dy[ 32 ]), &(acadoWorkspace.g[ 8 ]) );
+acado_multRDy( &(acadoWorkspace.R2[ 80 ]), &(acadoWorkspace.Dy[ 40 ]), &(acadoWorkspace.g[ 10 ]) );
+acado_multRDy( &(acadoWorkspace.R2[ 96 ]), &(acadoWorkspace.Dy[ 48 ]), &(acadoWorkspace.g[ 12 ]) );
+acado_multRDy( &(acadoWorkspace.R2[ 112 ]), &(acadoWorkspace.Dy[ 56 ]), &(acadoWorkspace.g[ 14 ]) );
+acado_multRDy( &(acadoWorkspace.R2[ 128 ]), &(acadoWorkspace.Dy[ 64 ]), &(acadoWorkspace.g[ 16 ]) );
+acado_multRDy( &(acadoWorkspace.R2[ 144 ]), &(acadoWorkspace.Dy[ 72 ]), &(acadoWorkspace.g[ 18 ]) );
+acado_multRDy( &(acadoWorkspace.R2[ 160 ]), &(acadoWorkspace.Dy[ 80 ]), &(acadoWorkspace.g[ 20 ]) );
+acado_multRDy( &(acadoWorkspace.R2[ 176 ]), &(acadoWorkspace.Dy[ 88 ]), &(acadoWorkspace.g[ 22 ]) );
+acado_multRDy( &(acadoWorkspace.R2[ 192 ]), &(acadoWorkspace.Dy[ 96 ]), &(acadoWorkspace.g[ 24 ]) );
+acado_multRDy( &(acadoWorkspace.R2[ 208 ]), &(acadoWorkspace.Dy[ 104 ]), &(acadoWorkspace.g[ 26 ]) );
+acado_multRDy( &(acadoWorkspace.R2[ 224 ]), &(acadoWorkspace.Dy[ 112 ]), &(acadoWorkspace.g[ 28 ]) );
+acado_multRDy( &(acadoWorkspace.R2[ 240 ]), &(acadoWorkspace.Dy[ 120 ]), &(acadoWorkspace.g[ 30 ]) );
+acado_multRDy( &(acadoWorkspace.R2[ 256 ]), &(acadoWorkspace.Dy[ 128 ]), &(acadoWorkspace.g[ 32 ]) );
+acado_multRDy( &(acadoWorkspace.R2[ 272 ]), &(acadoWorkspace.Dy[ 136 ]), &(acadoWorkspace.g[ 34 ]) );
+acado_multRDy( &(acadoWorkspace.R2[ 288 ]), &(acadoWorkspace.Dy[ 144 ]), &(acadoWorkspace.g[ 36 ]) );
+acado_multRDy( &(acadoWorkspace.R2[ 304 ]), &(acadoWorkspace.Dy[ 152 ]), &(acadoWorkspace.g[ 38 ]) );
+
+acado_multQDy( acadoWorkspace.Q2, acadoWorkspace.Dy, acadoWorkspace.QDy );
+acado_multQDy( &(acadoWorkspace.Q2[ 40 ]), &(acadoWorkspace.Dy[ 8 ]), &(acadoWorkspace.QDy[ 5 ]) );
+acado_multQDy( &(acadoWorkspace.Q2[ 80 ]), &(acadoWorkspace.Dy[ 16 ]), &(acadoWorkspace.QDy[ 10 ]) );
+acado_multQDy( &(acadoWorkspace.Q2[ 120 ]), &(acadoWorkspace.Dy[ 24 ]), &(acadoWorkspace.QDy[ 15 ]) );
+acado_multQDy( &(acadoWorkspace.Q2[ 160 ]), &(acadoWorkspace.Dy[ 32 ]), &(acadoWorkspace.QDy[ 20 ]) );
+acado_multQDy( &(acadoWorkspace.Q2[ 200 ]), &(acadoWorkspace.Dy[ 40 ]), &(acadoWorkspace.QDy[ 25 ]) );
+acado_multQDy( &(acadoWorkspace.Q2[ 240 ]), &(acadoWorkspace.Dy[ 48 ]), &(acadoWorkspace.QDy[ 30 ]) );
+acado_multQDy( &(acadoWorkspace.Q2[ 280 ]), &(acadoWorkspace.Dy[ 56 ]), &(acadoWorkspace.QDy[ 35 ]) );
+acado_multQDy( &(acadoWorkspace.Q2[ 320 ]), &(acadoWorkspace.Dy[ 64 ]), &(acadoWorkspace.QDy[ 40 ]) );
+acado_multQDy( &(acadoWorkspace.Q2[ 360 ]), &(acadoWorkspace.Dy[ 72 ]), &(acadoWorkspace.QDy[ 45 ]) );
+acado_multQDy( &(acadoWorkspace.Q2[ 400 ]), &(acadoWorkspace.Dy[ 80 ]), &(acadoWorkspace.QDy[ 50 ]) );
+acado_multQDy( &(acadoWorkspace.Q2[ 440 ]), &(acadoWorkspace.Dy[ 88 ]), &(acadoWorkspace.QDy[ 55 ]) );
+acado_multQDy( &(acadoWorkspace.Q2[ 480 ]), &(acadoWorkspace.Dy[ 96 ]), &(acadoWorkspace.QDy[ 60 ]) );
+acado_multQDy( &(acadoWorkspace.Q2[ 520 ]), &(acadoWorkspace.Dy[ 104 ]), &(acadoWorkspace.QDy[ 65 ]) );
+acado_multQDy( &(acadoWorkspace.Q2[ 560 ]), &(acadoWorkspace.Dy[ 112 ]), &(acadoWorkspace.QDy[ 70 ]) );
+acado_multQDy( &(acadoWorkspace.Q2[ 600 ]), &(acadoWorkspace.Dy[ 120 ]), &(acadoWorkspace.QDy[ 75 ]) );
+acado_multQDy( &(acadoWorkspace.Q2[ 640 ]), &(acadoWorkspace.Dy[ 128 ]), &(acadoWorkspace.QDy[ 80 ]) );
+acado_multQDy( &(acadoWorkspace.Q2[ 680 ]), &(acadoWorkspace.Dy[ 136 ]), &(acadoWorkspace.QDy[ 85 ]) );
+acado_multQDy( &(acadoWorkspace.Q2[ 720 ]), &(acadoWorkspace.Dy[ 144 ]), &(acadoWorkspace.QDy[ 90 ]) );
+acado_multQDy( &(acadoWorkspace.Q2[ 760 ]), &(acadoWorkspace.Dy[ 152 ]), &(acadoWorkspace.QDy[ 95 ]) );
+
+acadoWorkspace.QDy[100] = + acadoWorkspace.QN2[0]*acadoWorkspace.DyN[0] + acadoWorkspace.QN2[1]*acadoWorkspace.DyN[1] + acadoWorkspace.QN2[2]*acadoWorkspace.DyN[2] + acadoWorkspace.QN2[3]*acadoWorkspace.DyN[3] + acadoWorkspace.QN2[4]*acadoWorkspace.DyN[4];
+acadoWorkspace.QDy[101] = + acadoWorkspace.QN2[5]*acadoWorkspace.DyN[0] + acadoWorkspace.QN2[6]*acadoWorkspace.DyN[1] + acadoWorkspace.QN2[7]*acadoWorkspace.DyN[2] + acadoWorkspace.QN2[8]*acadoWorkspace.DyN[3] + acadoWorkspace.QN2[9]*acadoWorkspace.DyN[4];
+acadoWorkspace.QDy[102] = + acadoWorkspace.QN2[10]*acadoWorkspace.DyN[0] + acadoWorkspace.QN2[11]*acadoWorkspace.DyN[1] + acadoWorkspace.QN2[12]*acadoWorkspace.DyN[2] + acadoWorkspace.QN2[13]*acadoWorkspace.DyN[3] + acadoWorkspace.QN2[14]*acadoWorkspace.DyN[4];
+acadoWorkspace.QDy[103] = + acadoWorkspace.QN2[15]*acadoWorkspace.DyN[0] + acadoWorkspace.QN2[16]*acadoWorkspace.DyN[1] + acadoWorkspace.QN2[17]*acadoWorkspace.DyN[2] + acadoWorkspace.QN2[18]*acadoWorkspace.DyN[3] + acadoWorkspace.QN2[19]*acadoWorkspace.DyN[4];
+acadoWorkspace.QDy[104] = + acadoWorkspace.QN2[20]*acadoWorkspace.DyN[0] + acadoWorkspace.QN2[21]*acadoWorkspace.DyN[1] + acadoWorkspace.QN2[22]*acadoWorkspace.DyN[2] + acadoWorkspace.QN2[23]*acadoWorkspace.DyN[3] + acadoWorkspace.QN2[24]*acadoWorkspace.DyN[4];
+
+acadoWorkspace.sbar[0] = acadoWorkspace.Dx0[0];
+acadoWorkspace.sbar[1] = acadoWorkspace.Dx0[1];
+acadoWorkspace.sbar[2] = acadoWorkspace.Dx0[2];
+acadoWorkspace.sbar[3] = acadoWorkspace.Dx0[3];
+acadoWorkspace.sbar[4] = acadoWorkspace.Dx0[4];
+acado_macASbar( acadoWorkspace.evGx, acadoWorkspace.sbar, &(acadoWorkspace.sbar[ 5 ]) );
+acado_macASbar( &(acadoWorkspace.evGx[ 25 ]), &(acadoWorkspace.sbar[ 5 ]), &(acadoWorkspace.sbar[ 10 ]) );
+acado_macASbar( &(acadoWorkspace.evGx[ 50 ]), &(acadoWorkspace.sbar[ 10 ]), &(acadoWorkspace.sbar[ 15 ]) );
+acado_macASbar( &(acadoWorkspace.evGx[ 75 ]), &(acadoWorkspace.sbar[ 15 ]), &(acadoWorkspace.sbar[ 20 ]) );
+acado_macASbar( &(acadoWorkspace.evGx[ 100 ]), &(acadoWorkspace.sbar[ 20 ]), &(acadoWorkspace.sbar[ 25 ]) );
+acado_macASbar( &(acadoWorkspace.evGx[ 125 ]), &(acadoWorkspace.sbar[ 25 ]), &(acadoWorkspace.sbar[ 30 ]) );
+acado_macASbar( &(acadoWorkspace.evGx[ 150 ]), &(acadoWorkspace.sbar[ 30 ]), &(acadoWorkspace.sbar[ 35 ]) );
+acado_macASbar( &(acadoWorkspace.evGx[ 175 ]), &(acadoWorkspace.sbar[ 35 ]), &(acadoWorkspace.sbar[ 40 ]) );
+acado_macASbar( &(acadoWorkspace.evGx[ 200 ]), &(acadoWorkspace.sbar[ 40 ]), &(acadoWorkspace.sbar[ 45 ]) );
+acado_macASbar( &(acadoWorkspace.evGx[ 225 ]), &(acadoWorkspace.sbar[ 45 ]), &(acadoWorkspace.sbar[ 50 ]) );
+acado_macASbar( &(acadoWorkspace.evGx[ 250 ]), &(acadoWorkspace.sbar[ 50 ]), &(acadoWorkspace.sbar[ 55 ]) );
+acado_macASbar( &(acadoWorkspace.evGx[ 275 ]), &(acadoWorkspace.sbar[ 55 ]), &(acadoWorkspace.sbar[ 60 ]) );
+acado_macASbar( &(acadoWorkspace.evGx[ 300 ]), &(acadoWorkspace.sbar[ 60 ]), &(acadoWorkspace.sbar[ 65 ]) );
+acado_macASbar( &(acadoWorkspace.evGx[ 325 ]), &(acadoWorkspace.sbar[ 65 ]), &(acadoWorkspace.sbar[ 70 ]) );
+acado_macASbar( &(acadoWorkspace.evGx[ 350 ]), &(acadoWorkspace.sbar[ 70 ]), &(acadoWorkspace.sbar[ 75 ]) );
+acado_macASbar( &(acadoWorkspace.evGx[ 375 ]), &(acadoWorkspace.sbar[ 75 ]), &(acadoWorkspace.sbar[ 80 ]) );
+acado_macASbar( &(acadoWorkspace.evGx[ 400 ]), &(acadoWorkspace.sbar[ 80 ]), &(acadoWorkspace.sbar[ 85 ]) );
+acado_macASbar( &(acadoWorkspace.evGx[ 425 ]), &(acadoWorkspace.sbar[ 85 ]), &(acadoWorkspace.sbar[ 90 ]) );
+acado_macASbar( &(acadoWorkspace.evGx[ 450 ]), &(acadoWorkspace.sbar[ 90 ]), &(acadoWorkspace.sbar[ 95 ]) );
+acado_macASbar( &(acadoWorkspace.evGx[ 475 ]), &(acadoWorkspace.sbar[ 95 ]), &(acadoWorkspace.sbar[ 100 ]) );
+
+acadoWorkspace.w1[0] = + acadoWorkspace.QN1[0]*acadoWorkspace.sbar[100] + acadoWorkspace.QN1[1]*acadoWorkspace.sbar[101] + acadoWorkspace.QN1[2]*acadoWorkspace.sbar[102] + acadoWorkspace.QN1[3]*acadoWorkspace.sbar[103] + acadoWorkspace.QN1[4]*acadoWorkspace.sbar[104] + acadoWorkspace.QDy[100];
+acadoWorkspace.w1[1] = + acadoWorkspace.QN1[5]*acadoWorkspace.sbar[100] + acadoWorkspace.QN1[6]*acadoWorkspace.sbar[101] + acadoWorkspace.QN1[7]*acadoWorkspace.sbar[102] + acadoWorkspace.QN1[8]*acadoWorkspace.sbar[103] + acadoWorkspace.QN1[9]*acadoWorkspace.sbar[104] + acadoWorkspace.QDy[101];
+acadoWorkspace.w1[2] = + acadoWorkspace.QN1[10]*acadoWorkspace.sbar[100] + acadoWorkspace.QN1[11]*acadoWorkspace.sbar[101] + acadoWorkspace.QN1[12]*acadoWorkspace.sbar[102] + acadoWorkspace.QN1[13]*acadoWorkspace.sbar[103] + acadoWorkspace.QN1[14]*acadoWorkspace.sbar[104] + acadoWorkspace.QDy[102];
+acadoWorkspace.w1[3] = + acadoWorkspace.QN1[15]*acadoWorkspace.sbar[100] + acadoWorkspace.QN1[16]*acadoWorkspace.sbar[101] + acadoWorkspace.QN1[17]*acadoWorkspace.sbar[102] + acadoWorkspace.QN1[18]*acadoWorkspace.sbar[103] + acadoWorkspace.QN1[19]*acadoWorkspace.sbar[104] + acadoWorkspace.QDy[103];
+acadoWorkspace.w1[4] = + acadoWorkspace.QN1[20]*acadoWorkspace.sbar[100] + acadoWorkspace.QN1[21]*acadoWorkspace.sbar[101] + acadoWorkspace.QN1[22]*acadoWorkspace.sbar[102] + acadoWorkspace.QN1[23]*acadoWorkspace.sbar[103] + acadoWorkspace.QN1[24]*acadoWorkspace.sbar[104] + acadoWorkspace.QDy[104];
+acado_macBTw1( &(acadoWorkspace.evGu[ 190 ]), acadoWorkspace.w1, &(acadoWorkspace.g[ 38 ]) );
+acado_macATw1QDy( &(acadoWorkspace.evGx[ 475 ]), acadoWorkspace.w1, &(acadoWorkspace.QDy[ 95 ]), acadoWorkspace.w2 );
+acado_macQSbarW2( &(acadoWorkspace.Q1[ 475 ]), &(acadoWorkspace.sbar[ 95 ]), acadoWorkspace.w2, acadoWorkspace.w1 );
+acado_macBTw1( &(acadoWorkspace.evGu[ 180 ]), acadoWorkspace.w1, &(acadoWorkspace.g[ 36 ]) );
+acado_macATw1QDy( &(acadoWorkspace.evGx[ 450 ]), acadoWorkspace.w1, &(acadoWorkspace.QDy[ 90 ]), acadoWorkspace.w2 );
+acado_macQSbarW2( &(acadoWorkspace.Q1[ 450 ]), &(acadoWorkspace.sbar[ 90 ]), acadoWorkspace.w2, acadoWorkspace.w1 );
+acado_macBTw1( &(acadoWorkspace.evGu[ 170 ]), acadoWorkspace.w1, &(acadoWorkspace.g[ 34 ]) );
+acado_macATw1QDy( &(acadoWorkspace.evGx[ 425 ]), acadoWorkspace.w1, &(acadoWorkspace.QDy[ 85 ]), acadoWorkspace.w2 );
+acado_macQSbarW2( &(acadoWorkspace.Q1[ 425 ]), &(acadoWorkspace.sbar[ 85 ]), acadoWorkspace.w2, acadoWorkspace.w1 );
+acado_macBTw1( &(acadoWorkspace.evGu[ 160 ]), acadoWorkspace.w1, &(acadoWorkspace.g[ 32 ]) );
+acado_macATw1QDy( &(acadoWorkspace.evGx[ 400 ]), acadoWorkspace.w1, &(acadoWorkspace.QDy[ 80 ]), acadoWorkspace.w2 );
+acado_macQSbarW2( &(acadoWorkspace.Q1[ 400 ]), &(acadoWorkspace.sbar[ 80 ]), acadoWorkspace.w2, acadoWorkspace.w1 );
+acado_macBTw1( &(acadoWorkspace.evGu[ 150 ]), acadoWorkspace.w1, &(acadoWorkspace.g[ 30 ]) );
+acado_macATw1QDy( &(acadoWorkspace.evGx[ 375 ]), acadoWorkspace.w1, &(acadoWorkspace.QDy[ 75 ]), acadoWorkspace.w2 );
+acado_macQSbarW2( &(acadoWorkspace.Q1[ 375 ]), &(acadoWorkspace.sbar[ 75 ]), acadoWorkspace.w2, acadoWorkspace.w1 );
+acado_macBTw1( &(acadoWorkspace.evGu[ 140 ]), acadoWorkspace.w1, &(acadoWorkspace.g[ 28 ]) );
+acado_macATw1QDy( &(acadoWorkspace.evGx[ 350 ]), acadoWorkspace.w1, &(acadoWorkspace.QDy[ 70 ]), acadoWorkspace.w2 );
+acado_macQSbarW2( &(acadoWorkspace.Q1[ 350 ]), &(acadoWorkspace.sbar[ 70 ]), acadoWorkspace.w2, acadoWorkspace.w1 );
+acado_macBTw1( &(acadoWorkspace.evGu[ 130 ]), acadoWorkspace.w1, &(acadoWorkspace.g[ 26 ]) );
+acado_macATw1QDy( &(acadoWorkspace.evGx[ 325 ]), acadoWorkspace.w1, &(acadoWorkspace.QDy[ 65 ]), acadoWorkspace.w2 );
+acado_macQSbarW2( &(acadoWorkspace.Q1[ 325 ]), &(acadoWorkspace.sbar[ 65 ]), acadoWorkspace.w2, acadoWorkspace.w1 );
+acado_macBTw1( &(acadoWorkspace.evGu[ 120 ]), acadoWorkspace.w1, &(acadoWorkspace.g[ 24 ]) );
+acado_macATw1QDy( &(acadoWorkspace.evGx[ 300 ]), acadoWorkspace.w1, &(acadoWorkspace.QDy[ 60 ]), acadoWorkspace.w2 );
+acado_macQSbarW2( &(acadoWorkspace.Q1[ 300 ]), &(acadoWorkspace.sbar[ 60 ]), acadoWorkspace.w2, acadoWorkspace.w1 );
+acado_macBTw1( &(acadoWorkspace.evGu[ 110 ]), acadoWorkspace.w1, &(acadoWorkspace.g[ 22 ]) );
+acado_macATw1QDy( &(acadoWorkspace.evGx[ 275 ]), acadoWorkspace.w1, &(acadoWorkspace.QDy[ 55 ]), acadoWorkspace.w2 );
+acado_macQSbarW2( &(acadoWorkspace.Q1[ 275 ]), &(acadoWorkspace.sbar[ 55 ]), acadoWorkspace.w2, acadoWorkspace.w1 );
+acado_macBTw1( &(acadoWorkspace.evGu[ 100 ]), acadoWorkspace.w1, &(acadoWorkspace.g[ 20 ]) );
+acado_macATw1QDy( &(acadoWorkspace.evGx[ 250 ]), acadoWorkspace.w1, &(acadoWorkspace.QDy[ 50 ]), acadoWorkspace.w2 );
+acado_macQSbarW2( &(acadoWorkspace.Q1[ 250 ]), &(acadoWorkspace.sbar[ 50 ]), acadoWorkspace.w2, acadoWorkspace.w1 );
+acado_macBTw1( &(acadoWorkspace.evGu[ 90 ]), acadoWorkspace.w1, &(acadoWorkspace.g[ 18 ]) );
+acado_macATw1QDy( &(acadoWorkspace.evGx[ 225 ]), acadoWorkspace.w1, &(acadoWorkspace.QDy[ 45 ]), acadoWorkspace.w2 );
+acado_macQSbarW2( &(acadoWorkspace.Q1[ 225 ]), &(acadoWorkspace.sbar[ 45 ]), acadoWorkspace.w2, acadoWorkspace.w1 );
+acado_macBTw1( &(acadoWorkspace.evGu[ 80 ]), acadoWorkspace.w1, &(acadoWorkspace.g[ 16 ]) );
+acado_macATw1QDy( &(acadoWorkspace.evGx[ 200 ]), acadoWorkspace.w1, &(acadoWorkspace.QDy[ 40 ]), acadoWorkspace.w2 );
+acado_macQSbarW2( &(acadoWorkspace.Q1[ 200 ]), &(acadoWorkspace.sbar[ 40 ]), acadoWorkspace.w2, acadoWorkspace.w1 );
+acado_macBTw1( &(acadoWorkspace.evGu[ 70 ]), acadoWorkspace.w1, &(acadoWorkspace.g[ 14 ]) );
+acado_macATw1QDy( &(acadoWorkspace.evGx[ 175 ]), acadoWorkspace.w1, &(acadoWorkspace.QDy[ 35 ]), acadoWorkspace.w2 );
+acado_macQSbarW2( &(acadoWorkspace.Q1[ 175 ]), &(acadoWorkspace.sbar[ 35 ]), acadoWorkspace.w2, acadoWorkspace.w1 );
+acado_macBTw1( &(acadoWorkspace.evGu[ 60 ]), acadoWorkspace.w1, &(acadoWorkspace.g[ 12 ]) );
+acado_macATw1QDy( &(acadoWorkspace.evGx[ 150 ]), acadoWorkspace.w1, &(acadoWorkspace.QDy[ 30 ]), acadoWorkspace.w2 );
+acado_macQSbarW2( &(acadoWorkspace.Q1[ 150 ]), &(acadoWorkspace.sbar[ 30 ]), acadoWorkspace.w2, acadoWorkspace.w1 );
+acado_macBTw1( &(acadoWorkspace.evGu[ 50 ]), acadoWorkspace.w1, &(acadoWorkspace.g[ 10 ]) );
+acado_macATw1QDy( &(acadoWorkspace.evGx[ 125 ]), acadoWorkspace.w1, &(acadoWorkspace.QDy[ 25 ]), acadoWorkspace.w2 );
+acado_macQSbarW2( &(acadoWorkspace.Q1[ 125 ]), &(acadoWorkspace.sbar[ 25 ]), acadoWorkspace.w2, acadoWorkspace.w1 );
+acado_macBTw1( &(acadoWorkspace.evGu[ 40 ]), acadoWorkspace.w1, &(acadoWorkspace.g[ 8 ]) );
+acado_macATw1QDy( &(acadoWorkspace.evGx[ 100 ]), acadoWorkspace.w1, &(acadoWorkspace.QDy[ 20 ]), acadoWorkspace.w2 );
+acado_macQSbarW2( &(acadoWorkspace.Q1[ 100 ]), &(acadoWorkspace.sbar[ 20 ]), acadoWorkspace.w2, acadoWorkspace.w1 );
+acado_macBTw1( &(acadoWorkspace.evGu[ 30 ]), acadoWorkspace.w1, &(acadoWorkspace.g[ 6 ]) );
+acado_macATw1QDy( &(acadoWorkspace.evGx[ 75 ]), acadoWorkspace.w1, &(acadoWorkspace.QDy[ 15 ]), acadoWorkspace.w2 );
+acado_macQSbarW2( &(acadoWorkspace.Q1[ 75 ]), &(acadoWorkspace.sbar[ 15 ]), acadoWorkspace.w2, acadoWorkspace.w1 );
+acado_macBTw1( &(acadoWorkspace.evGu[ 20 ]), acadoWorkspace.w1, &(acadoWorkspace.g[ 4 ]) );
+acado_macATw1QDy( &(acadoWorkspace.evGx[ 50 ]), acadoWorkspace.w1, &(acadoWorkspace.QDy[ 10 ]), acadoWorkspace.w2 );
+acado_macQSbarW2( &(acadoWorkspace.Q1[ 50 ]), &(acadoWorkspace.sbar[ 10 ]), acadoWorkspace.w2, acadoWorkspace.w1 );
+acado_macBTw1( &(acadoWorkspace.evGu[ 10 ]), acadoWorkspace.w1, &(acadoWorkspace.g[ 2 ]) );
+acado_macATw1QDy( &(acadoWorkspace.evGx[ 25 ]), acadoWorkspace.w1, &(acadoWorkspace.QDy[ 5 ]), acadoWorkspace.w2 );
+acado_macQSbarW2( &(acadoWorkspace.Q1[ 25 ]), &(acadoWorkspace.sbar[ 5 ]), acadoWorkspace.w2, acadoWorkspace.w1 );
+acado_macBTw1( acadoWorkspace.evGu, acadoWorkspace.w1, acadoWorkspace.g );
+
+acadoWorkspace.lb[0] = acadoVariables.lbValues[0] - acadoVariables.u[0];
+acadoWorkspace.lb[1] = acadoVariables.lbValues[1] - acadoVariables.u[1];
+acadoWorkspace.lb[2] = acadoVariables.lbValues[2] - acadoVariables.u[2];
+acadoWorkspace.lb[3] = acadoVariables.lbValues[3] - acadoVariables.u[3];
+acadoWorkspace.lb[4] = acadoVariables.lbValues[4] - acadoVariables.u[4];
+acadoWorkspace.lb[5] = acadoVariables.lbValues[5] - acadoVariables.u[5];
+acadoWorkspace.lb[6] = acadoVariables.lbValues[6] - acadoVariables.u[6];
+acadoWorkspace.lb[7] = acadoVariables.lbValues[7] - acadoVariables.u[7];
+acadoWorkspace.lb[8] = acadoVariables.lbValues[8] - acadoVariables.u[8];
+acadoWorkspace.lb[9] = acadoVariables.lbValues[9] - acadoVariables.u[9];
+acadoWorkspace.lb[10] = acadoVariables.lbValues[10] - acadoVariables.u[10];
+acadoWorkspace.lb[11] = acadoVariables.lbValues[11] - acadoVariables.u[11];
+acadoWorkspace.lb[12] = acadoVariables.lbValues[12] - acadoVariables.u[12];
+acadoWorkspace.lb[13] = acadoVariables.lbValues[13] - acadoVariables.u[13];
+acadoWorkspace.lb[14] = acadoVariables.lbValues[14] - acadoVariables.u[14];
+acadoWorkspace.lb[15] = acadoVariables.lbValues[15] - acadoVariables.u[15];
+acadoWorkspace.lb[16] = acadoVariables.lbValues[16] - acadoVariables.u[16];
+acadoWorkspace.lb[17] = acadoVariables.lbValues[17] - acadoVariables.u[17];
+acadoWorkspace.lb[18] = acadoVariables.lbValues[18] - acadoVariables.u[18];
+acadoWorkspace.lb[19] = acadoVariables.lbValues[19] - acadoVariables.u[19];
+acadoWorkspace.lb[20] = acadoVariables.lbValues[20] - acadoVariables.u[20];
+acadoWorkspace.lb[21] = acadoVariables.lbValues[21] - acadoVariables.u[21];
+acadoWorkspace.lb[22] = acadoVariables.lbValues[22] - acadoVariables.u[22];
+acadoWorkspace.lb[23] = acadoVariables.lbValues[23] - acadoVariables.u[23];
+acadoWorkspace.lb[24] = acadoVariables.lbValues[24] - acadoVariables.u[24];
+acadoWorkspace.lb[25] = acadoVariables.lbValues[25] - acadoVariables.u[25];
+acadoWorkspace.lb[26] = acadoVariables.lbValues[26] - acadoVariables.u[26];
+acadoWorkspace.lb[27] = acadoVariables.lbValues[27] - acadoVariables.u[27];
+acadoWorkspace.lb[28] = acadoVariables.lbValues[28] - acadoVariables.u[28];
+acadoWorkspace.lb[29] = acadoVariables.lbValues[29] - acadoVariables.u[29];
+acadoWorkspace.lb[30] = acadoVariables.lbValues[30] - acadoVariables.u[30];
+acadoWorkspace.lb[31] = acadoVariables.lbValues[31] - acadoVariables.u[31];
+acadoWorkspace.lb[32] = acadoVariables.lbValues[32] - acadoVariables.u[32];
+acadoWorkspace.lb[33] = acadoVariables.lbValues[33] - acadoVariables.u[33];
+acadoWorkspace.lb[34] = acadoVariables.lbValues[34] - acadoVariables.u[34];
+acadoWorkspace.lb[35] = acadoVariables.lbValues[35] - acadoVariables.u[35];
+acadoWorkspace.lb[36] = acadoVariables.lbValues[36] - acadoVariables.u[36];
+acadoWorkspace.lb[37] = acadoVariables.lbValues[37] - acadoVariables.u[37];
+acadoWorkspace.lb[38] = acadoVariables.lbValues[38] - acadoVariables.u[38];
+acadoWorkspace.lb[39] = acadoVariables.lbValues[39] - acadoVariables.u[39];
+acadoWorkspace.ub[0] = acadoVariables.ubValues[0] - acadoVariables.u[0];
+acadoWorkspace.ub[1] = acadoVariables.ubValues[1] - acadoVariables.u[1];
+acadoWorkspace.ub[2] = acadoVariables.ubValues[2] - acadoVariables.u[2];
+acadoWorkspace.ub[3] = acadoVariables.ubValues[3] - acadoVariables.u[3];
+acadoWorkspace.ub[4] = acadoVariables.ubValues[4] - acadoVariables.u[4];
+acadoWorkspace.ub[5] = acadoVariables.ubValues[5] - acadoVariables.u[5];
+acadoWorkspace.ub[6] = acadoVariables.ubValues[6] - acadoVariables.u[6];
+acadoWorkspace.ub[7] = acadoVariables.ubValues[7] - acadoVariables.u[7];
+acadoWorkspace.ub[8] = acadoVariables.ubValues[8] - acadoVariables.u[8];
+acadoWorkspace.ub[9] = acadoVariables.ubValues[9] - acadoVariables.u[9];
+acadoWorkspace.ub[10] = acadoVariables.ubValues[10] - acadoVariables.u[10];
+acadoWorkspace.ub[11] = acadoVariables.ubValues[11] - acadoVariables.u[11];
+acadoWorkspace.ub[12] = acadoVariables.ubValues[12] - acadoVariables.u[12];
+acadoWorkspace.ub[13] = acadoVariables.ubValues[13] - acadoVariables.u[13];
+acadoWorkspace.ub[14] = acadoVariables.ubValues[14] - acadoVariables.u[14];
+acadoWorkspace.ub[15] = acadoVariables.ubValues[15] - acadoVariables.u[15];
+acadoWorkspace.ub[16] = acadoVariables.ubValues[16] - acadoVariables.u[16];
+acadoWorkspace.ub[17] = acadoVariables.ubValues[17] - acadoVariables.u[17];
+acadoWorkspace.ub[18] = acadoVariables.ubValues[18] - acadoVariables.u[18];
+acadoWorkspace.ub[19] = acadoVariables.ubValues[19] - acadoVariables.u[19];
+acadoWorkspace.ub[20] = acadoVariables.ubValues[20] - acadoVariables.u[20];
+acadoWorkspace.ub[21] = acadoVariables.ubValues[21] - acadoVariables.u[21];
+acadoWorkspace.ub[22] = acadoVariables.ubValues[22] - acadoVariables.u[22];
+acadoWorkspace.ub[23] = acadoVariables.ubValues[23] - acadoVariables.u[23];
+acadoWorkspace.ub[24] = acadoVariables.ubValues[24] - acadoVariables.u[24];
+acadoWorkspace.ub[25] = acadoVariables.ubValues[25] - acadoVariables.u[25];
+acadoWorkspace.ub[26] = acadoVariables.ubValues[26] - acadoVariables.u[26];
+acadoWorkspace.ub[27] = acadoVariables.ubValues[27] - acadoVariables.u[27];
+acadoWorkspace.ub[28] = acadoVariables.ubValues[28] - acadoVariables.u[28];
+acadoWorkspace.ub[29] = acadoVariables.ubValues[29] - acadoVariables.u[29];
+acadoWorkspace.ub[30] = acadoVariables.ubValues[30] - acadoVariables.u[30];
+acadoWorkspace.ub[31] = acadoVariables.ubValues[31] - acadoVariables.u[31];
+acadoWorkspace.ub[32] = acadoVariables.ubValues[32] - acadoVariables.u[32];
+acadoWorkspace.ub[33] = acadoVariables.ubValues[33] - acadoVariables.u[33];
+acadoWorkspace.ub[34] = acadoVariables.ubValues[34] - acadoVariables.u[34];
+acadoWorkspace.ub[35] = acadoVariables.ubValues[35] - acadoVariables.u[35];
+acadoWorkspace.ub[36] = acadoVariables.ubValues[36] - acadoVariables.u[36];
+acadoWorkspace.ub[37] = acadoVariables.ubValues[37] - acadoVariables.u[37];
+acadoWorkspace.ub[38] = acadoVariables.ubValues[38] - acadoVariables.u[38];
+acadoWorkspace.ub[39] = acadoVariables.ubValues[39] - acadoVariables.u[39];
+
+tmp = acadoWorkspace.sbar[8] + acadoVariables.x[8];
+acadoWorkspace.lbA[0] = acadoVariables.lbAValues[0] - tmp;
+acadoWorkspace.ubA[0] = acadoVariables.ubAValues[0] - tmp;
+tmp = acadoWorkspace.sbar[9] + acadoVariables.x[9];
+acadoWorkspace.lbA[1] = acadoVariables.lbAValues[1] - tmp;
+acadoWorkspace.ubA[1] = acadoVariables.ubAValues[1] - tmp;
+tmp = acadoWorkspace.sbar[13] + acadoVariables.x[13];
+acadoWorkspace.lbA[2] = acadoVariables.lbAValues[2] - tmp;
+acadoWorkspace.ubA[2] = acadoVariables.ubAValues[2] - tmp;
+tmp = acadoWorkspace.sbar[14] + acadoVariables.x[14];
+acadoWorkspace.lbA[3] = acadoVariables.lbAValues[3] - tmp;
+acadoWorkspace.ubA[3] = acadoVariables.ubAValues[3] - tmp;
+tmp = acadoWorkspace.sbar[18] + acadoVariables.x[18];
+acadoWorkspace.lbA[4] = acadoVariables.lbAValues[4] - tmp;
+acadoWorkspace.ubA[4] = acadoVariables.ubAValues[4] - tmp;
+tmp = acadoWorkspace.sbar[19] + acadoVariables.x[19];
+acadoWorkspace.lbA[5] = acadoVariables.lbAValues[5] - tmp;
+acadoWorkspace.ubA[5] = acadoVariables.ubAValues[5] - tmp;
+tmp = acadoWorkspace.sbar[23] + acadoVariables.x[23];
+acadoWorkspace.lbA[6] = acadoVariables.lbAValues[6] - tmp;
+acadoWorkspace.ubA[6] = acadoVariables.ubAValues[6] - tmp;
+tmp = acadoWorkspace.sbar[24] + acadoVariables.x[24];
+acadoWorkspace.lbA[7] = acadoVariables.lbAValues[7] - tmp;
+acadoWorkspace.ubA[7] = acadoVariables.ubAValues[7] - tmp;
+tmp = acadoWorkspace.sbar[28] + acadoVariables.x[28];
+acadoWorkspace.lbA[8] = acadoVariables.lbAValues[8] - tmp;
+acadoWorkspace.ubA[8] = acadoVariables.ubAValues[8] - tmp;
+tmp = acadoWorkspace.sbar[29] + acadoVariables.x[29];
+acadoWorkspace.lbA[9] = acadoVariables.lbAValues[9] - tmp;
+acadoWorkspace.ubA[9] = acadoVariables.ubAValues[9] - tmp;
+tmp = acadoWorkspace.sbar[33] + acadoVariables.x[33];
+acadoWorkspace.lbA[10] = acadoVariables.lbAValues[10] - tmp;
+acadoWorkspace.ubA[10] = acadoVariables.ubAValues[10] - tmp;
+tmp = acadoWorkspace.sbar[34] + acadoVariables.x[34];
+acadoWorkspace.lbA[11] = acadoVariables.lbAValues[11] - tmp;
+acadoWorkspace.ubA[11] = acadoVariables.ubAValues[11] - tmp;
+tmp = acadoWorkspace.sbar[38] + acadoVariables.x[38];
+acadoWorkspace.lbA[12] = acadoVariables.lbAValues[12] - tmp;
+acadoWorkspace.ubA[12] = acadoVariables.ubAValues[12] - tmp;
+tmp = acadoWorkspace.sbar[39] + acadoVariables.x[39];
+acadoWorkspace.lbA[13] = acadoVariables.lbAValues[13] - tmp;
+acadoWorkspace.ubA[13] = acadoVariables.ubAValues[13] - tmp;
+tmp = acadoWorkspace.sbar[43] + acadoVariables.x[43];
+acadoWorkspace.lbA[14] = acadoVariables.lbAValues[14] - tmp;
+acadoWorkspace.ubA[14] = acadoVariables.ubAValues[14] - tmp;
+tmp = acadoWorkspace.sbar[44] + acadoVariables.x[44];
+acadoWorkspace.lbA[15] = acadoVariables.lbAValues[15] - tmp;
+acadoWorkspace.ubA[15] = acadoVariables.ubAValues[15] - tmp;
+tmp = acadoWorkspace.sbar[48] + acadoVariables.x[48];
+acadoWorkspace.lbA[16] = acadoVariables.lbAValues[16] - tmp;
+acadoWorkspace.ubA[16] = acadoVariables.ubAValues[16] - tmp;
+tmp = acadoWorkspace.sbar[49] + acadoVariables.x[49];
+acadoWorkspace.lbA[17] = acadoVariables.lbAValues[17] - tmp;
+acadoWorkspace.ubA[17] = acadoVariables.ubAValues[17] - tmp;
+tmp = acadoWorkspace.sbar[53] + acadoVariables.x[53];
+acadoWorkspace.lbA[18] = acadoVariables.lbAValues[18] - tmp;
+acadoWorkspace.ubA[18] = acadoVariables.ubAValues[18] - tmp;
+tmp = acadoWorkspace.sbar[54] + acadoVariables.x[54];
+acadoWorkspace.lbA[19] = acadoVariables.lbAValues[19] - tmp;
+acadoWorkspace.ubA[19] = acadoVariables.ubAValues[19] - tmp;
+tmp = acadoWorkspace.sbar[58] + acadoVariables.x[58];
+acadoWorkspace.lbA[20] = acadoVariables.lbAValues[20] - tmp;
+acadoWorkspace.ubA[20] = acadoVariables.ubAValues[20] - tmp;
+tmp = acadoWorkspace.sbar[59] + acadoVariables.x[59];
+acadoWorkspace.lbA[21] = acadoVariables.lbAValues[21] - tmp;
+acadoWorkspace.ubA[21] = acadoVariables.ubAValues[21] - tmp;
+tmp = acadoWorkspace.sbar[63] + acadoVariables.x[63];
+acadoWorkspace.lbA[22] = acadoVariables.lbAValues[22] - tmp;
+acadoWorkspace.ubA[22] = acadoVariables.ubAValues[22] - tmp;
+tmp = acadoWorkspace.sbar[64] + acadoVariables.x[64];
+acadoWorkspace.lbA[23] = acadoVariables.lbAValues[23] - tmp;
+acadoWorkspace.ubA[23] = acadoVariables.ubAValues[23] - tmp;
+tmp = acadoWorkspace.sbar[68] + acadoVariables.x[68];
+acadoWorkspace.lbA[24] = acadoVariables.lbAValues[24] - tmp;
+acadoWorkspace.ubA[24] = acadoVariables.ubAValues[24] - tmp;
+tmp = acadoWorkspace.sbar[69] + acadoVariables.x[69];
+acadoWorkspace.lbA[25] = acadoVariables.lbAValues[25] - tmp;
+acadoWorkspace.ubA[25] = acadoVariables.ubAValues[25] - tmp;
+tmp = acadoWorkspace.sbar[73] + acadoVariables.x[73];
+acadoWorkspace.lbA[26] = acadoVariables.lbAValues[26] - tmp;
+acadoWorkspace.ubA[26] = acadoVariables.ubAValues[26] - tmp;
+tmp = acadoWorkspace.sbar[74] + acadoVariables.x[74];
+acadoWorkspace.lbA[27] = acadoVariables.lbAValues[27] - tmp;
+acadoWorkspace.ubA[27] = acadoVariables.ubAValues[27] - tmp;
+tmp = acadoWorkspace.sbar[78] + acadoVariables.x[78];
+acadoWorkspace.lbA[28] = acadoVariables.lbAValues[28] - tmp;
+acadoWorkspace.ubA[28] = acadoVariables.ubAValues[28] - tmp;
+tmp = acadoWorkspace.sbar[79] + acadoVariables.x[79];
+acadoWorkspace.lbA[29] = acadoVariables.lbAValues[29] - tmp;
+acadoWorkspace.ubA[29] = acadoVariables.ubAValues[29] - tmp;
+tmp = acadoWorkspace.sbar[83] + acadoVariables.x[83];
+acadoWorkspace.lbA[30] = acadoVariables.lbAValues[30] - tmp;
+acadoWorkspace.ubA[30] = acadoVariables.ubAValues[30] - tmp;
+tmp = acadoWorkspace.sbar[84] + acadoVariables.x[84];
+acadoWorkspace.lbA[31] = acadoVariables.lbAValues[31] - tmp;
+acadoWorkspace.ubA[31] = acadoVariables.ubAValues[31] - tmp;
+tmp = acadoWorkspace.sbar[88] + acadoVariables.x[88];
+acadoWorkspace.lbA[32] = acadoVariables.lbAValues[32] - tmp;
+acadoWorkspace.ubA[32] = acadoVariables.ubAValues[32] - tmp;
+tmp = acadoWorkspace.sbar[89] + acadoVariables.x[89];
+acadoWorkspace.lbA[33] = acadoVariables.lbAValues[33] - tmp;
+acadoWorkspace.ubA[33] = acadoVariables.ubAValues[33] - tmp;
+tmp = acadoWorkspace.sbar[93] + acadoVariables.x[93];
+acadoWorkspace.lbA[34] = acadoVariables.lbAValues[34] - tmp;
+acadoWorkspace.ubA[34] = acadoVariables.ubAValues[34] - tmp;
+tmp = acadoWorkspace.sbar[94] + acadoVariables.x[94];
+acadoWorkspace.lbA[35] = acadoVariables.lbAValues[35] - tmp;
+acadoWorkspace.ubA[35] = acadoVariables.ubAValues[35] - tmp;
+tmp = acadoWorkspace.sbar[98] + acadoVariables.x[98];
+acadoWorkspace.lbA[36] = acadoVariables.lbAValues[36] - tmp;
+acadoWorkspace.ubA[36] = acadoVariables.ubAValues[36] - tmp;
+tmp = acadoWorkspace.sbar[99] + acadoVariables.x[99];
+acadoWorkspace.lbA[37] = acadoVariables.lbAValues[37] - tmp;
+acadoWorkspace.ubA[37] = acadoVariables.ubAValues[37] - tmp;
+tmp = acadoWorkspace.sbar[103] + acadoVariables.x[103];
+acadoWorkspace.lbA[38] = acadoVariables.lbAValues[38] - tmp;
+acadoWorkspace.ubA[38] = acadoVariables.ubAValues[38] - tmp;
+tmp = acadoWorkspace.sbar[104] + acadoVariables.x[104];
+acadoWorkspace.lbA[39] = acadoVariables.lbAValues[39] - tmp;
+acadoWorkspace.ubA[39] = acadoVariables.ubAValues[39] - tmp;
+
+acado_macHxd( acadoWorkspace.evHx, acadoWorkspace.sbar, &(acadoWorkspace.lbA[ 40 ]), &(acadoWorkspace.ubA[ 40 ]) );
+acado_macHxd( &(acadoWorkspace.evHx[ 50 ]), &(acadoWorkspace.sbar[ 5 ]), &(acadoWorkspace.lbA[ 50 ]), &(acadoWorkspace.ubA[ 50 ]) );
+acado_macHxd( &(acadoWorkspace.evHx[ 100 ]), &(acadoWorkspace.sbar[ 10 ]), &(acadoWorkspace.lbA[ 60 ]), &(acadoWorkspace.ubA[ 60 ]) );
+acado_macHxd( &(acadoWorkspace.evHx[ 150 ]), &(acadoWorkspace.sbar[ 15 ]), &(acadoWorkspace.lbA[ 70 ]), &(acadoWorkspace.ubA[ 70 ]) );
+acado_macHxd( &(acadoWorkspace.evHx[ 200 ]), &(acadoWorkspace.sbar[ 20 ]), &(acadoWorkspace.lbA[ 80 ]), &(acadoWorkspace.ubA[ 80 ]) );
+acado_macHxd( &(acadoWorkspace.evHx[ 250 ]), &(acadoWorkspace.sbar[ 25 ]), &(acadoWorkspace.lbA[ 90 ]), &(acadoWorkspace.ubA[ 90 ]) );
+acado_macHxd( &(acadoWorkspace.evHx[ 300 ]), &(acadoWorkspace.sbar[ 30 ]), &(acadoWorkspace.lbA[ 100 ]), &(acadoWorkspace.ubA[ 100 ]) );
+acado_macHxd( &(acadoWorkspace.evHx[ 350 ]), &(acadoWorkspace.sbar[ 35 ]), &(acadoWorkspace.lbA[ 110 ]), &(acadoWorkspace.ubA[ 110 ]) );
+acado_macHxd( &(acadoWorkspace.evHx[ 400 ]), &(acadoWorkspace.sbar[ 40 ]), &(acadoWorkspace.lbA[ 120 ]), &(acadoWorkspace.ubA[ 120 ]) );
+acado_macHxd( &(acadoWorkspace.evHx[ 450 ]), &(acadoWorkspace.sbar[ 45 ]), &(acadoWorkspace.lbA[ 130 ]), &(acadoWorkspace.ubA[ 130 ]) );
+acado_macHxd( &(acadoWorkspace.evHx[ 500 ]), &(acadoWorkspace.sbar[ 50 ]), &(acadoWorkspace.lbA[ 140 ]), &(acadoWorkspace.ubA[ 140 ]) );
+acado_macHxd( &(acadoWorkspace.evHx[ 550 ]), &(acadoWorkspace.sbar[ 55 ]), &(acadoWorkspace.lbA[ 150 ]), &(acadoWorkspace.ubA[ 150 ]) );
+acado_macHxd( &(acadoWorkspace.evHx[ 600 ]), &(acadoWorkspace.sbar[ 60 ]), &(acadoWorkspace.lbA[ 160 ]), &(acadoWorkspace.ubA[ 160 ]) );
+acado_macHxd( &(acadoWorkspace.evHx[ 650 ]), &(acadoWorkspace.sbar[ 65 ]), &(acadoWorkspace.lbA[ 170 ]), &(acadoWorkspace.ubA[ 170 ]) );
+acado_macHxd( &(acadoWorkspace.evHx[ 700 ]), &(acadoWorkspace.sbar[ 70 ]), &(acadoWorkspace.lbA[ 180 ]), &(acadoWorkspace.ubA[ 180 ]) );
+acado_macHxd( &(acadoWorkspace.evHx[ 750 ]), &(acadoWorkspace.sbar[ 75 ]), &(acadoWorkspace.lbA[ 190 ]), &(acadoWorkspace.ubA[ 190 ]) );
+acado_macHxd( &(acadoWorkspace.evHx[ 800 ]), &(acadoWorkspace.sbar[ 80 ]), &(acadoWorkspace.lbA[ 200 ]), &(acadoWorkspace.ubA[ 200 ]) );
+acado_macHxd( &(acadoWorkspace.evHx[ 850 ]), &(acadoWorkspace.sbar[ 85 ]), &(acadoWorkspace.lbA[ 210 ]), &(acadoWorkspace.ubA[ 210 ]) );
+acado_macHxd( &(acadoWorkspace.evHx[ 900 ]), &(acadoWorkspace.sbar[ 90 ]), &(acadoWorkspace.lbA[ 220 ]), &(acadoWorkspace.ubA[ 220 ]) );
+acado_macHxd( &(acadoWorkspace.evHx[ 950 ]), &(acadoWorkspace.sbar[ 95 ]), &(acadoWorkspace.lbA[ 230 ]), &(acadoWorkspace.ubA[ 230 ]) );
+
+}
+
+void acado_expand(  )
+{
+acadoVariables.u[0] += acadoWorkspace.x[0];
+acadoVariables.u[1] += acadoWorkspace.x[1];
+acadoVariables.u[2] += acadoWorkspace.x[2];
+acadoVariables.u[3] += acadoWorkspace.x[3];
+acadoVariables.u[4] += acadoWorkspace.x[4];
+acadoVariables.u[5] += acadoWorkspace.x[5];
+acadoVariables.u[6] += acadoWorkspace.x[6];
+acadoVariables.u[7] += acadoWorkspace.x[7];
+acadoVariables.u[8] += acadoWorkspace.x[8];
+acadoVariables.u[9] += acadoWorkspace.x[9];
+acadoVariables.u[10] += acadoWorkspace.x[10];
+acadoVariables.u[11] += acadoWorkspace.x[11];
+acadoVariables.u[12] += acadoWorkspace.x[12];
+acadoVariables.u[13] += acadoWorkspace.x[13];
+acadoVariables.u[14] += acadoWorkspace.x[14];
+acadoVariables.u[15] += acadoWorkspace.x[15];
+acadoVariables.u[16] += acadoWorkspace.x[16];
+acadoVariables.u[17] += acadoWorkspace.x[17];
+acadoVariables.u[18] += acadoWorkspace.x[18];
+acadoVariables.u[19] += acadoWorkspace.x[19];
+acadoVariables.u[20] += acadoWorkspace.x[20];
+acadoVariables.u[21] += acadoWorkspace.x[21];
+acadoVariables.u[22] += acadoWorkspace.x[22];
+acadoVariables.u[23] += acadoWorkspace.x[23];
+acadoVariables.u[24] += acadoWorkspace.x[24];
+acadoVariables.u[25] += acadoWorkspace.x[25];
+acadoVariables.u[26] += acadoWorkspace.x[26];
+acadoVariables.u[27] += acadoWorkspace.x[27];
+acadoVariables.u[28] += acadoWorkspace.x[28];
+acadoVariables.u[29] += acadoWorkspace.x[29];
+acadoVariables.u[30] += acadoWorkspace.x[30];
+acadoVariables.u[31] += acadoWorkspace.x[31];
+acadoVariables.u[32] += acadoWorkspace.x[32];
+acadoVariables.u[33] += acadoWorkspace.x[33];
+acadoVariables.u[34] += acadoWorkspace.x[34];
+acadoVariables.u[35] += acadoWorkspace.x[35];
+acadoVariables.u[36] += acadoWorkspace.x[36];
+acadoVariables.u[37] += acadoWorkspace.x[37];
+acadoVariables.u[38] += acadoWorkspace.x[38];
+acadoVariables.u[39] += acadoWorkspace.x[39];
+acadoWorkspace.sbar[0] = acadoWorkspace.Dx0[0];
+acadoWorkspace.sbar[1] = acadoWorkspace.Dx0[1];
+acadoWorkspace.sbar[2] = acadoWorkspace.Dx0[2];
+acadoWorkspace.sbar[3] = acadoWorkspace.Dx0[3];
+acadoWorkspace.sbar[4] = acadoWorkspace.Dx0[4];
+acadoWorkspace.sbar[5] = acadoWorkspace.d[0];
+acadoWorkspace.sbar[6] = acadoWorkspace.d[1];
+acadoWorkspace.sbar[7] = acadoWorkspace.d[2];
+acadoWorkspace.sbar[8] = acadoWorkspace.d[3];
+acadoWorkspace.sbar[9] = acadoWorkspace.d[4];
+acadoWorkspace.sbar[10] = acadoWorkspace.d[5];
+acadoWorkspace.sbar[11] = acadoWorkspace.d[6];
+acadoWorkspace.sbar[12] = acadoWorkspace.d[7];
+acadoWorkspace.sbar[13] = acadoWorkspace.d[8];
+acadoWorkspace.sbar[14] = acadoWorkspace.d[9];
+acadoWorkspace.sbar[15] = acadoWorkspace.d[10];
+acadoWorkspace.sbar[16] = acadoWorkspace.d[11];
+acadoWorkspace.sbar[17] = acadoWorkspace.d[12];
+acadoWorkspace.sbar[18] = acadoWorkspace.d[13];
+acadoWorkspace.sbar[19] = acadoWorkspace.d[14];
+acadoWorkspace.sbar[20] = acadoWorkspace.d[15];
+acadoWorkspace.sbar[21] = acadoWorkspace.d[16];
+acadoWorkspace.sbar[22] = acadoWorkspace.d[17];
+acadoWorkspace.sbar[23] = acadoWorkspace.d[18];
+acadoWorkspace.sbar[24] = acadoWorkspace.d[19];
+acadoWorkspace.sbar[25] = acadoWorkspace.d[20];
+acadoWorkspace.sbar[26] = acadoWorkspace.d[21];
+acadoWorkspace.sbar[27] = acadoWorkspace.d[22];
+acadoWorkspace.sbar[28] = acadoWorkspace.d[23];
+acadoWorkspace.sbar[29] = acadoWorkspace.d[24];
+acadoWorkspace.sbar[30] = acadoWorkspace.d[25];
+acadoWorkspace.sbar[31] = acadoWorkspace.d[26];
+acadoWorkspace.sbar[32] = acadoWorkspace.d[27];
+acadoWorkspace.sbar[33] = acadoWorkspace.d[28];
+acadoWorkspace.sbar[34] = acadoWorkspace.d[29];
+acadoWorkspace.sbar[35] = acadoWorkspace.d[30];
+acadoWorkspace.sbar[36] = acadoWorkspace.d[31];
+acadoWorkspace.sbar[37] = acadoWorkspace.d[32];
+acadoWorkspace.sbar[38] = acadoWorkspace.d[33];
+acadoWorkspace.sbar[39] = acadoWorkspace.d[34];
+acadoWorkspace.sbar[40] = acadoWorkspace.d[35];
+acadoWorkspace.sbar[41] = acadoWorkspace.d[36];
+acadoWorkspace.sbar[42] = acadoWorkspace.d[37];
+acadoWorkspace.sbar[43] = acadoWorkspace.d[38];
+acadoWorkspace.sbar[44] = acadoWorkspace.d[39];
+acadoWorkspace.sbar[45] = acadoWorkspace.d[40];
+acadoWorkspace.sbar[46] = acadoWorkspace.d[41];
+acadoWorkspace.sbar[47] = acadoWorkspace.d[42];
+acadoWorkspace.sbar[48] = acadoWorkspace.d[43];
+acadoWorkspace.sbar[49] = acadoWorkspace.d[44];
+acadoWorkspace.sbar[50] = acadoWorkspace.d[45];
+acadoWorkspace.sbar[51] = acadoWorkspace.d[46];
+acadoWorkspace.sbar[52] = acadoWorkspace.d[47];
+acadoWorkspace.sbar[53] = acadoWorkspace.d[48];
+acadoWorkspace.sbar[54] = acadoWorkspace.d[49];
+acadoWorkspace.sbar[55] = acadoWorkspace.d[50];
+acadoWorkspace.sbar[56] = acadoWorkspace.d[51];
+acadoWorkspace.sbar[57] = acadoWorkspace.d[52];
+acadoWorkspace.sbar[58] = acadoWorkspace.d[53];
+acadoWorkspace.sbar[59] = acadoWorkspace.d[54];
+acadoWorkspace.sbar[60] = acadoWorkspace.d[55];
+acadoWorkspace.sbar[61] = acadoWorkspace.d[56];
+acadoWorkspace.sbar[62] = acadoWorkspace.d[57];
+acadoWorkspace.sbar[63] = acadoWorkspace.d[58];
+acadoWorkspace.sbar[64] = acadoWorkspace.d[59];
+acadoWorkspace.sbar[65] = acadoWorkspace.d[60];
+acadoWorkspace.sbar[66] = acadoWorkspace.d[61];
+acadoWorkspace.sbar[67] = acadoWorkspace.d[62];
+acadoWorkspace.sbar[68] = acadoWorkspace.d[63];
+acadoWorkspace.sbar[69] = acadoWorkspace.d[64];
+acadoWorkspace.sbar[70] = acadoWorkspace.d[65];
+acadoWorkspace.sbar[71] = acadoWorkspace.d[66];
+acadoWorkspace.sbar[72] = acadoWorkspace.d[67];
+acadoWorkspace.sbar[73] = acadoWorkspace.d[68];
+acadoWorkspace.sbar[74] = acadoWorkspace.d[69];
+acadoWorkspace.sbar[75] = acadoWorkspace.d[70];
+acadoWorkspace.sbar[76] = acadoWorkspace.d[71];
+acadoWorkspace.sbar[77] = acadoWorkspace.d[72];
+acadoWorkspace.sbar[78] = acadoWorkspace.d[73];
+acadoWorkspace.sbar[79] = acadoWorkspace.d[74];
+acadoWorkspace.sbar[80] = acadoWorkspace.d[75];
+acadoWorkspace.sbar[81] = acadoWorkspace.d[76];
+acadoWorkspace.sbar[82] = acadoWorkspace.d[77];
+acadoWorkspace.sbar[83] = acadoWorkspace.d[78];
+acadoWorkspace.sbar[84] = acadoWorkspace.d[79];
+acadoWorkspace.sbar[85] = acadoWorkspace.d[80];
+acadoWorkspace.sbar[86] = acadoWorkspace.d[81];
+acadoWorkspace.sbar[87] = acadoWorkspace.d[82];
+acadoWorkspace.sbar[88] = acadoWorkspace.d[83];
+acadoWorkspace.sbar[89] = acadoWorkspace.d[84];
+acadoWorkspace.sbar[90] = acadoWorkspace.d[85];
+acadoWorkspace.sbar[91] = acadoWorkspace.d[86];
+acadoWorkspace.sbar[92] = acadoWorkspace.d[87];
+acadoWorkspace.sbar[93] = acadoWorkspace.d[88];
+acadoWorkspace.sbar[94] = acadoWorkspace.d[89];
+acadoWorkspace.sbar[95] = acadoWorkspace.d[90];
+acadoWorkspace.sbar[96] = acadoWorkspace.d[91];
+acadoWorkspace.sbar[97] = acadoWorkspace.d[92];
+acadoWorkspace.sbar[98] = acadoWorkspace.d[93];
+acadoWorkspace.sbar[99] = acadoWorkspace.d[94];
+acadoWorkspace.sbar[100] = acadoWorkspace.d[95];
+acadoWorkspace.sbar[101] = acadoWorkspace.d[96];
+acadoWorkspace.sbar[102] = acadoWorkspace.d[97];
+acadoWorkspace.sbar[103] = acadoWorkspace.d[98];
+acadoWorkspace.sbar[104] = acadoWorkspace.d[99];
+acado_expansionStep( acadoWorkspace.evGx, acadoWorkspace.evGu, acadoWorkspace.x, acadoWorkspace.sbar, &(acadoWorkspace.sbar[ 5 ]) );
+acado_expansionStep( &(acadoWorkspace.evGx[ 25 ]), &(acadoWorkspace.evGu[ 10 ]), &(acadoWorkspace.x[ 2 ]), &(acadoWorkspace.sbar[ 5 ]), &(acadoWorkspace.sbar[ 10 ]) );
+acado_expansionStep( &(acadoWorkspace.evGx[ 50 ]), &(acadoWorkspace.evGu[ 20 ]), &(acadoWorkspace.x[ 4 ]), &(acadoWorkspace.sbar[ 10 ]), &(acadoWorkspace.sbar[ 15 ]) );
+acado_expansionStep( &(acadoWorkspace.evGx[ 75 ]), &(acadoWorkspace.evGu[ 30 ]), &(acadoWorkspace.x[ 6 ]), &(acadoWorkspace.sbar[ 15 ]), &(acadoWorkspace.sbar[ 20 ]) );
+acado_expansionStep( &(acadoWorkspace.evGx[ 100 ]), &(acadoWorkspace.evGu[ 40 ]), &(acadoWorkspace.x[ 8 ]), &(acadoWorkspace.sbar[ 20 ]), &(acadoWorkspace.sbar[ 25 ]) );
+acado_expansionStep( &(acadoWorkspace.evGx[ 125 ]), &(acadoWorkspace.evGu[ 50 ]), &(acadoWorkspace.x[ 10 ]), &(acadoWorkspace.sbar[ 25 ]), &(acadoWorkspace.sbar[ 30 ]) );
+acado_expansionStep( &(acadoWorkspace.evGx[ 150 ]), &(acadoWorkspace.evGu[ 60 ]), &(acadoWorkspace.x[ 12 ]), &(acadoWorkspace.sbar[ 30 ]), &(acadoWorkspace.sbar[ 35 ]) );
+acado_expansionStep( &(acadoWorkspace.evGx[ 175 ]), &(acadoWorkspace.evGu[ 70 ]), &(acadoWorkspace.x[ 14 ]), &(acadoWorkspace.sbar[ 35 ]), &(acadoWorkspace.sbar[ 40 ]) );
+acado_expansionStep( &(acadoWorkspace.evGx[ 200 ]), &(acadoWorkspace.evGu[ 80 ]), &(acadoWorkspace.x[ 16 ]), &(acadoWorkspace.sbar[ 40 ]), &(acadoWorkspace.sbar[ 45 ]) );
+acado_expansionStep( &(acadoWorkspace.evGx[ 225 ]), &(acadoWorkspace.evGu[ 90 ]), &(acadoWorkspace.x[ 18 ]), &(acadoWorkspace.sbar[ 45 ]), &(acadoWorkspace.sbar[ 50 ]) );
+acado_expansionStep( &(acadoWorkspace.evGx[ 250 ]), &(acadoWorkspace.evGu[ 100 ]), &(acadoWorkspace.x[ 20 ]), &(acadoWorkspace.sbar[ 50 ]), &(acadoWorkspace.sbar[ 55 ]) );
+acado_expansionStep( &(acadoWorkspace.evGx[ 275 ]), &(acadoWorkspace.evGu[ 110 ]), &(acadoWorkspace.x[ 22 ]), &(acadoWorkspace.sbar[ 55 ]), &(acadoWorkspace.sbar[ 60 ]) );
+acado_expansionStep( &(acadoWorkspace.evGx[ 300 ]), &(acadoWorkspace.evGu[ 120 ]), &(acadoWorkspace.x[ 24 ]), &(acadoWorkspace.sbar[ 60 ]), &(acadoWorkspace.sbar[ 65 ]) );
+acado_expansionStep( &(acadoWorkspace.evGx[ 325 ]), &(acadoWorkspace.evGu[ 130 ]), &(acadoWorkspace.x[ 26 ]), &(acadoWorkspace.sbar[ 65 ]), &(acadoWorkspace.sbar[ 70 ]) );
+acado_expansionStep( &(acadoWorkspace.evGx[ 350 ]), &(acadoWorkspace.evGu[ 140 ]), &(acadoWorkspace.x[ 28 ]), &(acadoWorkspace.sbar[ 70 ]), &(acadoWorkspace.sbar[ 75 ]) );
+acado_expansionStep( &(acadoWorkspace.evGx[ 375 ]), &(acadoWorkspace.evGu[ 150 ]), &(acadoWorkspace.x[ 30 ]), &(acadoWorkspace.sbar[ 75 ]), &(acadoWorkspace.sbar[ 80 ]) );
+acado_expansionStep( &(acadoWorkspace.evGx[ 400 ]), &(acadoWorkspace.evGu[ 160 ]), &(acadoWorkspace.x[ 32 ]), &(acadoWorkspace.sbar[ 80 ]), &(acadoWorkspace.sbar[ 85 ]) );
+acado_expansionStep( &(acadoWorkspace.evGx[ 425 ]), &(acadoWorkspace.evGu[ 170 ]), &(acadoWorkspace.x[ 34 ]), &(acadoWorkspace.sbar[ 85 ]), &(acadoWorkspace.sbar[ 90 ]) );
+acado_expansionStep( &(acadoWorkspace.evGx[ 450 ]), &(acadoWorkspace.evGu[ 180 ]), &(acadoWorkspace.x[ 36 ]), &(acadoWorkspace.sbar[ 90 ]), &(acadoWorkspace.sbar[ 95 ]) );
+acado_expansionStep( &(acadoWorkspace.evGx[ 475 ]), &(acadoWorkspace.evGu[ 190 ]), &(acadoWorkspace.x[ 38 ]), &(acadoWorkspace.sbar[ 95 ]), &(acadoWorkspace.sbar[ 100 ]) );
+acadoVariables.x[0] += acadoWorkspace.sbar[0];
+acadoVariables.x[1] += acadoWorkspace.sbar[1];
+acadoVariables.x[2] += acadoWorkspace.sbar[2];
+acadoVariables.x[3] += acadoWorkspace.sbar[3];
+acadoVariables.x[4] += acadoWorkspace.sbar[4];
+acadoVariables.x[5] += acadoWorkspace.sbar[5];
+acadoVariables.x[6] += acadoWorkspace.sbar[6];
+acadoVariables.x[7] += acadoWorkspace.sbar[7];
+acadoVariables.x[8] += acadoWorkspace.sbar[8];
+acadoVariables.x[9] += acadoWorkspace.sbar[9];
+acadoVariables.x[10] += acadoWorkspace.sbar[10];
+acadoVariables.x[11] += acadoWorkspace.sbar[11];
+acadoVariables.x[12] += acadoWorkspace.sbar[12];
+acadoVariables.x[13] += acadoWorkspace.sbar[13];
+acadoVariables.x[14] += acadoWorkspace.sbar[14];
+acadoVariables.x[15] += acadoWorkspace.sbar[15];
+acadoVariables.x[16] += acadoWorkspace.sbar[16];
+acadoVariables.x[17] += acadoWorkspace.sbar[17];
+acadoVariables.x[18] += acadoWorkspace.sbar[18];
+acadoVariables.x[19] += acadoWorkspace.sbar[19];
+acadoVariables.x[20] += acadoWorkspace.sbar[20];
+acadoVariables.x[21] += acadoWorkspace.sbar[21];
+acadoVariables.x[22] += acadoWorkspace.sbar[22];
+acadoVariables.x[23] += acadoWorkspace.sbar[23];
+acadoVariables.x[24] += acadoWorkspace.sbar[24];
+acadoVariables.x[25] += acadoWorkspace.sbar[25];
+acadoVariables.x[26] += acadoWorkspace.sbar[26];
+acadoVariables.x[27] += acadoWorkspace.sbar[27];
+acadoVariables.x[28] += acadoWorkspace.sbar[28];
+acadoVariables.x[29] += acadoWorkspace.sbar[29];
+acadoVariables.x[30] += acadoWorkspace.sbar[30];
+acadoVariables.x[31] += acadoWorkspace.sbar[31];
+acadoVariables.x[32] += acadoWorkspace.sbar[32];
+acadoVariables.x[33] += acadoWorkspace.sbar[33];
+acadoVariables.x[34] += acadoWorkspace.sbar[34];
+acadoVariables.x[35] += acadoWorkspace.sbar[35];
+acadoVariables.x[36] += acadoWorkspace.sbar[36];
+acadoVariables.x[37] += acadoWorkspace.sbar[37];
+acadoVariables.x[38] += acadoWorkspace.sbar[38];
+acadoVariables.x[39] += acadoWorkspace.sbar[39];
+acadoVariables.x[40] += acadoWorkspace.sbar[40];
+acadoVariables.x[41] += acadoWorkspace.sbar[41];
+acadoVariables.x[42] += acadoWorkspace.sbar[42];
+acadoVariables.x[43] += acadoWorkspace.sbar[43];
+acadoVariables.x[44] += acadoWorkspace.sbar[44];
+acadoVariables.x[45] += acadoWorkspace.sbar[45];
+acadoVariables.x[46] += acadoWorkspace.sbar[46];
+acadoVariables.x[47] += acadoWorkspace.sbar[47];
+acadoVariables.x[48] += acadoWorkspace.sbar[48];
+acadoVariables.x[49] += acadoWorkspace.sbar[49];
+acadoVariables.x[50] += acadoWorkspace.sbar[50];
+acadoVariables.x[51] += acadoWorkspace.sbar[51];
+acadoVariables.x[52] += acadoWorkspace.sbar[52];
+acadoVariables.x[53] += acadoWorkspace.sbar[53];
+acadoVariables.x[54] += acadoWorkspace.sbar[54];
+acadoVariables.x[55] += acadoWorkspace.sbar[55];
+acadoVariables.x[56] += acadoWorkspace.sbar[56];
+acadoVariables.x[57] += acadoWorkspace.sbar[57];
+acadoVariables.x[58] += acadoWorkspace.sbar[58];
+acadoVariables.x[59] += acadoWorkspace.sbar[59];
+acadoVariables.x[60] += acadoWorkspace.sbar[60];
+acadoVariables.x[61] += acadoWorkspace.sbar[61];
+acadoVariables.x[62] += acadoWorkspace.sbar[62];
+acadoVariables.x[63] += acadoWorkspace.sbar[63];
+acadoVariables.x[64] += acadoWorkspace.sbar[64];
+acadoVariables.x[65] += acadoWorkspace.sbar[65];
+acadoVariables.x[66] += acadoWorkspace.sbar[66];
+acadoVariables.x[67] += acadoWorkspace.sbar[67];
+acadoVariables.x[68] += acadoWorkspace.sbar[68];
+acadoVariables.x[69] += acadoWorkspace.sbar[69];
+acadoVariables.x[70] += acadoWorkspace.sbar[70];
+acadoVariables.x[71] += acadoWorkspace.sbar[71];
+acadoVariables.x[72] += acadoWorkspace.sbar[72];
+acadoVariables.x[73] += acadoWorkspace.sbar[73];
+acadoVariables.x[74] += acadoWorkspace.sbar[74];
+acadoVariables.x[75] += acadoWorkspace.sbar[75];
+acadoVariables.x[76] += acadoWorkspace.sbar[76];
+acadoVariables.x[77] += acadoWorkspace.sbar[77];
+acadoVariables.x[78] += acadoWorkspace.sbar[78];
+acadoVariables.x[79] += acadoWorkspace.sbar[79];
+acadoVariables.x[80] += acadoWorkspace.sbar[80];
+acadoVariables.x[81] += acadoWorkspace.sbar[81];
+acadoVariables.x[82] += acadoWorkspace.sbar[82];
+acadoVariables.x[83] += acadoWorkspace.sbar[83];
+acadoVariables.x[84] += acadoWorkspace.sbar[84];
+acadoVariables.x[85] += acadoWorkspace.sbar[85];
+acadoVariables.x[86] += acadoWorkspace.sbar[86];
+acadoVariables.x[87] += acadoWorkspace.sbar[87];
+acadoVariables.x[88] += acadoWorkspace.sbar[88];
+acadoVariables.x[89] += acadoWorkspace.sbar[89];
+acadoVariables.x[90] += acadoWorkspace.sbar[90];
+acadoVariables.x[91] += acadoWorkspace.sbar[91];
+acadoVariables.x[92] += acadoWorkspace.sbar[92];
+acadoVariables.x[93] += acadoWorkspace.sbar[93];
+acadoVariables.x[94] += acadoWorkspace.sbar[94];
+acadoVariables.x[95] += acadoWorkspace.sbar[95];
+acadoVariables.x[96] += acadoWorkspace.sbar[96];
+acadoVariables.x[97] += acadoWorkspace.sbar[97];
+acadoVariables.x[98] += acadoWorkspace.sbar[98];
+acadoVariables.x[99] += acadoWorkspace.sbar[99];
+acadoVariables.x[100] += acadoWorkspace.sbar[100];
+acadoVariables.x[101] += acadoWorkspace.sbar[101];
+acadoVariables.x[102] += acadoWorkspace.sbar[102];
+acadoVariables.x[103] += acadoWorkspace.sbar[103];
+acadoVariables.x[104] += acadoWorkspace.sbar[104];
+}
+
+int acado_preparationStep(  )
+{
+int ret;
+
+ret = acado_modelSimulation();
+acado_evaluateObjective(  );
+acado_condensePrep(  );
+return ret;
+}
+
+int acado_feedbackStep(  )
+{
+int tmp;
+
+acado_condenseFdb(  );
+
+tmp = acado_solve( );
+
+acado_expand(  );
+return tmp;
+}
+
+int acado_initializeSolver(  )
+{
+int ret;
+
+/* This is a function which must be called once before any other function call! */
+
+
+ret = 0;
+
+memset(&acadoWorkspace, 0, sizeof( acadoWorkspace ));
+acadoVariables.lbValues[0] = -3.0000000000000000e+00;
+acadoVariables.lbValues[1] = -3.0000000000000000e+00;
+acadoVariables.lbValues[2] = -3.0000000000000000e+00;
+acadoVariables.lbValues[3] = -3.0000000000000000e+00;
+acadoVariables.lbValues[4] = -3.0000000000000000e+00;
+acadoVariables.lbValues[5] = -3.0000000000000000e+00;
+acadoVariables.lbValues[6] = -3.0000000000000000e+00;
+acadoVariables.lbValues[7] = -3.0000000000000000e+00;
+acadoVariables.lbValues[8] = -3.0000000000000000e+00;
+acadoVariables.lbValues[9] = -3.0000000000000000e+00;
+acadoVariables.lbValues[10] = -3.0000000000000000e+00;
+acadoVariables.lbValues[11] = -3.0000000000000000e+00;
+acadoVariables.lbValues[12] = -3.0000000000000000e+00;
+acadoVariables.lbValues[13] = -3.0000000000000000e+00;
+acadoVariables.lbValues[14] = -3.0000000000000000e+00;
+acadoVariables.lbValues[15] = -3.0000000000000000e+00;
+acadoVariables.lbValues[16] = -3.0000000000000000e+00;
+acadoVariables.lbValues[17] = -3.0000000000000000e+00;
+acadoVariables.lbValues[18] = -3.0000000000000000e+00;
+acadoVariables.lbValues[19] = -3.0000000000000000e+00;
+acadoVariables.lbValues[20] = -3.0000000000000000e+00;
+acadoVariables.lbValues[21] = -3.0000000000000000e+00;
+acadoVariables.lbValues[22] = -3.0000000000000000e+00;
+acadoVariables.lbValues[23] = -3.0000000000000000e+00;
+acadoVariables.lbValues[24] = -3.0000000000000000e+00;
+acadoVariables.lbValues[25] = -3.0000000000000000e+00;
+acadoVariables.lbValues[26] = -3.0000000000000000e+00;
+acadoVariables.lbValues[27] = -3.0000000000000000e+00;
+acadoVariables.lbValues[28] = -3.0000000000000000e+00;
+acadoVariables.lbValues[29] = -3.0000000000000000e+00;
+acadoVariables.lbValues[30] = -3.0000000000000000e+00;
+acadoVariables.lbValues[31] = -3.0000000000000000e+00;
+acadoVariables.lbValues[32] = -3.0000000000000000e+00;
+acadoVariables.lbValues[33] = -3.0000000000000000e+00;
+acadoVariables.lbValues[34] = -3.0000000000000000e+00;
+acadoVariables.lbValues[35] = -3.0000000000000000e+00;
+acadoVariables.lbValues[36] = -3.0000000000000000e+00;
+acadoVariables.lbValues[37] = -3.0000000000000000e+00;
+acadoVariables.lbValues[38] = -3.0000000000000000e+00;
+acadoVariables.lbValues[39] = -3.0000000000000000e+00;
+acadoVariables.ubValues[0] = 3.0000000000000000e+00;
+acadoVariables.ubValues[1] = 3.0000000000000000e+00;
+acadoVariables.ubValues[2] = 3.0000000000000000e+00;
+acadoVariables.ubValues[3] = 3.0000000000000000e+00;
+acadoVariables.ubValues[4] = 3.0000000000000000e+00;
+acadoVariables.ubValues[5] = 3.0000000000000000e+00;
+acadoVariables.ubValues[6] = 3.0000000000000000e+00;
+acadoVariables.ubValues[7] = 3.0000000000000000e+00;
+acadoVariables.ubValues[8] = 3.0000000000000000e+00;
+acadoVariables.ubValues[9] = 3.0000000000000000e+00;
+acadoVariables.ubValues[10] = 3.0000000000000000e+00;
+acadoVariables.ubValues[11] = 3.0000000000000000e+00;
+acadoVariables.ubValues[12] = 3.0000000000000000e+00;
+acadoVariables.ubValues[13] = 3.0000000000000000e+00;
+acadoVariables.ubValues[14] = 3.0000000000000000e+00;
+acadoVariables.ubValues[15] = 3.0000000000000000e+00;
+acadoVariables.ubValues[16] = 3.0000000000000000e+00;
+acadoVariables.ubValues[17] = 3.0000000000000000e+00;
+acadoVariables.ubValues[18] = 3.0000000000000000e+00;
+acadoVariables.ubValues[19] = 3.0000000000000000e+00;
+acadoVariables.ubValues[20] = 3.0000000000000000e+00;
+acadoVariables.ubValues[21] = 3.0000000000000000e+00;
+acadoVariables.ubValues[22] = 3.0000000000000000e+00;
+acadoVariables.ubValues[23] = 3.0000000000000000e+00;
+acadoVariables.ubValues[24] = 3.0000000000000000e+00;
+acadoVariables.ubValues[25] = 3.0000000000000000e+00;
+acadoVariables.ubValues[26] = 3.0000000000000000e+00;
+acadoVariables.ubValues[27] = 3.0000000000000000e+00;
+acadoVariables.ubValues[28] = 3.0000000000000000e+00;
+acadoVariables.ubValues[29] = 3.0000000000000000e+00;
+acadoVariables.ubValues[30] = 3.0000000000000000e+00;
+acadoVariables.ubValues[31] = 3.0000000000000000e+00;
+acadoVariables.ubValues[32] = 3.0000000000000000e+00;
+acadoVariables.ubValues[33] = 3.0000000000000000e+00;
+acadoVariables.ubValues[34] = 3.0000000000000000e+00;
+acadoVariables.ubValues[35] = 3.0000000000000000e+00;
+acadoVariables.ubValues[36] = 3.0000000000000000e+00;
+acadoVariables.ubValues[37] = 3.0000000000000000e+00;
+acadoVariables.ubValues[38] = 3.0000000000000000e+00;
+acadoVariables.ubValues[39] = 3.0000000000000000e+00;
+acadoVariables.lbAValues[0] = -1.0000000000000000e+00;
+acadoVariables.lbAValues[1] = -3.0000000000000000e+00;
+acadoVariables.lbAValues[2] = -1.0000000000000000e+00;
+acadoVariables.lbAValues[3] = -3.0000000000000000e+00;
+acadoVariables.lbAValues[4] = -1.0000000000000000e+00;
+acadoVariables.lbAValues[5] = -3.0000000000000000e+00;
+acadoVariables.lbAValues[6] = -1.0000000000000000e+00;
+acadoVariables.lbAValues[7] = -3.0000000000000000e+00;
+acadoVariables.lbAValues[8] = -1.0000000000000000e+00;
+acadoVariables.lbAValues[9] = -3.0000000000000000e+00;
+acadoVariables.lbAValues[10] = -1.0000000000000000e+00;
+acadoVariables.lbAValues[11] = -3.0000000000000000e+00;
+acadoVariables.lbAValues[12] = -1.0000000000000000e+00;
+acadoVariables.lbAValues[13] = -3.0000000000000000e+00;
+acadoVariables.lbAValues[14] = -1.0000000000000000e+00;
+acadoVariables.lbAValues[15] = -3.0000000000000000e+00;
+acadoVariables.lbAValues[16] = -1.0000000000000000e+00;
+acadoVariables.lbAValues[17] = -3.0000000000000000e+00;
+acadoVariables.lbAValues[18] = -1.0000000000000000e+00;
+acadoVariables.lbAValues[19] = -3.0000000000000000e+00;
+acadoVariables.lbAValues[20] = -1.0000000000000000e+00;
+acadoVariables.lbAValues[21] = -3.0000000000000000e+00;
+acadoVariables.lbAValues[22] = -1.0000000000000000e+00;
+acadoVariables.lbAValues[23] = -3.0000000000000000e+00;
+acadoVariables.lbAValues[24] = -1.0000000000000000e+00;
+acadoVariables.lbAValues[25] = -3.0000000000000000e+00;
+acadoVariables.lbAValues[26] = -1.0000000000000000e+00;
+acadoVariables.lbAValues[27] = -3.0000000000000000e+00;
+acadoVariables.lbAValues[28] = -1.0000000000000000e+00;
+acadoVariables.lbAValues[29] = -3.0000000000000000e+00;
+acadoVariables.lbAValues[30] = -1.0000000000000000e+00;
+acadoVariables.lbAValues[31] = -3.0000000000000000e+00;
+acadoVariables.lbAValues[32] = -1.0000000000000000e+00;
+acadoVariables.lbAValues[33] = -3.0000000000000000e+00;
+acadoVariables.lbAValues[34] = -1.0000000000000000e+00;
+acadoVariables.lbAValues[35] = -3.0000000000000000e+00;
+acadoVariables.lbAValues[36] = -1.0000000000000000e+00;
+acadoVariables.lbAValues[37] = -3.0000000000000000e+00;
+acadoVariables.lbAValues[38] = -1.0000000000000000e+00;
+acadoVariables.lbAValues[39] = -3.0000000000000000e+00;
+acadoVariables.lbAValues[40] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[41] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[42] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[43] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[44] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[45] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[46] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[47] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[48] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[49] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[50] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[51] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[52] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[53] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[54] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[55] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[56] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[57] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[58] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[59] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[60] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[61] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[62] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[63] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[64] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[65] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[66] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[67] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[68] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[69] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[70] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[71] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[72] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[73] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[74] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[75] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[76] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[77] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[78] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[79] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[80] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[81] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[82] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[83] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[84] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[85] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[86] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[87] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[88] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[89] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[90] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[91] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[92] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[93] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[94] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[95] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[96] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[97] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[98] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[99] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[100] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[101] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[102] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[103] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[104] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[105] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[106] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[107] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[108] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[109] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[110] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[111] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[112] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[113] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[114] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[115] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[116] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[117] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[118] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[119] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[120] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[121] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[122] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[123] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[124] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[125] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[126] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[127] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[128] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[129] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[130] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[131] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[132] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[133] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[134] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[135] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[136] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[137] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[138] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[139] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[140] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[141] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[142] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[143] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[144] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[145] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[146] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[147] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[148] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[149] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[150] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[151] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[152] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[153] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[154] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[155] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[156] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[157] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[158] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[159] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[160] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[161] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[162] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[163] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[164] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[165] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[166] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[167] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[168] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[169] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[170] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[171] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[172] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[173] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[174] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[175] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[176] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[177] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[178] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[179] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[180] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[181] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[182] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[183] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[184] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[185] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[186] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[187] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[188] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[189] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[190] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[191] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[192] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[193] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[194] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[195] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[196] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[197] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[198] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[199] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[200] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[201] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[202] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[203] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[204] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[205] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[206] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[207] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[208] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[209] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[210] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[211] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[212] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[213] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[214] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[215] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[216] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[217] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[218] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[219] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[220] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[221] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[222] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[223] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[224] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[225] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[226] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[227] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[228] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[229] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[230] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[231] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[232] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[233] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[234] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[235] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[236] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[237] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[238] = 1.0000000000000000e+00;
+acadoVariables.lbAValues[239] = 1.0000000000000000e+00;
+acadoVariables.ubAValues[0] = 1.0000000000000000e+00;
+acadoVariables.ubAValues[1] = 3.0000000000000000e+00;
+acadoVariables.ubAValues[2] = 1.0000000000000000e+00;
+acadoVariables.ubAValues[3] = 3.0000000000000000e+00;
+acadoVariables.ubAValues[4] = 1.0000000000000000e+00;
+acadoVariables.ubAValues[5] = 3.0000000000000000e+00;
+acadoVariables.ubAValues[6] = 1.0000000000000000e+00;
+acadoVariables.ubAValues[7] = 3.0000000000000000e+00;
+acadoVariables.ubAValues[8] = 1.0000000000000000e+00;
+acadoVariables.ubAValues[9] = 3.0000000000000000e+00;
+acadoVariables.ubAValues[10] = 1.0000000000000000e+00;
+acadoVariables.ubAValues[11] = 3.0000000000000000e+00;
+acadoVariables.ubAValues[12] = 1.0000000000000000e+00;
+acadoVariables.ubAValues[13] = 3.0000000000000000e+00;
+acadoVariables.ubAValues[14] = 1.0000000000000000e+00;
+acadoVariables.ubAValues[15] = 3.0000000000000000e+00;
+acadoVariables.ubAValues[16] = 1.0000000000000000e+00;
+acadoVariables.ubAValues[17] = 3.0000000000000000e+00;
+acadoVariables.ubAValues[18] = 1.0000000000000000e+00;
+acadoVariables.ubAValues[19] = 3.0000000000000000e+00;
+acadoVariables.ubAValues[20] = 1.0000000000000000e+00;
+acadoVariables.ubAValues[21] = 3.0000000000000000e+00;
+acadoVariables.ubAValues[22] = 1.0000000000000000e+00;
+acadoVariables.ubAValues[23] = 3.0000000000000000e+00;
+acadoVariables.ubAValues[24] = 1.0000000000000000e+00;
+acadoVariables.ubAValues[25] = 3.0000000000000000e+00;
+acadoVariables.ubAValues[26] = 1.0000000000000000e+00;
+acadoVariables.ubAValues[27] = 3.0000000000000000e+00;
+acadoVariables.ubAValues[28] = 1.0000000000000000e+00;
+acadoVariables.ubAValues[29] = 3.0000000000000000e+00;
+acadoVariables.ubAValues[30] = 1.0000000000000000e+00;
+acadoVariables.ubAValues[31] = 3.0000000000000000e+00;
+acadoVariables.ubAValues[32] = 1.0000000000000000e+00;
+acadoVariables.ubAValues[33] = 3.0000000000000000e+00;
+acadoVariables.ubAValues[34] = 1.0000000000000000e+00;
+acadoVariables.ubAValues[35] = 3.0000000000000000e+00;
+acadoVariables.ubAValues[36] = 1.0000000000000000e+00;
+acadoVariables.ubAValues[37] = 3.0000000000000000e+00;
+acadoVariables.ubAValues[38] = 1.0000000000000000e+00;
+acadoVariables.ubAValues[39] = 3.0000000000000000e+00;
+acadoVariables.ubAValues[40] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[41] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[42] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[43] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[44] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[45] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[46] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[47] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[48] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[49] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[50] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[51] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[52] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[53] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[54] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[55] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[56] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[57] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[58] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[59] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[60] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[61] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[62] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[63] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[64] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[65] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[66] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[67] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[68] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[69] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[70] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[71] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[72] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[73] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[74] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[75] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[76] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[77] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[78] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[79] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[80] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[81] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[82] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[83] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[84] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[85] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[86] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[87] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[88] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[89] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[90] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[91] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[92] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[93] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[94] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[95] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[96] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[97] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[98] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[99] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[100] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[101] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[102] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[103] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[104] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[105] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[106] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[107] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[108] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[109] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[110] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[111] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[112] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[113] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[114] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[115] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[116] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[117] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[118] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[119] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[120] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[121] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[122] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[123] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[124] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[125] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[126] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[127] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[128] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[129] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[130] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[131] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[132] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[133] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[134] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[135] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[136] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[137] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[138] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[139] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[140] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[141] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[142] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[143] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[144] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[145] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[146] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[147] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[148] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[149] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[150] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[151] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[152] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[153] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[154] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[155] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[156] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[157] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[158] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[159] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[160] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[161] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[162] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[163] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[164] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[165] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[166] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[167] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[168] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[169] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[170] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[171] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[172] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[173] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[174] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[175] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[176] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[177] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[178] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[179] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[180] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[181] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[182] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[183] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[184] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[185] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[186] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[187] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[188] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[189] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[190] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[191] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[192] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[193] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[194] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[195] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[196] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[197] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[198] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[199] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[200] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[201] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[202] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[203] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[204] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[205] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[206] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[207] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[208] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[209] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[210] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[211] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[212] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[213] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[214] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[215] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[216] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[217] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[218] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[219] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[220] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[221] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[222] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[223] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[224] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[225] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[226] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[227] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[228] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[229] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[230] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[231] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[232] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[233] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[234] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[235] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[236] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[237] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[238] = 1.0000000000000000e+12;
+acadoVariables.ubAValues[239] = 1.0000000000000000e+12;
+return ret;
+}
+
+void acado_initializeNodesByForwardSimulation(  )
+{
+int index;
+for (index = 0; index < 20; ++index)
+{
+state[0] = acadoVariables.x[index * 5];
+state[1] = acadoVariables.x[index * 5 + 1];
+state[2] = acadoVariables.x[index * 5 + 2];
+state[3] = acadoVariables.x[index * 5 + 3];
+state[4] = acadoVariables.x[index * 5 + 4];
+state[40] = acadoVariables.u[index * 2];
+state[41] = acadoVariables.u[index * 2 + 1];
+state[42] = acadoVariables.od[index * 20];
+state[43] = acadoVariables.od[index * 20 + 1];
+state[44] = acadoVariables.od[index * 20 + 2];
+state[45] = acadoVariables.od[index * 20 + 3];
+state[46] = acadoVariables.od[index * 20 + 4];
+state[47] = acadoVariables.od[index * 20 + 5];
+state[48] = acadoVariables.od[index * 20 + 6];
+state[49] = acadoVariables.od[index * 20 + 7];
+state[50] = acadoVariables.od[index * 20 + 8];
+state[51] = acadoVariables.od[index * 20 + 9];
+state[52] = acadoVariables.od[index * 20 + 10];
+state[53] = acadoVariables.od[index * 20 + 11];
+state[54] = acadoVariables.od[index * 20 + 12];
+state[55] = acadoVariables.od[index * 20 + 13];
+state[56] = acadoVariables.od[index * 20 + 14];
+state[57] = acadoVariables.od[index * 20 + 15];
+state[58] = acadoVariables.od[index * 20 + 16];
+state[59] = acadoVariables.od[index * 20 + 17];
+state[60] = acadoVariables.od[index * 20 + 18];
+state[61] = acadoVariables.od[index * 20 + 19];
+
+acado_integrate(state, index == 0);
+
+acadoVariables.x[index * 5 + 5] = state[0];
+acadoVariables.x[index * 5 + 6] = state[1];
+acadoVariables.x[index * 5 + 7] = state[2];
+acadoVariables.x[index * 5 + 8] = state[3];
+acadoVariables.x[index * 5 + 9] = state[4];
+}
+}
+
+void acado_shiftStates( int strategy, real_t* const xEnd, real_t* const uEnd )
+{
+int index;
+for (index = 0; index < 20; ++index)
+{
+acadoVariables.x[index * 5] = acadoVariables.x[index * 5 + 5];
+acadoVariables.x[index * 5 + 1] = acadoVariables.x[index * 5 + 6];
+acadoVariables.x[index * 5 + 2] = acadoVariables.x[index * 5 + 7];
+acadoVariables.x[index * 5 + 3] = acadoVariables.x[index * 5 + 8];
+acadoVariables.x[index * 5 + 4] = acadoVariables.x[index * 5 + 9];
+}
+
+if (strategy == 1 && xEnd != 0)
+{
+acadoVariables.x[100] = xEnd[0];
+acadoVariables.x[101] = xEnd[1];
+acadoVariables.x[102] = xEnd[2];
+acadoVariables.x[103] = xEnd[3];
+acadoVariables.x[104] = xEnd[4];
+}
+else if (strategy == 2) 
+{
+state[0] = acadoVariables.x[100];
+state[1] = acadoVariables.x[101];
+state[2] = acadoVariables.x[102];
+state[3] = acadoVariables.x[103];
+state[4] = acadoVariables.x[104];
+if (uEnd != 0)
+{
+state[40] = uEnd[0];
+state[41] = uEnd[1];
+}
+else
+{
+state[40] = acadoVariables.u[38];
+state[41] = acadoVariables.u[39];
+}
+state[42] = acadoVariables.od[400];
+state[43] = acadoVariables.od[401];
+state[44] = acadoVariables.od[402];
+state[45] = acadoVariables.od[403];
+state[46] = acadoVariables.od[404];
+state[47] = acadoVariables.od[405];
+state[48] = acadoVariables.od[406];
+state[49] = acadoVariables.od[407];
+state[50] = acadoVariables.od[408];
+state[51] = acadoVariables.od[409];
+state[52] = acadoVariables.od[410];
+state[53] = acadoVariables.od[411];
+state[54] = acadoVariables.od[412];
+state[55] = acadoVariables.od[413];
+state[56] = acadoVariables.od[414];
+state[57] = acadoVariables.od[415];
+state[58] = acadoVariables.od[416];
+state[59] = acadoVariables.od[417];
+state[60] = acadoVariables.od[418];
+state[61] = acadoVariables.od[419];
+
+acado_integrate(state, 1);
+
+acadoVariables.x[100] = state[0];
+acadoVariables.x[101] = state[1];
+acadoVariables.x[102] = state[2];
+acadoVariables.x[103] = state[3];
+acadoVariables.x[104] = state[4];
+}
+}
+
+void acado_shiftControls( real_t* const uEnd )
+{
+int index;
+for (index = 0; index < 19; ++index)
+{
+acadoVariables.u[index * 2] = acadoVariables.u[index * 2 + 2];
+acadoVariables.u[index * 2 + 1] = acadoVariables.u[index * 2 + 3];
+}
+
+if (uEnd != 0)
+{
+acadoVariables.u[38] = uEnd[0];
+acadoVariables.u[39] = uEnd[1];
+}
+}
+
+real_t acado_getKKT(  )
+{
+real_t kkt;
+
+int index;
+real_t prd;
+
+kkt = + acadoWorkspace.g[0]*acadoWorkspace.x[0] + acadoWorkspace.g[1]*acadoWorkspace.x[1] + acadoWorkspace.g[2]*acadoWorkspace.x[2] + acadoWorkspace.g[3]*acadoWorkspace.x[3] + acadoWorkspace.g[4]*acadoWorkspace.x[4] + acadoWorkspace.g[5]*acadoWorkspace.x[5] + acadoWorkspace.g[6]*acadoWorkspace.x[6] + acadoWorkspace.g[7]*acadoWorkspace.x[7] + acadoWorkspace.g[8]*acadoWorkspace.x[8] + acadoWorkspace.g[9]*acadoWorkspace.x[9] + acadoWorkspace.g[10]*acadoWorkspace.x[10] + acadoWorkspace.g[11]*acadoWorkspace.x[11] + acadoWorkspace.g[12]*acadoWorkspace.x[12] + acadoWorkspace.g[13]*acadoWorkspace.x[13] + acadoWorkspace.g[14]*acadoWorkspace.x[14] + acadoWorkspace.g[15]*acadoWorkspace.x[15] + acadoWorkspace.g[16]*acadoWorkspace.x[16] + acadoWorkspace.g[17]*acadoWorkspace.x[17] + acadoWorkspace.g[18]*acadoWorkspace.x[18] + acadoWorkspace.g[19]*acadoWorkspace.x[19] + acadoWorkspace.g[20]*acadoWorkspace.x[20] + acadoWorkspace.g[21]*acadoWorkspace.x[21] + acadoWorkspace.g[22]*acadoWorkspace.x[22] + acadoWorkspace.g[23]*acadoWorkspace.x[23] + acadoWorkspace.g[24]*acadoWorkspace.x[24] + acadoWorkspace.g[25]*acadoWorkspace.x[25] + acadoWorkspace.g[26]*acadoWorkspace.x[26] + acadoWorkspace.g[27]*acadoWorkspace.x[27] + acadoWorkspace.g[28]*acadoWorkspace.x[28] + acadoWorkspace.g[29]*acadoWorkspace.x[29] + acadoWorkspace.g[30]*acadoWorkspace.x[30] + acadoWorkspace.g[31]*acadoWorkspace.x[31] + acadoWorkspace.g[32]*acadoWorkspace.x[32] + acadoWorkspace.g[33]*acadoWorkspace.x[33] + acadoWorkspace.g[34]*acadoWorkspace.x[34] + acadoWorkspace.g[35]*acadoWorkspace.x[35] + acadoWorkspace.g[36]*acadoWorkspace.x[36] + acadoWorkspace.g[37]*acadoWorkspace.x[37] + acadoWorkspace.g[38]*acadoWorkspace.x[38] + acadoWorkspace.g[39]*acadoWorkspace.x[39];
+kkt = fabs( kkt );
+for (index = 0; index < 40; ++index)
+{
+prd = acadoWorkspace.y[index];
+if (prd > 1e-12)
+kkt += fabs(acadoWorkspace.lb[index] * prd);
+else if (prd < -1e-12)
+kkt += fabs(acadoWorkspace.ub[index] * prd);
+}
+for (index = 0; index < 240; ++index)
+{
+prd = acadoWorkspace.y[index + 40];
+if (prd > 1e-12)
+kkt += fabs(acadoWorkspace.lbA[index] * prd);
+else if (prd < -1e-12)
+kkt += fabs(acadoWorkspace.ubA[index] * prd);
+}
+return kkt;
+}
+
+real_t acado_getObjective(  )
+{
+real_t objVal;
+
+int lRun1;
+/** Row vector of size: 8 */
+real_t tmpDy[ 8 ];
+
+/** Row vector of size: 5 */
+real_t tmpDyN[ 5 ];
+
+for (lRun1 = 0; lRun1 < 20; ++lRun1)
+{
+acadoWorkspace.objValueIn[0] = acadoVariables.x[lRun1 * 5];
+acadoWorkspace.objValueIn[1] = acadoVariables.x[lRun1 * 5 + 1];
+acadoWorkspace.objValueIn[2] = acadoVariables.x[lRun1 * 5 + 2];
+acadoWorkspace.objValueIn[3] = acadoVariables.x[lRun1 * 5 + 3];
+acadoWorkspace.objValueIn[4] = acadoVariables.x[lRun1 * 5 + 4];
+acadoWorkspace.objValueIn[5] = acadoVariables.u[lRun1 * 2];
+acadoWorkspace.objValueIn[6] = acadoVariables.u[lRun1 * 2 + 1];
+acadoWorkspace.objValueIn[7] = acadoVariables.od[lRun1 * 20];
+acadoWorkspace.objValueIn[8] = acadoVariables.od[lRun1 * 20 + 1];
+acadoWorkspace.objValueIn[9] = acadoVariables.od[lRun1 * 20 + 2];
+acadoWorkspace.objValueIn[10] = acadoVariables.od[lRun1 * 20 + 3];
+acadoWorkspace.objValueIn[11] = acadoVariables.od[lRun1 * 20 + 4];
+acadoWorkspace.objValueIn[12] = acadoVariables.od[lRun1 * 20 + 5];
+acadoWorkspace.objValueIn[13] = acadoVariables.od[lRun1 * 20 + 6];
+acadoWorkspace.objValueIn[14] = acadoVariables.od[lRun1 * 20 + 7];
+acadoWorkspace.objValueIn[15] = acadoVariables.od[lRun1 * 20 + 8];
+acadoWorkspace.objValueIn[16] = acadoVariables.od[lRun1 * 20 + 9];
+acadoWorkspace.objValueIn[17] = acadoVariables.od[lRun1 * 20 + 10];
+acadoWorkspace.objValueIn[18] = acadoVariables.od[lRun1 * 20 + 11];
+acadoWorkspace.objValueIn[19] = acadoVariables.od[lRun1 * 20 + 12];
+acadoWorkspace.objValueIn[20] = acadoVariables.od[lRun1 * 20 + 13];
+acadoWorkspace.objValueIn[21] = acadoVariables.od[lRun1 * 20 + 14];
+acadoWorkspace.objValueIn[22] = acadoVariables.od[lRun1 * 20 + 15];
+acadoWorkspace.objValueIn[23] = acadoVariables.od[lRun1 * 20 + 16];
+acadoWorkspace.objValueIn[24] = acadoVariables.od[lRun1 * 20 + 17];
+acadoWorkspace.objValueIn[25] = acadoVariables.od[lRun1 * 20 + 18];
+acadoWorkspace.objValueIn[26] = acadoVariables.od[lRun1 * 20 + 19];
+
+acado_evaluateLSQ( acadoWorkspace.objValueIn, acadoWorkspace.objValueOut );
+acadoWorkspace.Dy[lRun1 * 8] = acadoWorkspace.objValueOut[0] - acadoVariables.y[lRun1 * 8];
+acadoWorkspace.Dy[lRun1 * 8 + 1] = acadoWorkspace.objValueOut[1] - acadoVariables.y[lRun1 * 8 + 1];
+acadoWorkspace.Dy[lRun1 * 8 + 2] = acadoWorkspace.objValueOut[2] - acadoVariables.y[lRun1 * 8 + 2];
+acadoWorkspace.Dy[lRun1 * 8 + 3] = acadoWorkspace.objValueOut[3] - acadoVariables.y[lRun1 * 8 + 3];
+acadoWorkspace.Dy[lRun1 * 8 + 4] = acadoWorkspace.objValueOut[4] - acadoVariables.y[lRun1 * 8 + 4];
+acadoWorkspace.Dy[lRun1 * 8 + 5] = acadoWorkspace.objValueOut[5] - acadoVariables.y[lRun1 * 8 + 5];
+acadoWorkspace.Dy[lRun1 * 8 + 6] = acadoWorkspace.objValueOut[6] - acadoVariables.y[lRun1 * 8 + 6];
+acadoWorkspace.Dy[lRun1 * 8 + 7] = acadoWorkspace.objValueOut[7] - acadoVariables.y[lRun1 * 8 + 7];
+}
+acadoWorkspace.objValueIn[0] = acadoVariables.x[100];
+acadoWorkspace.objValueIn[1] = acadoVariables.x[101];
+acadoWorkspace.objValueIn[2] = acadoVariables.x[102];
+acadoWorkspace.objValueIn[3] = acadoVariables.x[103];
+acadoWorkspace.objValueIn[4] = acadoVariables.x[104];
+acadoWorkspace.objValueIn[5] = acadoVariables.od[400];
+acadoWorkspace.objValueIn[6] = acadoVariables.od[401];
+acadoWorkspace.objValueIn[7] = acadoVariables.od[402];
+acadoWorkspace.objValueIn[8] = acadoVariables.od[403];
+acadoWorkspace.objValueIn[9] = acadoVariables.od[404];
+acadoWorkspace.objValueIn[10] = acadoVariables.od[405];
+acadoWorkspace.objValueIn[11] = acadoVariables.od[406];
+acadoWorkspace.objValueIn[12] = acadoVariables.od[407];
+acadoWorkspace.objValueIn[13] = acadoVariables.od[408];
+acadoWorkspace.objValueIn[14] = acadoVariables.od[409];
+acadoWorkspace.objValueIn[15] = acadoVariables.od[410];
+acadoWorkspace.objValueIn[16] = acadoVariables.od[411];
+acadoWorkspace.objValueIn[17] = acadoVariables.od[412];
+acadoWorkspace.objValueIn[18] = acadoVariables.od[413];
+acadoWorkspace.objValueIn[19] = acadoVariables.od[414];
+acadoWorkspace.objValueIn[20] = acadoVariables.od[415];
+acadoWorkspace.objValueIn[21] = acadoVariables.od[416];
+acadoWorkspace.objValueIn[22] = acadoVariables.od[417];
+acadoWorkspace.objValueIn[23] = acadoVariables.od[418];
+acadoWorkspace.objValueIn[24] = acadoVariables.od[419];
+acado_evaluateLSQEndTerm( acadoWorkspace.objValueIn, acadoWorkspace.objValueOut );
+acadoWorkspace.DyN[0] = acadoWorkspace.objValueOut[0] - acadoVariables.yN[0];
+acadoWorkspace.DyN[1] = acadoWorkspace.objValueOut[1] - acadoVariables.yN[1];
+acadoWorkspace.DyN[2] = acadoWorkspace.objValueOut[2] - acadoVariables.yN[2];
+acadoWorkspace.DyN[3] = acadoWorkspace.objValueOut[3] - acadoVariables.yN[3];
+acadoWorkspace.DyN[4] = acadoWorkspace.objValueOut[4] - acadoVariables.yN[4];
+objVal = 0.0000000000000000e+00;
+for (lRun1 = 0; lRun1 < 20; ++lRun1)
+{
+tmpDy[0] = + acadoWorkspace.Dy[lRun1 * 8]*acadoVariables.W[lRun1 * 64] + acadoWorkspace.Dy[lRun1 * 8 + 1]*acadoVariables.W[lRun1 * 64 + 8] + acadoWorkspace.Dy[lRun1 * 8 + 2]*acadoVariables.W[lRun1 * 64 + 16] + acadoWorkspace.Dy[lRun1 * 8 + 3]*acadoVariables.W[lRun1 * 64 + 24] + acadoWorkspace.Dy[lRun1 * 8 + 4]*acadoVariables.W[lRun1 * 64 + 32] + acadoWorkspace.Dy[lRun1 * 8 + 5]*acadoVariables.W[lRun1 * 64 + 40] + acadoWorkspace.Dy[lRun1 * 8 + 6]*acadoVariables.W[lRun1 * 64 + 48] + acadoWorkspace.Dy[lRun1 * 8 + 7]*acadoVariables.W[lRun1 * 64 + 56];
+tmpDy[1] = + acadoWorkspace.Dy[lRun1 * 8]*acadoVariables.W[lRun1 * 64 + 1] + acadoWorkspace.Dy[lRun1 * 8 + 1]*acadoVariables.W[lRun1 * 64 + 9] + acadoWorkspace.Dy[lRun1 * 8 + 2]*acadoVariables.W[lRun1 * 64 + 17] + acadoWorkspace.Dy[lRun1 * 8 + 3]*acadoVariables.W[lRun1 * 64 + 25] + acadoWorkspace.Dy[lRun1 * 8 + 4]*acadoVariables.W[lRun1 * 64 + 33] + acadoWorkspace.Dy[lRun1 * 8 + 5]*acadoVariables.W[lRun1 * 64 + 41] + acadoWorkspace.Dy[lRun1 * 8 + 6]*acadoVariables.W[lRun1 * 64 + 49] + acadoWorkspace.Dy[lRun1 * 8 + 7]*acadoVariables.W[lRun1 * 64 + 57];
+tmpDy[2] = + acadoWorkspace.Dy[lRun1 * 8]*acadoVariables.W[lRun1 * 64 + 2] + acadoWorkspace.Dy[lRun1 * 8 + 1]*acadoVariables.W[lRun1 * 64 + 10] + acadoWorkspace.Dy[lRun1 * 8 + 2]*acadoVariables.W[lRun1 * 64 + 18] + acadoWorkspace.Dy[lRun1 * 8 + 3]*acadoVariables.W[lRun1 * 64 + 26] + acadoWorkspace.Dy[lRun1 * 8 + 4]*acadoVariables.W[lRun1 * 64 + 34] + acadoWorkspace.Dy[lRun1 * 8 + 5]*acadoVariables.W[lRun1 * 64 + 42] + acadoWorkspace.Dy[lRun1 * 8 + 6]*acadoVariables.W[lRun1 * 64 + 50] + acadoWorkspace.Dy[lRun1 * 8 + 7]*acadoVariables.W[lRun1 * 64 + 58];
+tmpDy[3] = + acadoWorkspace.Dy[lRun1 * 8]*acadoVariables.W[lRun1 * 64 + 3] + acadoWorkspace.Dy[lRun1 * 8 + 1]*acadoVariables.W[lRun1 * 64 + 11] + acadoWorkspace.Dy[lRun1 * 8 + 2]*acadoVariables.W[lRun1 * 64 + 19] + acadoWorkspace.Dy[lRun1 * 8 + 3]*acadoVariables.W[lRun1 * 64 + 27] + acadoWorkspace.Dy[lRun1 * 8 + 4]*acadoVariables.W[lRun1 * 64 + 35] + acadoWorkspace.Dy[lRun1 * 8 + 5]*acadoVariables.W[lRun1 * 64 + 43] + acadoWorkspace.Dy[lRun1 * 8 + 6]*acadoVariables.W[lRun1 * 64 + 51] + acadoWorkspace.Dy[lRun1 * 8 + 7]*acadoVariables.W[lRun1 * 64 + 59];
+tmpDy[4] = + acadoWorkspace.Dy[lRun1 * 8]*acadoVariables.W[lRun1 * 64 + 4] + acadoWorkspace.Dy[lRun1 * 8 + 1]*acadoVariables.W[lRun1 * 64 + 12] + acadoWorkspace.Dy[lRun1 * 8 + 2]*acadoVariables.W[lRun1 * 64 + 20] + acadoWorkspace.Dy[lRun1 * 8 + 3]*acadoVariables.W[lRun1 * 64 + 28] + acadoWorkspace.Dy[lRun1 * 8 + 4]*acadoVariables.W[lRun1 * 64 + 36] + acadoWorkspace.Dy[lRun1 * 8 + 5]*acadoVariables.W[lRun1 * 64 + 44] + acadoWorkspace.Dy[lRun1 * 8 + 6]*acadoVariables.W[lRun1 * 64 + 52] + acadoWorkspace.Dy[lRun1 * 8 + 7]*acadoVariables.W[lRun1 * 64 + 60];
+tmpDy[5] = + acadoWorkspace.Dy[lRun1 * 8]*acadoVariables.W[lRun1 * 64 + 5] + acadoWorkspace.Dy[lRun1 * 8 + 1]*acadoVariables.W[lRun1 * 64 + 13] + acadoWorkspace.Dy[lRun1 * 8 + 2]*acadoVariables.W[lRun1 * 64 + 21] + acadoWorkspace.Dy[lRun1 * 8 + 3]*acadoVariables.W[lRun1 * 64 + 29] + acadoWorkspace.Dy[lRun1 * 8 + 4]*acadoVariables.W[lRun1 * 64 + 37] + acadoWorkspace.Dy[lRun1 * 8 + 5]*acadoVariables.W[lRun1 * 64 + 45] + acadoWorkspace.Dy[lRun1 * 8 + 6]*acadoVariables.W[lRun1 * 64 + 53] + acadoWorkspace.Dy[lRun1 * 8 + 7]*acadoVariables.W[lRun1 * 64 + 61];
+tmpDy[6] = + acadoWorkspace.Dy[lRun1 * 8]*acadoVariables.W[lRun1 * 64 + 6] + acadoWorkspace.Dy[lRun1 * 8 + 1]*acadoVariables.W[lRun1 * 64 + 14] + acadoWorkspace.Dy[lRun1 * 8 + 2]*acadoVariables.W[lRun1 * 64 + 22] + acadoWorkspace.Dy[lRun1 * 8 + 3]*acadoVariables.W[lRun1 * 64 + 30] + acadoWorkspace.Dy[lRun1 * 8 + 4]*acadoVariables.W[lRun1 * 64 + 38] + acadoWorkspace.Dy[lRun1 * 8 + 5]*acadoVariables.W[lRun1 * 64 + 46] + acadoWorkspace.Dy[lRun1 * 8 + 6]*acadoVariables.W[lRun1 * 64 + 54] + acadoWorkspace.Dy[lRun1 * 8 + 7]*acadoVariables.W[lRun1 * 64 + 62];
+tmpDy[7] = + acadoWorkspace.Dy[lRun1 * 8]*acadoVariables.W[lRun1 * 64 + 7] + acadoWorkspace.Dy[lRun1 * 8 + 1]*acadoVariables.W[lRun1 * 64 + 15] + acadoWorkspace.Dy[lRun1 * 8 + 2]*acadoVariables.W[lRun1 * 64 + 23] + acadoWorkspace.Dy[lRun1 * 8 + 3]*acadoVariables.W[lRun1 * 64 + 31] + acadoWorkspace.Dy[lRun1 * 8 + 4]*acadoVariables.W[lRun1 * 64 + 39] + acadoWorkspace.Dy[lRun1 * 8 + 5]*acadoVariables.W[lRun1 * 64 + 47] + acadoWorkspace.Dy[lRun1 * 8 + 6]*acadoVariables.W[lRun1 * 64 + 55] + acadoWorkspace.Dy[lRun1 * 8 + 7]*acadoVariables.W[lRun1 * 64 + 63];
+objVal += + acadoWorkspace.Dy[lRun1 * 8]*tmpDy[0] + acadoWorkspace.Dy[lRun1 * 8 + 1]*tmpDy[1] + acadoWorkspace.Dy[lRun1 * 8 + 2]*tmpDy[2] + acadoWorkspace.Dy[lRun1 * 8 + 3]*tmpDy[3] + acadoWorkspace.Dy[lRun1 * 8 + 4]*tmpDy[4] + acadoWorkspace.Dy[lRun1 * 8 + 5]*tmpDy[5] + acadoWorkspace.Dy[lRun1 * 8 + 6]*tmpDy[6] + acadoWorkspace.Dy[lRun1 * 8 + 7]*tmpDy[7];
+}
+
+tmpDyN[0] = + acadoWorkspace.DyN[0]*acadoVariables.WN[0];
+tmpDyN[1] = + acadoWorkspace.DyN[1]*acadoVariables.WN[6];
+tmpDyN[2] = + acadoWorkspace.DyN[2]*acadoVariables.WN[12];
+tmpDyN[3] = + acadoWorkspace.DyN[3]*acadoVariables.WN[18];
+tmpDyN[4] = + acadoWorkspace.DyN[4]*acadoVariables.WN[24];
+objVal += + acadoWorkspace.DyN[0]*tmpDyN[0] + acadoWorkspace.DyN[1]*tmpDyN[1] + acadoWorkspace.DyN[2]*tmpDyN[2] + acadoWorkspace.DyN[3]*tmpDyN[3] + acadoWorkspace.DyN[4]*tmpDyN[4];
+
+objVal *= 0.5;
+return objVal;
+}
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/acado_solver_mex.c b/mav_control_rw/mav_nonlinear_mpc/solver/acado_solver_mex.c
new file mode 100644
index 0000000..bdd6778
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/acado_solver_mex.c
@@ -0,0 +1,539 @@
+/*
+ *    This file was auto-generated using the ACADO Toolkit.
+ *    
+ *    While ACADO Toolkit is free software released under the terms of
+ *    the GNU Lesser General Public License (LGPL), the generated code
+ *    as such remains the property of the user who used ACADO Toolkit
+ *    to generate this code. In particular, user dependent data of the code
+ *    do not inherit the GNU LGPL license. On the other hand, parts of the
+ *    generated code that are a direct copy of source code from the
+ *    ACADO Toolkit or the software tools it is based on, remain, as derived
+ *    work, automatically covered by the LGPL license.
+ *    
+ *    ACADO Toolkit 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.
+ *    
+ */
+
+
+/*
+input
+{
+	control: optional
+		0: init once, and run preparation and feedback; default behaviour
+		1: initialize
+		2: preparation
+		3: feedback
+		4: shift
+	x
+	u
+	od
+	y
+	yN
+	W
+	WN
+	x0: depends on the type of an OCP
+	xAC: optional
+	SAC: optional
+	shifting: optional
+	{
+		strategy:
+			1: use xEnd
+			2: integrate
+		xEnd
+		uEnd
+	}
+	initialization: optional
+		1: initialize by a forward simulation
+		else: do nothing
+}
+
+output
+{
+	x
+	u
+	xAC: optional
+	SAC: optional
+	info
+	{
+		status
+		cpuTime
+		kktValue
+		objValue
+		nIterations: works only for qpOASES
+	}	
+}
+*/
+
+/** MEX interface for the ACADO OCP solver
+ *
+ *  \author Milan Vukov, milan.vukov@esat.kuleuven.be
+ *
+ *  Credits: Alexander Domahidi (ETHZ), Janick Frasch (KUL, OVGU)
+ *
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdarg.h>
+
+#include "mex.h"
+#include "acado_common.h"
+#include "acado_auxiliary_functions.h"
+
+#define FREE( mem ) { if( mem ) { mxFree( mem ); mem = NULL; } }
+
+/* Define number of outputs */
+#define NOO 3
+
+#if ACADO_NXA > 0
+#define NOO_2 NOO + 1
+#else
+#define NOO_2 NOO
+#endif
+
+#if ACADO_USE_ARRIVAL_COST == 1
+#define NOO_3 NOO_2 + 2
+#else
+#define NOO_3 NOO_2
+#endif
+
+#if ACADO_COMPUTE_COVARIANCE_MATRIX == 1
+#define NOO_4 NOO_3 + 1
+#else
+#define NOO_4 NOO_3
+#endif
+
+/** Instance of the user data structure. */
+ACADOvariables acadoVariables;
+/** Instance of the private workspace structure. */
+ACADOworkspace acadoWorkspace;
+
+#if ACADO_QP_SOLVER == ACADO_FORCES
+#include "forces.h"
+extern forces_info acadoForces_info;
+#elif ACADO_QP_SOLVER == ACADO_QPDUNES
+#include <qpDUNES.h>
+extern qpData_t    qpData;
+#endif
+
+/** A bit more advanced printing function. */
+void mexErrMsgTxtAdv(	char* string,
+						...
+						)
+{
+	static char buffer[ 128 ];
+	
+	va_list printArgs;
+	va_start(printArgs, string);
+	
+	vsprintf(buffer, string, printArgs);
+	va_end( printArgs );
+
+	mexErrMsgTxt( buffer );
+}
+
+/** A simple helper function. */
+void printMatrix(	const char* name,
+					real_t* mat,
+					unsigned nRows,
+					unsigned nCols
+					)
+{
+    unsigned r, c;
+    mexPrintf("%s: \n", name);
+    for (r = 0; r < nRows; ++r)
+    {
+        for(c = 0; c < nCols; ++c)
+            mexPrintf("\t%f", mat[r * nCols + c]);
+        mexPrintf("\n");
+    }
+}
+
+/** A function for copying data from MATLAB to C array. */
+int getArray(	const unsigned mandatory,
+				const mxArray* source,
+				const int index,
+				const char* name,
+				real_t* destination,
+				const unsigned nRows,
+				const unsigned nCols
+				)
+{
+	mxArray* mxPtr = mxGetField(source, index, name);
+	unsigned i, j;
+	double* dPtr;
+	
+	if (mxPtr == NULL)
+	{
+		if ( !mandatory )
+			return -1;
+		else
+			mexErrMsgTxtAdv("Field %s not found.", name);
+	}
+
+    if ( !mxIsDouble( mxPtr ) )
+		mexErrMsgTxtAdv("Field %s must be an array of doubles.", name);
+
+    if (mxGetM( mxPtr ) != nRows || mxGetN( mxPtr ) != nCols )
+		mexErrMsgTxtAdv("Field %s must be of size: %d x %d.", name, nRows, nCols);
+
+	dPtr = mxGetPr( mxPtr );
+	
+	if (destination == NULL)
+		destination = (real_t*)mxCalloc(nRows * nCols, sizeof( real_t ));
+
+	if (nRows == 1 && nCols == 1)
+		*destination = *dPtr;
+	else
+		for (i = 0; i < nRows; ++i)
+			for (j = 0; j < nCols; ++j)
+				destination[i * nCols + j] = (real_t)dPtr[j * nRows + i];
+			
+	return 0;
+}
+
+void setArray( 	mxArray* destination,
+				const int index,
+				const char* name,
+				real_t* source,
+				const unsigned nRows,
+				const unsigned nCols
+				)
+{
+	mxArray* mxPtr = mxCreateDoubleMatrix(nRows, nCols, mxREAL);
+	double* dPtr = mxGetPr( mxPtr );
+	unsigned i, j;
+	
+	if (nRows == 1 && nCols == 1)
+		*dPtr = *source;
+	else
+		for (i = 0; i < nRows; ++i)
+			for(j = 0; j < nCols; ++j)
+				dPtr[j * nRows + i] = (double)source[i * nCols + j];
+
+	mxSetField(destination, index, name, mxPtr);
+}
+
+/** The MEX interface function. */
+void mexFunction(	int nlhs,
+					mxArray *plhs[],
+					int nrhs,
+					const mxArray *prhs[]
+					)
+{
+	static unsigned initialized = 0;
+	unsigned ctrl;
+	int ctrlIndex;
+	unsigned strategy;
+	unsigned initType;
+	real_t* xEnd = NULL;
+	real_t* uEnd = NULL;
+	const mxArray* src = prhs[ 0 ];
+	
+	const char *infoNames[ 5 ] = {"status", "cpuTime", "kktValue", "objValue", "nIterations"};
+	mxArray* info;
+	double status, cpuTime, kktValue, objValue;
+	double tmp[ 1 ];
+	mxArray* shPtr;
+	acado_timer tmr;
+	double nIterations = 0;
+	
+	const char *outNames[ NOO_4 ];
+	outNames[ 0 ] = "info";
+	outNames[ 1 ] = "x";
+	outNames[ 2 ] = "u";
+#if ACADO_NXA
+	outNames[ NOO ] = "z";
+#endif	
+		
+#if ACADO_USE_ARRIVAL_COST == 1
+	outNames[ NOO_2 ] = "xAC";
+	outNames[NOO_2  + 1] = "SAC";
+#endif
+#if ACADO_COMPUTE_COVARIANCE_MATRIX == 1
+	outNames[ NOO_3 ] = "sigmaN";
+#endif
+	
+	if (nrhs != 1)
+		mexErrMsgTxt(
+			"This function requires exactly one input: a structure with parameters.");
+			
+	if (nlhs != 1)
+		mexErrMsgTxt(
+			"This function returns one output.");
+			
+	if( !mxIsStruct( src ) )
+		mexErrMsgTxt("The function argument must be a structure.");
+	
+	/* Get the control flag. */
+	if (getArray(0, src, 0, "control", tmp, 1, 1) == 0)
+		ctrl = (unsigned)tmp[ 0 ];
+	else
+		ctrl = 0;
+		
+	/* Get the initialization flag. */
+	if (getArray(0, src, 0, "initialization", tmp, 1, 1) == 0)
+		initType = (unsigned)tmp[ 0 ];
+	else
+		initType = 0;
+		
+	/* Copy MATLAB arrays to C arrays. */
+	getArray(1, src, 0, "x", acadoVariables.x, ACADO_N + 1, ACADO_NX);
+	getArray(1, src, 0, "u", acadoVariables.u, ACADO_N, ACADO_NU);
+	
+#if ACADO_NXA	
+	getArray(1, src, 0, "z", acadoVariables.z, ACADO_N, ACADO_NXA);
+#endif	
+	
+#if ACADO_NOD
+	getArray(1, src, 0, "od", acadoVariables.od, ACADO_N + 1, ACADO_NOD);
+#endif
+	
+	getArray(1, src, 0, "y", acadoVariables.y, ACADO_N, ACADO_NY);
+	
+#if ACADO_NYN
+	getArray(1, src, 0, "yN", acadoVariables.yN, 1, ACADO_NYN);
+#endif /* ACADO_NYN */
+
+#if ACADO_INITIAL_STATE_FIXED
+	getArray(1, src, 0, "x0", acadoVariables.x0, 1, ACADO_NX);
+#endif /* ACADO_INITIAL_STATE_FIXED */
+
+#if ACADO_WEIGHTING_MATRICES_TYPE == 1
+	getArray(1, src, 0, "W", acadoVariables.W, ACADO_NY, ACADO_NY);
+	getArray(1, src, 0, "WN", acadoVariables.WN, ACADO_NYN, ACADO_NYN);
+#elif ACADO_WEIGHTING_MATRICES_TYPE == 2
+	getArray(1, src, 0, "W", acadoVariables.W, ACADO_N * ACADO_NY, ACADO_NY);
+	getArray(1, src, 0, "WN", acadoVariables.WN, ACADO_NYN, ACADO_NYN);
+#endif /* ACADO_WEIGHTING_MATRICES_TYPE */
+
+
+#if (ACADO_HARDCODED_CONSTRAINT_VALUES == 0)
+	if (!initialized)
+	{
+		acado_initializeSolver();
+	}
+#endif
+
+#if (ACADO_HARDCODED_CONSTRAINT_VALUES == 0) && ( (ACADO_QP_SOLVER == ACADO_QPOASES) || (ACADO_QP_SOLVER == ACADO_QPOASES3) )
+	/* Bounds */
+#if ACADO_INITIAL_STATE_FIXED == 1
+	getArray(1, src, 0, "lbValues", acadoVariables.lbValues, ACADO_N * ACADO_NU, 1);
+	getArray(1, src, 0, "ubValues", acadoVariables.ubValues, ACADO_N * ACADO_NU, 1);
+#else
+	getArray(1, src, 0, "lbValues", acadoVariables.lbValues, ACADO_NX + ACADO_N * ACADO_NU, 1);
+	getArray(1, src, 0, "ubValues", acadoVariables.ubValues, ACADO_NX + ACADO_N * ACADO_NU, 1);
+#endif /* ACADO_INITIAL_STATE_FIXED == 0 */
+
+#if QPOASES_NCMAX > 0
+	/* Affine constraints */
+	getArray(1, src, 0, "lbAValues", acadoVariables.lbAValues, QPOASES_NCMAX, 1);
+	getArray(1, src, 0, "ubAValues", acadoVariables.ubAValues, QPOASES_NCMAX, 1);
+#endif /* QPOASES_NCMAX > 0 */
+
+#elif (ACADO_HARDCODED_CONSTRAINT_VALUES == 0) && (ACADO_QP_SOLVER == ACADO_FORCES) && !ACADO_BLOCK_CONDENSING
+	/* Bounds */
+	#if (ACADO_QP_NLB > 0)
+	getArray(1, src, 0, "lbValues", acadoVariables.lbValues, ACADO_QP_NLB, 1);
+	#endif
+	#if (ACADO_QP_NUB > 0)
+	getArray(1, src, 0, "ubValues", acadoVariables.ubValues, ACADO_QP_NUB, 1);
+	#endif
+
+#elif (ACADO_HARDCODED_CONSTRAINT_VALUES == 0) && (ACADO_QP_SOLVER == ACADO_QPDUNES) && !ACADO_BLOCK_CONDENSING
+	/* Bounds */
+	getArray(1, src, 0, "lbValues", acadoVariables.lbValues, ACADO_QP_NV, 1);
+	getArray(1, src, 0, "ubValues", acadoVariables.ubValues, ACADO_QP_NV, 1);
+	
+#elif (ACADO_HARDCODED_CONSTRAINT_VALUES == 0) && ACADO_BLOCK_CONDENSING
+	/* Bounds */
+	getArray(1, src, 0, "lbValues", acadoVariables.lbValues, ACADO_QP_NV, 1);
+	getArray(1, src, 0, "ubValues", acadoVariables.ubValues, ACADO_QP_NV, 1);
+	#if (ACADO_QP_NCA > 0)
+	/* Affine bounds */
+	getArray(1, src, 0, "lbAValues", acadoVariables.lbAValues, ACADO_QP_NCA, 1);
+	getArray(1, src, 0, "ubAValues", acadoVariables.ubAValues, ACADO_QP_NCA, 1);
+	#endif
+#endif
+
+#if ACADO_USE_ARRIVAL_COST == 1
+	getArray(1, src, 0, "xAC", acadoVariables.xAC, ACADO_NX, 1);
+	getArray(1, src, 0, "SAC", acadoVariables.SAC, ACADO_NX, ACADO_NX);
+    getArray(1, src, 0, "WL",  acadoVariables.WL,  ACADO_NX, ACADO_NX);
+#endif
+
+	/* Shifting strategy */
+	shPtr = mxGetField(src, 0, "shifting");
+	if (shPtr != NULL)
+	{
+		if( !mxIsStruct( shPtr ) )
+			mexErrMsgTxt("Field \"shifting\" must be defined with a structure.");
+		
+		/* Get the shifting strategy flag */
+		getArray(1, shPtr, 0, "strategy", tmp, 1, 1);
+		strategy = (unsigned)tmp[ 0 ];
+		
+		if (strategy > 2)
+			mexErrMsgTxt("Valid options for the shifting strategy are 1 or 2.");
+	
+		getArray(0, shPtr, 0, "xEnd", xEnd, ACADO_NX, 1);
+		getArray(0, shPtr, 0, "uEnd", uEnd, ACADO_NU, 1);
+	}
+	else
+		strategy = 0;
+		
+	acado_tic( &tmr );
+	
+	/* Call solver */
+	switch ( ctrl )
+	{
+		case 0:
+			/* Simple operational mode. Run one RTI with optional shifting. */
+			
+			if ( !initialized )
+			{
+				memset(&acadoWorkspace, 0, sizeof( acadoWorkspace ));
+			
+#if ACADO_HARDCODED_CONSTRAINT_VALUES == 1
+				acado_initializeSolver();
+#endif /* ACADO_HARDCODED_CONSTRAINT_VALUES == 1 */
+				
+				if (initType == 1)
+				{
+					acado_initializeNodesByForwardSimulation();
+				}
+				
+#if ACADO_USE_ARRIVAL_COST == 1 
+                acado_updateArrivalCost( 1 );
+#endif /* ACADO_USE_ARRIVAL_COST == 1 */
+				
+				initialized = 1;
+			}
+			else if (strategy == 1 || strategy == 2)
+			{
+#if ACADO_USE_ARRIVAL_COST == 1 
+                acado_updateArrivalCost( 0 );
+#endif /* ACADO_USE_ARRIVAL_COST == 1 */
+				
+				acado_shiftStates(strategy, xEnd, uEnd);
+				acado_shiftControls(uEnd);
+			}
+			
+			acado_preparationStep();
+			
+			status = (double)acado_feedbackStep();
+			
+			kktValue = acado_getKKT();
+			objValue = acado_getObjective();
+
+#if ( (ACADO_QP_SOLVER == ACADO_QPOASES) || (ACADO_QP_SOLVER == ACADO_QPOASES3) )
+			nIterations = (double)acado_getNWSR();
+#elif ACADO_QP_SOLVER == ACADO_FORCES
+			nIterations = acadoForces_info.it;
+#elif ACADO_QP_SOLVER == ACADO_QPDUNES
+			nIterations = qpData.log.numIter;
+#endif /* ACADO_QP_SOLVER */
+			
+			break;
+		
+		case 1:
+			/* Initialize */
+			
+			memset(&acadoWorkspace, 0, sizeof( acadoWorkspace ));
+			
+			acado_initializeSolver();
+				
+			if (initType == 1)
+			{
+				acado_initializeNodesByForwardSimulation();
+			}
+			
+#if ACADO_USE_ARRIVAL_COST == 1 
+			acado_updateArrivalCost( 1 );
+#endif /* ACADO_USE_ARRIVAL_COST == 1 */
+
+			initialized = 1;
+			
+			break;
+		
+		case 2:
+			/* Preparation step */
+			
+			acado_preparationStep();
+			
+			break;
+		
+		case 3:
+			/* Feedback step */
+			
+			status = (double)acado_feedbackStep();
+			
+			kktValue = acado_getKKT();
+			objValue = acado_getObjective();
+			
+#if ( (ACADO_QP_SOLVER == ACADO_QPOASES) || (ACADO_QP_SOLVER == ACADO_QPOASES3) )
+			nIterations = (double)acado_getNWSR();
+#elif ACADO_QP_SOLVER == ACADO_FORCES
+			nIterations = acadoForces_info.it;
+#endif /* ACADO_QP_SOLVER */
+			
+			break;
+		
+		case 4:
+			/* Shifting */
+			
+#if ACADO_USE_ARRIVAL_COST == 1 
+			acado_updateArrivalCost( 0 );
+#endif /* ACADO_USE_ARRIVAL_COST == 1 */			
+			
+			acado_shiftStates(strategy, xEnd, uEnd);
+			acado_shiftControls( uEnd );
+			
+			break;
+			
+		default:
+			/* Return an error */
+			mexErrMsgTxt("Unknown control code.");
+	}
+	
+	cpuTime = acado_toc( &tmr );
+	
+	/* Prepare return argument */
+	
+	plhs[ 0 ] = mxCreateStructMatrix(1, 1, NOO_4, outNames);
+		
+	setArray(plhs[ 0 ], 0, "x", acadoVariables.x, ACADO_N + 1, ACADO_NX);
+	setArray(plhs[ 0 ], 0, "u", acadoVariables.u, ACADO_N, ACADO_NU);
+#if ACADO_NXA > 0
+	setArray(plhs[ 0 ], 0, "z", acadoVariables.z, ACADO_N, ACADO_NXA);
+#endif	
+		
+#if ACADO_USE_ARRIVAL_COST == 1
+	setArray(plhs[ 0 ], 0, "xAC", acadoVariables.xAC, ACADO_NX, 1);
+	setArray(plhs[ 0 ], 0, "SAC", acadoVariables.SAC, ACADO_NX, ACADO_NX);
+#endif /* ACADO_USE_ARRIVAL_COST */
+
+#if ACADO_COMPUTE_COVARIANCE_MATRIX == 1
+	setArray(plhs[ 0 ], 0, "sigmaN", acadoVariables.sigmaN, ACADO_NX, ACADO_NX);
+#endif /* ACADO_COMPUTE_COVARIANCE_MATRIX */
+
+	/* Create the info structure. */
+	info = mxCreateStructMatrix(1, 1, 5, infoNames);
+		
+	setArray(info, 0, "status", &status, 1, 1);
+	setArray(info, 0, "cpuTime", &cpuTime, 1, 1);
+	setArray(info, 0, "kktValue", &kktValue, 1, 1);
+	setArray(info, 0, "objValue", &objValue, 1, 1);
+#if ( (ACADO_QP_SOLVER == ACADO_QPOASES) || (ACADO_QP_SOLVER == ACADO_QPOASES3) )
+	setArray(info, 0, "nIterations", &nIterations, 1, 1);
+#endif /* ( (ACADO_QP_SOLVER == ACADO_QPOASES) || (ACADO_QP_SOLVER == ACADO_QPOASES3) ) */
+		
+	mxSetField(plhs[ 0 ], 0, "info", info);
+	
+	/* Cleanup of the allocated memory */
+	FREE( xEnd );
+	FREE( uEnd );
+}
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/atomic_configure/.rosinstall b/mav_control_rw/mav_nonlinear_mpc/solver/atomic_configure/.rosinstall
new file mode 100644
index 0000000..0da04c9
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/atomic_configure/.rosinstall
@@ -0,0 +1,2 @@
+- setup-file:
+    local-name: /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel/setup.sh
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/atomic_configure/_setup_util.py b/mav_control_rw/mav_nonlinear_mpc/solver/atomic_configure/_setup_util.py
new file mode 100644
index 0000000..cb721f7
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/atomic_configure/_setup_util.py
@@ -0,0 +1,304 @@
+#!/usr/bin/python3
+# -*- coding: utf-8 -*-
+
+# Software License Agreement (BSD License)
+#
+# Copyright (c) 2012, Willow Garage, Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+#  * Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+#  * Redistributions in binary form must reproduce the above
+#    copyright notice, this list of conditions and the following
+#    disclaimer in the documentation and/or other materials provided
+#    with the distribution.
+#  * Neither the name of Willow Garage, Inc. nor the names of its
+#    contributors may be used to endorse or promote products derived
+#    from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+"""This file generates shell code for the setup.SHELL scripts to set environment variables."""
+
+from __future__ import print_function
+
+import argparse
+import copy
+import errno
+import os
+import platform
+import sys
+
+CATKIN_MARKER_FILE = '.catkin'
+
+system = platform.system()
+IS_DARWIN = (system == 'Darwin')
+IS_WINDOWS = (system == 'Windows')
+
+PATH_TO_ADD_SUFFIX = ['bin']
+if IS_WINDOWS:
+    # while catkin recommends putting dll's into bin, 3rd party packages often put dll's into lib
+    # since Windows finds dll's via the PATH variable, prepend it with path to lib
+    PATH_TO_ADD_SUFFIX.extend([['lib', os.path.join('lib', 'x86_64-linux-gnu')]])
+
+# subfolder of workspace prepended to CMAKE_PREFIX_PATH
+ENV_VAR_SUBFOLDERS = {
+    'CMAKE_PREFIX_PATH': '',
+    'LD_LIBRARY_PATH' if not IS_DARWIN else 'DYLD_LIBRARY_PATH': ['lib', os.path.join('lib', 'x86_64-linux-gnu')],
+    'PATH': PATH_TO_ADD_SUFFIX,
+    'PKG_CONFIG_PATH': [os.path.join('lib', 'pkgconfig'), os.path.join('lib', 'x86_64-linux-gnu', 'pkgconfig')],
+    'PYTHONPATH': 'lib/python3/dist-packages',
+}
+
+
+def rollback_env_variables(environ, env_var_subfolders):
+    """
+    Generate shell code to reset environment variables.
+
+    by unrolling modifications based on all workspaces in CMAKE_PREFIX_PATH.
+    This does not cover modifications performed by environment hooks.
+    """
+    lines = []
+    unmodified_environ = copy.copy(environ)
+    for key in sorted(env_var_subfolders.keys()):
+        subfolders = env_var_subfolders[key]
+        if not isinstance(subfolders, list):
+            subfolders = [subfolders]
+        value = _rollback_env_variable(unmodified_environ, key, subfolders)
+        if value is not None:
+            environ[key] = value
+            lines.append(assignment(key, value))
+    if lines:
+        lines.insert(0, comment('reset environment variables by unrolling modifications based on all workspaces in CMAKE_PREFIX_PATH'))
+    return lines
+
+
+def _rollback_env_variable(environ, name, subfolders):
+    """
+    For each catkin workspace in CMAKE_PREFIX_PATH remove the first entry from env[NAME] matching workspace + subfolder.
+
+    :param subfolders: list of str '' or subfoldername that may start with '/'
+    :returns: the updated value of the environment variable.
+    """
+    value = environ[name] if name in environ else ''
+    env_paths = [path for path in value.split(os.pathsep) if path]
+    value_modified = False
+    for subfolder in subfolders:
+        if subfolder:
+            if subfolder.startswith(os.path.sep) or (os.path.altsep and subfolder.startswith(os.path.altsep)):
+                subfolder = subfolder[1:]
+            if subfolder.endswith(os.path.sep) or (os.path.altsep and subfolder.endswith(os.path.altsep)):
+                subfolder = subfolder[:-1]
+        for ws_path in _get_workspaces(environ, include_fuerte=True, include_non_existing=True):
+            path_to_find = os.path.join(ws_path, subfolder) if subfolder else ws_path
+            path_to_remove = None
+            for env_path in env_paths:
+                env_path_clean = env_path[:-1] if env_path and env_path[-1] in [os.path.sep, os.path.altsep] else env_path
+                if env_path_clean == path_to_find:
+                    path_to_remove = env_path
+                    break
+            if path_to_remove:
+                env_paths.remove(path_to_remove)
+                value_modified = True
+    new_value = os.pathsep.join(env_paths)
+    return new_value if value_modified else None
+
+
+def _get_workspaces(environ, include_fuerte=False, include_non_existing=False):
+    """
+    Based on CMAKE_PREFIX_PATH return all catkin workspaces.
+
+    :param include_fuerte: The flag if paths starting with '/opt/ros/fuerte' should be considered workspaces, ``bool``
+    """
+    # get all cmake prefix paths
+    env_name = 'CMAKE_PREFIX_PATH'
+    value = environ[env_name] if env_name in environ else ''
+    paths = [path for path in value.split(os.pathsep) if path]
+    # remove non-workspace paths
+    workspaces = [path for path in paths if os.path.isfile(os.path.join(path, CATKIN_MARKER_FILE)) or (include_fuerte and path.startswith('/opt/ros/fuerte')) or (include_non_existing and not os.path.exists(path))]
+    return workspaces
+
+
+def prepend_env_variables(environ, env_var_subfolders, workspaces):
+    """Generate shell code to prepend environment variables for the all workspaces."""
+    lines = []
+    lines.append(comment('prepend folders of workspaces to environment variables'))
+
+    paths = [path for path in workspaces.split(os.pathsep) if path]
+
+    prefix = _prefix_env_variable(environ, 'CMAKE_PREFIX_PATH', paths, '')
+    lines.append(prepend(environ, 'CMAKE_PREFIX_PATH', prefix))
+
+    for key in sorted(key for key in env_var_subfolders.keys() if key != 'CMAKE_PREFIX_PATH'):
+        subfolder = env_var_subfolders[key]
+        prefix = _prefix_env_variable(environ, key, paths, subfolder)
+        lines.append(prepend(environ, key, prefix))
+    return lines
+
+
+def _prefix_env_variable(environ, name, paths, subfolders):
+    """
+    Return the prefix to prepend to the environment variable NAME.
+
+    Adding any path in NEW_PATHS_STR without creating duplicate or empty items.
+    """
+    value = environ[name] if name in environ else ''
+    environ_paths = [path for path in value.split(os.pathsep) if path]
+    checked_paths = []
+    for path in paths:
+        if not isinstance(subfolders, list):
+            subfolders = [subfolders]
+        for subfolder in subfolders:
+            path_tmp = path
+            if subfolder:
+                path_tmp = os.path.join(path_tmp, subfolder)
+            # skip nonexistent paths
+            if not os.path.exists(path_tmp):
+                continue
+            # exclude any path already in env and any path we already added
+            if path_tmp not in environ_paths and path_tmp not in checked_paths:
+                checked_paths.append(path_tmp)
+    prefix_str = os.pathsep.join(checked_paths)
+    if prefix_str != '' and environ_paths:
+        prefix_str += os.pathsep
+    return prefix_str
+
+
+def assignment(key, value):
+    if not IS_WINDOWS:
+        return 'export %s="%s"' % (key, value)
+    else:
+        return 'set %s=%s' % (key, value)
+
+
+def comment(msg):
+    if not IS_WINDOWS:
+        return '# %s' % msg
+    else:
+        return 'REM %s' % msg
+
+
+def prepend(environ, key, prefix):
+    if key not in environ or not environ[key]:
+        return assignment(key, prefix)
+    if not IS_WINDOWS:
+        return 'export %s="%s$%s"' % (key, prefix, key)
+    else:
+        return 'set %s=%s%%%s%%' % (key, prefix, key)
+
+
+def find_env_hooks(environ, cmake_prefix_path):
+    """Generate shell code with found environment hooks for the all workspaces."""
+    lines = []
+    lines.append(comment('found environment hooks in workspaces'))
+
+    generic_env_hooks = []
+    generic_env_hooks_workspace = []
+    specific_env_hooks = []
+    specific_env_hooks_workspace = []
+    generic_env_hooks_by_filename = {}
+    specific_env_hooks_by_filename = {}
+    generic_env_hook_ext = 'bat' if IS_WINDOWS else 'sh'
+    specific_env_hook_ext = environ['CATKIN_SHELL'] if not IS_WINDOWS and 'CATKIN_SHELL' in environ and environ['CATKIN_SHELL'] else None
+    # remove non-workspace paths
+    workspaces = [path for path in cmake_prefix_path.split(os.pathsep) if path and os.path.isfile(os.path.join(path, CATKIN_MARKER_FILE))]
+    for workspace in reversed(workspaces):
+        env_hook_dir = os.path.join(workspace, 'etc', 'catkin', 'profile.d')
+        if os.path.isdir(env_hook_dir):
+            for filename in sorted(os.listdir(env_hook_dir)):
+                if filename.endswith('.%s' % generic_env_hook_ext):
+                    # remove previous env hook with same name if present
+                    if filename in generic_env_hooks_by_filename:
+                        i = generic_env_hooks.index(generic_env_hooks_by_filename[filename])
+                        generic_env_hooks.pop(i)
+                        generic_env_hooks_workspace.pop(i)
+                    # append env hook
+                    generic_env_hooks.append(os.path.join(env_hook_dir, filename))
+                    generic_env_hooks_workspace.append(workspace)
+                    generic_env_hooks_by_filename[filename] = generic_env_hooks[-1]
+                elif specific_env_hook_ext is not None and filename.endswith('.%s' % specific_env_hook_ext):
+                    # remove previous env hook with same name if present
+                    if filename in specific_env_hooks_by_filename:
+                        i = specific_env_hooks.index(specific_env_hooks_by_filename[filename])
+                        specific_env_hooks.pop(i)
+                        specific_env_hooks_workspace.pop(i)
+                    # append env hook
+                    specific_env_hooks.append(os.path.join(env_hook_dir, filename))
+                    specific_env_hooks_workspace.append(workspace)
+                    specific_env_hooks_by_filename[filename] = specific_env_hooks[-1]
+    env_hooks = generic_env_hooks + specific_env_hooks
+    env_hooks_workspace = generic_env_hooks_workspace + specific_env_hooks_workspace
+    count = len(env_hooks)
+    lines.append(assignment('_CATKIN_ENVIRONMENT_HOOKS_COUNT', count))
+    for i in range(count):
+        lines.append(assignment('_CATKIN_ENVIRONMENT_HOOKS_%d' % i, env_hooks[i]))
+        lines.append(assignment('_CATKIN_ENVIRONMENT_HOOKS_%d_WORKSPACE' % i, env_hooks_workspace[i]))
+    return lines
+
+
+def _parse_arguments(args=None):
+    parser = argparse.ArgumentParser(description='Generates code blocks for the setup.SHELL script.')
+    parser.add_argument('--extend', action='store_true', help='Skip unsetting previous environment variables to extend context')
+    parser.add_argument('--local', action='store_true', help='Only consider this prefix path and ignore other prefix path in the environment')
+    return parser.parse_known_args(args=args)[0]
+
+
+if __name__ == '__main__':
+    try:
+        try:
+            args = _parse_arguments()
+        except Exception as e:
+            print(e, file=sys.stderr)
+            sys.exit(1)
+
+        if not args.local:
+            # environment at generation time
+            CMAKE_PREFIX_PATH = r'/home/simhe502/catkin_ws/devel;/opt/ros/noetic'.split(';')
+        else:
+            # don't consider any other prefix path than this one
+            CMAKE_PREFIX_PATH = []
+        # prepend current workspace if not already part of CPP
+        base_path = os.path.dirname(__file__)
+        # CMAKE_PREFIX_PATH uses forward slash on all platforms, but __file__ is platform dependent
+        # base_path on Windows contains backward slashes, need to be converted to forward slashes before comparison
+        if os.path.sep != '/':
+            base_path = base_path.replace(os.path.sep, '/')
+
+        if base_path not in CMAKE_PREFIX_PATH:
+            CMAKE_PREFIX_PATH.insert(0, base_path)
+        CMAKE_PREFIX_PATH = os.pathsep.join(CMAKE_PREFIX_PATH)
+
+        environ = dict(os.environ)
+        lines = []
+        if not args.extend:
+            lines += rollback_env_variables(environ, ENV_VAR_SUBFOLDERS)
+        lines += prepend_env_variables(environ, ENV_VAR_SUBFOLDERS, CMAKE_PREFIX_PATH)
+        lines += find_env_hooks(environ, CMAKE_PREFIX_PATH)
+        print('\n'.join(lines))
+
+        # need to explicitly flush the output
+        sys.stdout.flush()
+    except IOError as e:
+        # and catch potential "broken pipe" if stdout is not writable
+        # which can happen when piping the output to a file but the disk is full
+        if e.errno == errno.EPIPE:
+            print(e, file=sys.stderr)
+            sys.exit(2)
+        raise
+
+    sys.exit(0)
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/atomic_configure/env.sh b/mav_control_rw/mav_nonlinear_mpc/solver/atomic_configure/env.sh
new file mode 100644
index 0000000..8aa9d24
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/atomic_configure/env.sh
@@ -0,0 +1,16 @@
+#!/usr/bin/env sh
+# generated from catkin/cmake/templates/env.sh.in
+
+if [ $# -eq 0 ] ; then
+  /bin/echo "Usage: env.sh COMMANDS"
+  /bin/echo "Calling env.sh without arguments is not supported anymore. Instead spawn a subshell and source a setup file manually."
+  exit 1
+fi
+
+# ensure to not use different shell type which was set before
+CATKIN_SHELL=sh
+
+# source setup.sh from same directory as this file
+_CATKIN_SETUP_DIR=$(cd "`dirname "$0"`" > /dev/null && pwd)
+. "$_CATKIN_SETUP_DIR/setup.sh"
+exec "$@"
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/atomic_configure/local_setup.bash b/mav_control_rw/mav_nonlinear_mpc/solver/atomic_configure/local_setup.bash
new file mode 100644
index 0000000..7da0d97
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/atomic_configure/local_setup.bash
@@ -0,0 +1,8 @@
+#!/usr/bin/env bash
+# generated from catkin/cmake/templates/local_setup.bash.in
+
+CATKIN_SHELL=bash
+
+# source setup.sh from same directory as this file
+_CATKIN_SETUP_DIR=$(builtin cd "`dirname "${BASH_SOURCE[0]}"`" > /dev/null && pwd)
+. "$_CATKIN_SETUP_DIR/setup.sh" --extend --local
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/atomic_configure/local_setup.sh b/mav_control_rw/mav_nonlinear_mpc/solver/atomic_configure/local_setup.sh
new file mode 100644
index 0000000..6440753
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/atomic_configure/local_setup.sh
@@ -0,0 +1,9 @@
+#!/usr/bin/env sh
+# generated from catkin/cmake/template/local_setup.sh.in
+
+# since this file is sourced either use the provided _CATKIN_SETUP_DIR
+# or fall back to the destination set at configure time
+: ${_CATKIN_SETUP_DIR:=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel}
+CATKIN_SETUP_UTIL_ARGS="--extend --local"
+. "$_CATKIN_SETUP_DIR/setup.sh"
+unset CATKIN_SETUP_UTIL_ARGS
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/atomic_configure/local_setup.zsh b/mav_control_rw/mav_nonlinear_mpc/solver/atomic_configure/local_setup.zsh
new file mode 100644
index 0000000..e692acc
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/atomic_configure/local_setup.zsh
@@ -0,0 +1,8 @@
+#!/usr/bin/env zsh
+# generated from catkin/cmake/templates/local_setup.zsh.in
+
+CATKIN_SHELL=zsh
+
+# source setup.sh from same directory as this file
+_CATKIN_SETUP_DIR=$(builtin cd -q "`dirname "$0"`" > /dev/null && pwd)
+emulate -R zsh -c 'source "$_CATKIN_SETUP_DIR/setup.sh" --extend --local'
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/atomic_configure/setup.bash b/mav_control_rw/mav_nonlinear_mpc/solver/atomic_configure/setup.bash
new file mode 100644
index 0000000..ff47af8
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/atomic_configure/setup.bash
@@ -0,0 +1,8 @@
+#!/usr/bin/env bash
+# generated from catkin/cmake/templates/setup.bash.in
+
+CATKIN_SHELL=bash
+
+# source setup.sh from same directory as this file
+_CATKIN_SETUP_DIR=$(builtin cd "`dirname "${BASH_SOURCE[0]}"`" > /dev/null && pwd)
+. "$_CATKIN_SETUP_DIR/setup.sh"
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/atomic_configure/setup.sh b/mav_control_rw/mav_nonlinear_mpc/solver/atomic_configure/setup.sh
new file mode 100644
index 0000000..56b4712
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/atomic_configure/setup.sh
@@ -0,0 +1,96 @@
+#!/usr/bin/env sh
+# generated from catkin/cmake/template/setup.sh.in
+
+# Sets various environment variables and sources additional environment hooks.
+# It tries it's best to undo changes from a previously sourced setup file before.
+# Supported command line options:
+# --extend: skips the undoing of changes from a previously sourced setup file
+# --local: only considers this workspace but not the chained ones
+# In plain sh shell which doesn't support arguments for sourced scripts you can
+# set the environment variable `CATKIN_SETUP_UTIL_ARGS=--extend/--local` instead.
+
+# since this file is sourced either use the provided _CATKIN_SETUP_DIR
+# or fall back to the destination set at configure time
+: ${_CATKIN_SETUP_DIR:=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel}
+_SETUP_UTIL="$_CATKIN_SETUP_DIR/_setup_util.py"
+unset _CATKIN_SETUP_DIR
+
+if [ ! -f "$_SETUP_UTIL" ]; then
+  echo "Missing Python script: $_SETUP_UTIL"
+  return 22
+fi
+
+# detect if running on Darwin platform
+_UNAME=`uname -s`
+_IS_DARWIN=0
+if [ "$_UNAME" = "Darwin" ]; then
+  _IS_DARWIN=1
+fi
+unset _UNAME
+
+# make sure to export all environment variables
+export CMAKE_PREFIX_PATH
+if [ $_IS_DARWIN -eq 0 ]; then
+  export LD_LIBRARY_PATH
+else
+  export DYLD_LIBRARY_PATH
+fi
+unset _IS_DARWIN
+export PATH
+export PKG_CONFIG_PATH
+export PYTHONPATH
+
+# remember type of shell if not already set
+if [ -z "$CATKIN_SHELL" ]; then
+  CATKIN_SHELL=sh
+fi
+
+# invoke Python script to generate necessary exports of environment variables
+# use TMPDIR if it exists, otherwise fall back to /tmp
+if [ -d "${TMPDIR:-}" ]; then
+  _TMPDIR="${TMPDIR}"
+else
+  _TMPDIR=/tmp
+fi
+_SETUP_TMP=`mktemp "${_TMPDIR}/setup.sh.XXXXXXXXXX"`
+unset _TMPDIR
+if [ $? -ne 0 -o ! -f "$_SETUP_TMP" ]; then
+  echo "Could not create temporary file: $_SETUP_TMP"
+  return 1
+fi
+CATKIN_SHELL=$CATKIN_SHELL "$_SETUP_UTIL" $@ ${CATKIN_SETUP_UTIL_ARGS:-} >> "$_SETUP_TMP"
+_RC=$?
+if [ $_RC -ne 0 ]; then
+  if [ $_RC -eq 2 ]; then
+    echo "Could not write the output of '$_SETUP_UTIL' to temporary file '$_SETUP_TMP': may be the disk if full?"
+  else
+    echo "Failed to run '\"$_SETUP_UTIL\" $@': return code $_RC"
+  fi
+  unset _RC
+  unset _SETUP_UTIL
+  rm -f "$_SETUP_TMP"
+  unset _SETUP_TMP
+  return 1
+fi
+unset _RC
+unset _SETUP_UTIL
+. "$_SETUP_TMP"
+rm -f "$_SETUP_TMP"
+unset _SETUP_TMP
+
+# source all environment hooks
+_i=0
+while [ $_i -lt $_CATKIN_ENVIRONMENT_HOOKS_COUNT ]; do
+  eval _envfile=\$_CATKIN_ENVIRONMENT_HOOKS_$_i
+  unset _CATKIN_ENVIRONMENT_HOOKS_$_i
+  eval _envfile_workspace=\$_CATKIN_ENVIRONMENT_HOOKS_${_i}_WORKSPACE
+  unset _CATKIN_ENVIRONMENT_HOOKS_${_i}_WORKSPACE
+  # set workspace for environment hook
+  CATKIN_ENV_HOOK_WORKSPACE=$_envfile_workspace
+  . "$_envfile"
+  unset CATKIN_ENV_HOOK_WORKSPACE
+  _i=$((_i + 1))
+done
+unset _i
+
+unset _CATKIN_ENVIRONMENT_HOOKS_COUNT
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/atomic_configure/setup.zsh b/mav_control_rw/mav_nonlinear_mpc/solver/atomic_configure/setup.zsh
new file mode 100644
index 0000000..9f780b7
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/atomic_configure/setup.zsh
@@ -0,0 +1,8 @@
+#!/usr/bin/env zsh
+# generated from catkin/cmake/templates/setup.zsh.in
+
+CATKIN_SHELL=zsh
+
+# source setup.sh from same directory as this file
+_CATKIN_SETUP_DIR=$(builtin cd -q "`dirname "$0"`" > /dev/null && pwd)
+emulate -R zsh -c 'source "$_CATKIN_SETUP_DIR/setup.sh"'
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/catkin/catkin_generated/version/package.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/catkin/catkin_generated/version/package.cmake
new file mode 100644
index 0000000..c37e287
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/catkin/catkin_generated/version/package.cmake
@@ -0,0 +1,24 @@
+set(_CATKIN_CURRENT_PACKAGE "catkin")
+set(catkin_VERSION "0.8.10")
+set(catkin_MAINTAINER "Michael Carroll <michael@openrobotics.org>, Tully Foote <tfoote@openrobotics.org>")
+set(catkin_PACKAGE_FORMAT "3")
+set(catkin_BUILD_DEPENDS "python-argparse" "python-catkin-pkg" "python3-catkin-pkg" "python-empy" "python3-empy")
+set(catkin_BUILD_DEPENDS_python-catkin-pkg_VERSION_GT "0.4.3")
+set(catkin_BUILD_DEPENDS_python3-catkin-pkg_VERSION_GT "0.4.3")
+set(catkin_BUILD_EXPORT_DEPENDS "google-mock" "gtest" "python-nose" "python3-nose" "python-argparse" "python-catkin-pkg" "python3-catkin-pkg" "python-empy" "python3-empy")
+set(catkin_BUILD_EXPORT_DEPENDS_python-catkin-pkg_VERSION_GT "0.4.3")
+set(catkin_BUILD_EXPORT_DEPENDS_python3-catkin-pkg_VERSION_GT "0.4.3")
+set(catkin_BUILDTOOL_DEPENDS "cmake" "python-setuptools" "python3-setuptools")
+set(catkin_BUILDTOOL_EXPORT_DEPENDS "cmake" "python3-setuptools")
+set(catkin_EXEC_DEPENDS "python-argparse" "python-catkin-pkg" "python3-catkin-pkg" "python-empy" "python3-empy")
+set(catkin_EXEC_DEPENDS_python-catkin-pkg_VERSION_GT "0.4.3")
+set(catkin_EXEC_DEPENDS_python3-catkin-pkg_VERSION_GT "0.4.3")
+set(catkin_RUN_DEPENDS "python-argparse" "python-catkin-pkg" "python3-catkin-pkg" "python-empy" "python3-empy" "google-mock" "gtest" "python-nose" "python3-nose")
+set(catkin_RUN_DEPENDS_python-catkin-pkg_VERSION_GT "0.4.3")
+set(catkin_RUN_DEPENDS_python3-catkin-pkg_VERSION_GT "0.4.3")
+set(catkin_TEST_DEPENDS "python-mock" "python3-mock" "python-nose" "python3-nose")
+set(catkin_DOC_DEPENDS )
+set(catkin_URL_WEBSITE "http://wiki.ros.org/catkin")
+set(catkin_URL_BUGTRACKER "https://github.com/ros/catkin/issues")
+set(catkin_URL_REPOSITORY "https://github.com/ros/catkin")
+set(catkin_DEPRECATED "")
\ No newline at end of file
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/env_cached.sh b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/env_cached.sh
new file mode 100644
index 0000000..d6be91d
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/env_cached.sh
@@ -0,0 +1,16 @@
+#!/usr/bin/env sh
+# generated from catkin/cmake/templates/env.sh.in
+
+if [ $# -eq 0 ] ; then
+  /bin/echo "Usage: env.sh COMMANDS"
+  /bin/echo "Calling env.sh without arguments is not supported anymore. Instead spawn a subshell and source a setup file manually."
+  exit 1
+fi
+
+# ensure to not use different shell type which was set before
+CATKIN_SHELL=sh
+
+# source setup_cached.sh from same directory as this file
+_CATKIN_SETUP_DIR=$(cd "`dirname "$0"`" > /dev/null && pwd)
+. "$_CATKIN_SETUP_DIR/setup_cached.sh"
+exec "$@"
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/generate_cached_setup.py b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/generate_cached_setup.py
new file mode 100644
index 0000000..a46206f
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/generate_cached_setup.py
@@ -0,0 +1,30 @@
+# -*- coding: utf-8 -*-
+from __future__ import print_function
+
+import os
+import stat
+import sys
+
+# find the import for catkin's python package - either from source space or from an installed underlay
+if os.path.exists(os.path.join('/opt/ros/noetic/share/catkin/cmake', 'catkinConfig.cmake.in')):
+    sys.path.insert(0, os.path.join('/opt/ros/noetic/share/catkin/cmake', '..', 'python'))
+try:
+    from catkin.environment_cache import generate_environment_script
+except ImportError:
+    # search for catkin package in all workspaces and prepend to path
+    for workspace in '/home/simhe502/catkin_ws/devel;/opt/ros/noetic'.split(';'):
+        python_path = os.path.join(workspace, 'lib/python3/dist-packages')
+        if os.path.isdir(os.path.join(python_path, 'catkin')):
+            sys.path.insert(0, python_path)
+            break
+    from catkin.environment_cache import generate_environment_script
+
+code = generate_environment_script('/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel/env.sh')
+
+output_filename = '/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/setup_cached.sh'
+with open(output_filename, 'w') as f:
+    # print('Generate script for cached setup "%s"' % output_filename)
+    f.write('\n'.join(code))
+
+mode = os.stat(output_filename).st_mode
+os.chmod(output_filename, mode | stat.S_IXUSR)
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/.rosinstall b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/.rosinstall
new file mode 100644
index 0000000..6fb13af
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/.rosinstall
@@ -0,0 +1,2 @@
+- setup-file:
+    local-name: /usr/local/setup.sh
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/_setup_util.py b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/_setup_util.py
new file mode 100644
index 0000000..cb721f7
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/_setup_util.py
@@ -0,0 +1,304 @@
+#!/usr/bin/python3
+# -*- coding: utf-8 -*-
+
+# Software License Agreement (BSD License)
+#
+# Copyright (c) 2012, Willow Garage, Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+#  * Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+#  * Redistributions in binary form must reproduce the above
+#    copyright notice, this list of conditions and the following
+#    disclaimer in the documentation and/or other materials provided
+#    with the distribution.
+#  * Neither the name of Willow Garage, Inc. nor the names of its
+#    contributors may be used to endorse or promote products derived
+#    from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+"""This file generates shell code for the setup.SHELL scripts to set environment variables."""
+
+from __future__ import print_function
+
+import argparse
+import copy
+import errno
+import os
+import platform
+import sys
+
+CATKIN_MARKER_FILE = '.catkin'
+
+system = platform.system()
+IS_DARWIN = (system == 'Darwin')
+IS_WINDOWS = (system == 'Windows')
+
+PATH_TO_ADD_SUFFIX = ['bin']
+if IS_WINDOWS:
+    # while catkin recommends putting dll's into bin, 3rd party packages often put dll's into lib
+    # since Windows finds dll's via the PATH variable, prepend it with path to lib
+    PATH_TO_ADD_SUFFIX.extend([['lib', os.path.join('lib', 'x86_64-linux-gnu')]])
+
+# subfolder of workspace prepended to CMAKE_PREFIX_PATH
+ENV_VAR_SUBFOLDERS = {
+    'CMAKE_PREFIX_PATH': '',
+    'LD_LIBRARY_PATH' if not IS_DARWIN else 'DYLD_LIBRARY_PATH': ['lib', os.path.join('lib', 'x86_64-linux-gnu')],
+    'PATH': PATH_TO_ADD_SUFFIX,
+    'PKG_CONFIG_PATH': [os.path.join('lib', 'pkgconfig'), os.path.join('lib', 'x86_64-linux-gnu', 'pkgconfig')],
+    'PYTHONPATH': 'lib/python3/dist-packages',
+}
+
+
+def rollback_env_variables(environ, env_var_subfolders):
+    """
+    Generate shell code to reset environment variables.
+
+    by unrolling modifications based on all workspaces in CMAKE_PREFIX_PATH.
+    This does not cover modifications performed by environment hooks.
+    """
+    lines = []
+    unmodified_environ = copy.copy(environ)
+    for key in sorted(env_var_subfolders.keys()):
+        subfolders = env_var_subfolders[key]
+        if not isinstance(subfolders, list):
+            subfolders = [subfolders]
+        value = _rollback_env_variable(unmodified_environ, key, subfolders)
+        if value is not None:
+            environ[key] = value
+            lines.append(assignment(key, value))
+    if lines:
+        lines.insert(0, comment('reset environment variables by unrolling modifications based on all workspaces in CMAKE_PREFIX_PATH'))
+    return lines
+
+
+def _rollback_env_variable(environ, name, subfolders):
+    """
+    For each catkin workspace in CMAKE_PREFIX_PATH remove the first entry from env[NAME] matching workspace + subfolder.
+
+    :param subfolders: list of str '' or subfoldername that may start with '/'
+    :returns: the updated value of the environment variable.
+    """
+    value = environ[name] if name in environ else ''
+    env_paths = [path for path in value.split(os.pathsep) if path]
+    value_modified = False
+    for subfolder in subfolders:
+        if subfolder:
+            if subfolder.startswith(os.path.sep) or (os.path.altsep and subfolder.startswith(os.path.altsep)):
+                subfolder = subfolder[1:]
+            if subfolder.endswith(os.path.sep) or (os.path.altsep and subfolder.endswith(os.path.altsep)):
+                subfolder = subfolder[:-1]
+        for ws_path in _get_workspaces(environ, include_fuerte=True, include_non_existing=True):
+            path_to_find = os.path.join(ws_path, subfolder) if subfolder else ws_path
+            path_to_remove = None
+            for env_path in env_paths:
+                env_path_clean = env_path[:-1] if env_path and env_path[-1] in [os.path.sep, os.path.altsep] else env_path
+                if env_path_clean == path_to_find:
+                    path_to_remove = env_path
+                    break
+            if path_to_remove:
+                env_paths.remove(path_to_remove)
+                value_modified = True
+    new_value = os.pathsep.join(env_paths)
+    return new_value if value_modified else None
+
+
+def _get_workspaces(environ, include_fuerte=False, include_non_existing=False):
+    """
+    Based on CMAKE_PREFIX_PATH return all catkin workspaces.
+
+    :param include_fuerte: The flag if paths starting with '/opt/ros/fuerte' should be considered workspaces, ``bool``
+    """
+    # get all cmake prefix paths
+    env_name = 'CMAKE_PREFIX_PATH'
+    value = environ[env_name] if env_name in environ else ''
+    paths = [path for path in value.split(os.pathsep) if path]
+    # remove non-workspace paths
+    workspaces = [path for path in paths if os.path.isfile(os.path.join(path, CATKIN_MARKER_FILE)) or (include_fuerte and path.startswith('/opt/ros/fuerte')) or (include_non_existing and not os.path.exists(path))]
+    return workspaces
+
+
+def prepend_env_variables(environ, env_var_subfolders, workspaces):
+    """Generate shell code to prepend environment variables for the all workspaces."""
+    lines = []
+    lines.append(comment('prepend folders of workspaces to environment variables'))
+
+    paths = [path for path in workspaces.split(os.pathsep) if path]
+
+    prefix = _prefix_env_variable(environ, 'CMAKE_PREFIX_PATH', paths, '')
+    lines.append(prepend(environ, 'CMAKE_PREFIX_PATH', prefix))
+
+    for key in sorted(key for key in env_var_subfolders.keys() if key != 'CMAKE_PREFIX_PATH'):
+        subfolder = env_var_subfolders[key]
+        prefix = _prefix_env_variable(environ, key, paths, subfolder)
+        lines.append(prepend(environ, key, prefix))
+    return lines
+
+
+def _prefix_env_variable(environ, name, paths, subfolders):
+    """
+    Return the prefix to prepend to the environment variable NAME.
+
+    Adding any path in NEW_PATHS_STR without creating duplicate or empty items.
+    """
+    value = environ[name] if name in environ else ''
+    environ_paths = [path for path in value.split(os.pathsep) if path]
+    checked_paths = []
+    for path in paths:
+        if not isinstance(subfolders, list):
+            subfolders = [subfolders]
+        for subfolder in subfolders:
+            path_tmp = path
+            if subfolder:
+                path_tmp = os.path.join(path_tmp, subfolder)
+            # skip nonexistent paths
+            if not os.path.exists(path_tmp):
+                continue
+            # exclude any path already in env and any path we already added
+            if path_tmp not in environ_paths and path_tmp not in checked_paths:
+                checked_paths.append(path_tmp)
+    prefix_str = os.pathsep.join(checked_paths)
+    if prefix_str != '' and environ_paths:
+        prefix_str += os.pathsep
+    return prefix_str
+
+
+def assignment(key, value):
+    if not IS_WINDOWS:
+        return 'export %s="%s"' % (key, value)
+    else:
+        return 'set %s=%s' % (key, value)
+
+
+def comment(msg):
+    if not IS_WINDOWS:
+        return '# %s' % msg
+    else:
+        return 'REM %s' % msg
+
+
+def prepend(environ, key, prefix):
+    if key not in environ or not environ[key]:
+        return assignment(key, prefix)
+    if not IS_WINDOWS:
+        return 'export %s="%s$%s"' % (key, prefix, key)
+    else:
+        return 'set %s=%s%%%s%%' % (key, prefix, key)
+
+
+def find_env_hooks(environ, cmake_prefix_path):
+    """Generate shell code with found environment hooks for the all workspaces."""
+    lines = []
+    lines.append(comment('found environment hooks in workspaces'))
+
+    generic_env_hooks = []
+    generic_env_hooks_workspace = []
+    specific_env_hooks = []
+    specific_env_hooks_workspace = []
+    generic_env_hooks_by_filename = {}
+    specific_env_hooks_by_filename = {}
+    generic_env_hook_ext = 'bat' if IS_WINDOWS else 'sh'
+    specific_env_hook_ext = environ['CATKIN_SHELL'] if not IS_WINDOWS and 'CATKIN_SHELL' in environ and environ['CATKIN_SHELL'] else None
+    # remove non-workspace paths
+    workspaces = [path for path in cmake_prefix_path.split(os.pathsep) if path and os.path.isfile(os.path.join(path, CATKIN_MARKER_FILE))]
+    for workspace in reversed(workspaces):
+        env_hook_dir = os.path.join(workspace, 'etc', 'catkin', 'profile.d')
+        if os.path.isdir(env_hook_dir):
+            for filename in sorted(os.listdir(env_hook_dir)):
+                if filename.endswith('.%s' % generic_env_hook_ext):
+                    # remove previous env hook with same name if present
+                    if filename in generic_env_hooks_by_filename:
+                        i = generic_env_hooks.index(generic_env_hooks_by_filename[filename])
+                        generic_env_hooks.pop(i)
+                        generic_env_hooks_workspace.pop(i)
+                    # append env hook
+                    generic_env_hooks.append(os.path.join(env_hook_dir, filename))
+                    generic_env_hooks_workspace.append(workspace)
+                    generic_env_hooks_by_filename[filename] = generic_env_hooks[-1]
+                elif specific_env_hook_ext is not None and filename.endswith('.%s' % specific_env_hook_ext):
+                    # remove previous env hook with same name if present
+                    if filename in specific_env_hooks_by_filename:
+                        i = specific_env_hooks.index(specific_env_hooks_by_filename[filename])
+                        specific_env_hooks.pop(i)
+                        specific_env_hooks_workspace.pop(i)
+                    # append env hook
+                    specific_env_hooks.append(os.path.join(env_hook_dir, filename))
+                    specific_env_hooks_workspace.append(workspace)
+                    specific_env_hooks_by_filename[filename] = specific_env_hooks[-1]
+    env_hooks = generic_env_hooks + specific_env_hooks
+    env_hooks_workspace = generic_env_hooks_workspace + specific_env_hooks_workspace
+    count = len(env_hooks)
+    lines.append(assignment('_CATKIN_ENVIRONMENT_HOOKS_COUNT', count))
+    for i in range(count):
+        lines.append(assignment('_CATKIN_ENVIRONMENT_HOOKS_%d' % i, env_hooks[i]))
+        lines.append(assignment('_CATKIN_ENVIRONMENT_HOOKS_%d_WORKSPACE' % i, env_hooks_workspace[i]))
+    return lines
+
+
+def _parse_arguments(args=None):
+    parser = argparse.ArgumentParser(description='Generates code blocks for the setup.SHELL script.')
+    parser.add_argument('--extend', action='store_true', help='Skip unsetting previous environment variables to extend context')
+    parser.add_argument('--local', action='store_true', help='Only consider this prefix path and ignore other prefix path in the environment')
+    return parser.parse_known_args(args=args)[0]
+
+
+if __name__ == '__main__':
+    try:
+        try:
+            args = _parse_arguments()
+        except Exception as e:
+            print(e, file=sys.stderr)
+            sys.exit(1)
+
+        if not args.local:
+            # environment at generation time
+            CMAKE_PREFIX_PATH = r'/home/simhe502/catkin_ws/devel;/opt/ros/noetic'.split(';')
+        else:
+            # don't consider any other prefix path than this one
+            CMAKE_PREFIX_PATH = []
+        # prepend current workspace if not already part of CPP
+        base_path = os.path.dirname(__file__)
+        # CMAKE_PREFIX_PATH uses forward slash on all platforms, but __file__ is platform dependent
+        # base_path on Windows contains backward slashes, need to be converted to forward slashes before comparison
+        if os.path.sep != '/':
+            base_path = base_path.replace(os.path.sep, '/')
+
+        if base_path not in CMAKE_PREFIX_PATH:
+            CMAKE_PREFIX_PATH.insert(0, base_path)
+        CMAKE_PREFIX_PATH = os.pathsep.join(CMAKE_PREFIX_PATH)
+
+        environ = dict(os.environ)
+        lines = []
+        if not args.extend:
+            lines += rollback_env_variables(environ, ENV_VAR_SUBFOLDERS)
+        lines += prepend_env_variables(environ, ENV_VAR_SUBFOLDERS, CMAKE_PREFIX_PATH)
+        lines += find_env_hooks(environ, CMAKE_PREFIX_PATH)
+        print('\n'.join(lines))
+
+        # need to explicitly flush the output
+        sys.stdout.flush()
+    except IOError as e:
+        # and catch potential "broken pipe" if stdout is not writable
+        # which can happen when piping the output to a file but the disk is full
+        if e.errno == errno.EPIPE:
+            print(e, file=sys.stderr)
+            sys.exit(2)
+        raise
+
+    sys.exit(0)
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/env.sh b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/env.sh
new file mode 100644
index 0000000..8aa9d24
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/env.sh
@@ -0,0 +1,16 @@
+#!/usr/bin/env sh
+# generated from catkin/cmake/templates/env.sh.in
+
+if [ $# -eq 0 ] ; then
+  /bin/echo "Usage: env.sh COMMANDS"
+  /bin/echo "Calling env.sh without arguments is not supported anymore. Instead spawn a subshell and source a setup file manually."
+  exit 1
+fi
+
+# ensure to not use different shell type which was set before
+CATKIN_SHELL=sh
+
+# source setup.sh from same directory as this file
+_CATKIN_SETUP_DIR=$(cd "`dirname "$0"`" > /dev/null && pwd)
+. "$_CATKIN_SETUP_DIR/setup.sh"
+exec "$@"
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/local_setup.bash b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/local_setup.bash
new file mode 100644
index 0000000..7da0d97
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/local_setup.bash
@@ -0,0 +1,8 @@
+#!/usr/bin/env bash
+# generated from catkin/cmake/templates/local_setup.bash.in
+
+CATKIN_SHELL=bash
+
+# source setup.sh from same directory as this file
+_CATKIN_SETUP_DIR=$(builtin cd "`dirname "${BASH_SOURCE[0]}"`" > /dev/null && pwd)
+. "$_CATKIN_SETUP_DIR/setup.sh" --extend --local
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/local_setup.sh b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/local_setup.sh
new file mode 100644
index 0000000..f021098
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/local_setup.sh
@@ -0,0 +1,9 @@
+#!/usr/bin/env sh
+# generated from catkin/cmake/template/local_setup.sh.in
+
+# since this file is sourced either use the provided _CATKIN_SETUP_DIR
+# or fall back to the destination set at configure time
+: ${_CATKIN_SETUP_DIR:=/usr/local}
+CATKIN_SETUP_UTIL_ARGS="--extend --local"
+. "$_CATKIN_SETUP_DIR/setup.sh"
+unset CATKIN_SETUP_UTIL_ARGS
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/local_setup.zsh b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/local_setup.zsh
new file mode 100644
index 0000000..e692acc
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/local_setup.zsh
@@ -0,0 +1,8 @@
+#!/usr/bin/env zsh
+# generated from catkin/cmake/templates/local_setup.zsh.in
+
+CATKIN_SHELL=zsh
+
+# source setup.sh from same directory as this file
+_CATKIN_SETUP_DIR=$(builtin cd -q "`dirname "$0"`" > /dev/null && pwd)
+emulate -R zsh -c 'source "$_CATKIN_SETUP_DIR/setup.sh" --extend --local'
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/mav_nonlinear_mpc.pc b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/mav_nonlinear_mpc.pc
new file mode 100644
index 0000000..62867ae
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/mav_nonlinear_mpc.pc
@@ -0,0 +1,8 @@
+prefix=/usr/local
+
+Name: mav_nonlinear_mpc
+Description: Description of mav_nonlinear_mpc
+Version: 1.0.0
+Cflags: -I${prefix}/include
+Libs: -L${prefix}/lib -lmav_nonlinear_mpc_lib
+Requires: std_msgs cmake_modules roscpp dynamic_reconfigure tf
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/mav_nonlinear_mpcConfig-version.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/mav_nonlinear_mpcConfig-version.cmake
new file mode 100644
index 0000000..de35aa2
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/mav_nonlinear_mpcConfig-version.cmake
@@ -0,0 +1,14 @@
+# generated from catkin/cmake/template/pkgConfig-version.cmake.in
+set(PACKAGE_VERSION "1.0.0")
+
+set(PACKAGE_VERSION_EXACT False)
+set(PACKAGE_VERSION_COMPATIBLE False)
+
+if("${PACKAGE_FIND_VERSION}" VERSION_EQUAL "${PACKAGE_VERSION}")
+  set(PACKAGE_VERSION_EXACT True)
+  set(PACKAGE_VERSION_COMPATIBLE True)
+endif()
+
+if("${PACKAGE_FIND_VERSION}" VERSION_LESS "${PACKAGE_VERSION}")
+  set(PACKAGE_VERSION_COMPATIBLE True)
+endif()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/mav_nonlinear_mpcConfig.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/mav_nonlinear_mpcConfig.cmake
new file mode 100644
index 0000000..a8675b9
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/mav_nonlinear_mpcConfig.cmake
@@ -0,0 +1,223 @@
+# generated from catkin/cmake/template/pkgConfig.cmake.in
+
+# append elements to a list and remove existing duplicates from the list
+# copied from catkin/cmake/list_append_deduplicate.cmake to keep pkgConfig
+# self contained
+macro(_list_append_deduplicate listname)
+  if(NOT "${ARGN}" STREQUAL "")
+    if(${listname})
+      list(REMOVE_ITEM ${listname} ${ARGN})
+    endif()
+    list(APPEND ${listname} ${ARGN})
+  endif()
+endmacro()
+
+# append elements to a list if they are not already in the list
+# copied from catkin/cmake/list_append_unique.cmake to keep pkgConfig
+# self contained
+macro(_list_append_unique listname)
+  foreach(_item ${ARGN})
+    list(FIND ${listname} ${_item} _index)
+    if(_index EQUAL -1)
+      list(APPEND ${listname} ${_item})
+    endif()
+  endforeach()
+endmacro()
+
+# pack a list of libraries with optional build configuration keywords
+# copied from catkin/cmake/catkin_libraries.cmake to keep pkgConfig
+# self contained
+macro(_pack_libraries_with_build_configuration VAR)
+  set(${VAR} "")
+  set(_argn ${ARGN})
+  list(LENGTH _argn _count)
+  set(_index 0)
+  while(${_index} LESS ${_count})
+    list(GET _argn ${_index} lib)
+    if("${lib}" MATCHES "^(debug|optimized|general)$")
+      math(EXPR _index "${_index} + 1")
+      if(${_index} EQUAL ${_count})
+        message(FATAL_ERROR "_pack_libraries_with_build_configuration() the list of libraries '${ARGN}' ends with '${lib}' which is a build configuration keyword and must be followed by a library")
+      endif()
+      list(GET _argn ${_index} library)
+      list(APPEND ${VAR} "${lib}${CATKIN_BUILD_CONFIGURATION_KEYWORD_SEPARATOR}${library}")
+    else()
+      list(APPEND ${VAR} "${lib}")
+    endif()
+    math(EXPR _index "${_index} + 1")
+  endwhile()
+endmacro()
+
+# unpack a list of libraries with optional build configuration keyword prefixes
+# copied from catkin/cmake/catkin_libraries.cmake to keep pkgConfig
+# self contained
+macro(_unpack_libraries_with_build_configuration VAR)
+  set(${VAR} "")
+  foreach(lib ${ARGN})
+    string(REGEX REPLACE "^(debug|optimized|general)${CATKIN_BUILD_CONFIGURATION_KEYWORD_SEPARATOR}(.+)$" "\\1;\\2" lib "${lib}")
+    list(APPEND ${VAR} "${lib}")
+  endforeach()
+endmacro()
+
+
+if(mav_nonlinear_mpc_CONFIG_INCLUDED)
+  return()
+endif()
+set(mav_nonlinear_mpc_CONFIG_INCLUDED TRUE)
+
+# set variables for source/devel/install prefixes
+if("FALSE" STREQUAL "TRUE")
+  set(mav_nonlinear_mpc_SOURCE_PREFIX /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc)
+  set(mav_nonlinear_mpc_DEVEL_PREFIX /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel)
+  set(mav_nonlinear_mpc_INSTALL_PREFIX "")
+  set(mav_nonlinear_mpc_PREFIX ${mav_nonlinear_mpc_DEVEL_PREFIX})
+else()
+  set(mav_nonlinear_mpc_SOURCE_PREFIX "")
+  set(mav_nonlinear_mpc_DEVEL_PREFIX "")
+  set(mav_nonlinear_mpc_INSTALL_PREFIX /usr/local)
+  set(mav_nonlinear_mpc_PREFIX ${mav_nonlinear_mpc_INSTALL_PREFIX})
+endif()
+
+# warn when using a deprecated package
+if(NOT "" STREQUAL "")
+  set(_msg "WARNING: package 'mav_nonlinear_mpc' is deprecated")
+  # append custom deprecation text if available
+  if(NOT "" STREQUAL "TRUE")
+    set(_msg "${_msg} ()")
+  endif()
+  message("${_msg}")
+endif()
+
+# flag project as catkin-based to distinguish if a find_package()-ed project is a catkin project
+set(mav_nonlinear_mpc_FOUND_CATKIN_PROJECT TRUE)
+
+if(NOT "include " STREQUAL " ")
+  set(mav_nonlinear_mpc_INCLUDE_DIRS "")
+  set(_include_dirs "include")
+  if(NOT " " STREQUAL " ")
+    set(_report "Check the issue tracker '' and consider creating a ticket if the problem has not been reported yet.")
+  elseif(NOT " " STREQUAL " ")
+    set(_report "Check the website '' for information and consider reporting the problem.")
+  else()
+    set(_report "Report the problem to the maintainer 'Mina Kamel <mina.kamel@mavt.ethz.com>' and request to fix the problem.")
+  endif()
+  foreach(idir ${_include_dirs})
+    if(IS_ABSOLUTE ${idir} AND IS_DIRECTORY ${idir})
+      set(include ${idir})
+    elseif("${idir} " STREQUAL "include ")
+      get_filename_component(include "${mav_nonlinear_mpc_DIR}/../../../include" ABSOLUTE)
+      if(NOT IS_DIRECTORY ${include})
+        message(FATAL_ERROR "Project 'mav_nonlinear_mpc' specifies '${idir}' as an include dir, which is not found.  It does not exist in '${include}'.  ${_report}")
+      endif()
+    else()
+      message(FATAL_ERROR "Project 'mav_nonlinear_mpc' specifies '${idir}' as an include dir, which is not found.  It does neither exist as an absolute directory nor in '\${prefix}/${idir}'.  ${_report}")
+    endif()
+    _list_append_unique(mav_nonlinear_mpc_INCLUDE_DIRS ${include})
+  endforeach()
+endif()
+
+set(libraries "mav_nonlinear_mpc_lib")
+foreach(library ${libraries})
+  # keep build configuration keywords, target names and absolute libraries as-is
+  if("${library}" MATCHES "^(debug|optimized|general)$")
+    list(APPEND mav_nonlinear_mpc_LIBRARIES ${library})
+  elseif(${library} MATCHES "^-l")
+    list(APPEND mav_nonlinear_mpc_LIBRARIES ${library})
+  elseif(${library} MATCHES "^-")
+    # This is a linker flag/option (like -pthread)
+    # There's no standard variable for these, so create an interface library to hold it
+    if(NOT mav_nonlinear_mpc_NUM_DUMMY_TARGETS)
+      set(mav_nonlinear_mpc_NUM_DUMMY_TARGETS 0)
+    endif()
+    # Make sure the target name is unique
+    set(interface_target_name "catkin::mav_nonlinear_mpc::wrapped-linker-option${mav_nonlinear_mpc_NUM_DUMMY_TARGETS}")
+    while(TARGET "${interface_target_name}")
+      math(EXPR mav_nonlinear_mpc_NUM_DUMMY_TARGETS "${mav_nonlinear_mpc_NUM_DUMMY_TARGETS}+1")
+      set(interface_target_name "catkin::mav_nonlinear_mpc::wrapped-linker-option${mav_nonlinear_mpc_NUM_DUMMY_TARGETS}")
+    endwhile()
+    add_library("${interface_target_name}" INTERFACE IMPORTED)
+    if("${CMAKE_VERSION}" VERSION_LESS "3.13.0")
+      set_property(
+        TARGET
+        "${interface_target_name}"
+        APPEND PROPERTY
+        INTERFACE_LINK_LIBRARIES "${library}")
+    else()
+      target_link_options("${interface_target_name}" INTERFACE "${library}")
+    endif()
+    list(APPEND mav_nonlinear_mpc_LIBRARIES "${interface_target_name}")
+  elseif(TARGET ${library})
+    list(APPEND mav_nonlinear_mpc_LIBRARIES ${library})
+  elseif(IS_ABSOLUTE ${library})
+    list(APPEND mav_nonlinear_mpc_LIBRARIES ${library})
+  else()
+    set(lib_path "")
+    set(lib "${library}-NOTFOUND")
+    # since the path where the library is found is returned we have to iterate over the paths manually
+    foreach(path /usr/local/lib;/home/simhe502/catkin_ws/devel/lib;/opt/ros/noetic/lib)
+      find_library(lib ${library}
+        PATHS ${path}
+        NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
+      if(lib)
+        set(lib_path ${path})
+        break()
+      endif()
+    endforeach()
+    if(lib)
+      _list_append_unique(mav_nonlinear_mpc_LIBRARY_DIRS ${lib_path})
+      list(APPEND mav_nonlinear_mpc_LIBRARIES ${lib})
+    else()
+      # as a fall back for non-catkin libraries try to search globally
+      find_library(lib ${library})
+      if(NOT lib)
+        message(FATAL_ERROR "Project '${PROJECT_NAME}' tried to find library '${library}'.  The library is neither a target nor built/installed properly.  Did you compile project 'mav_nonlinear_mpc'?  Did you find_package() it before the subdirectory containing its code is included?")
+      endif()
+      list(APPEND mav_nonlinear_mpc_LIBRARIES ${lib})
+    endif()
+  endif()
+endforeach()
+
+set(mav_nonlinear_mpc_EXPORTED_TARGETS "mav_nonlinear_mpc_gencfg")
+# create dummy targets for exported code generation targets to make life of users easier
+foreach(t ${mav_nonlinear_mpc_EXPORTED_TARGETS})
+  if(NOT TARGET ${t})
+    add_custom_target(${t})
+  endif()
+endforeach()
+
+set(depends "std_msgs;cmake_modules;roscpp;dynamic_reconfigure;tf")
+foreach(depend ${depends})
+  string(REPLACE " " ";" depend_list ${depend})
+  # the package name of the dependency must be kept in a unique variable so that it is not overwritten in recursive calls
+  list(GET depend_list 0 mav_nonlinear_mpc_dep)
+  list(LENGTH depend_list count)
+  if(${count} EQUAL 1)
+    # simple dependencies must only be find_package()-ed once
+    if(NOT ${mav_nonlinear_mpc_dep}_FOUND)
+      find_package(${mav_nonlinear_mpc_dep} REQUIRED NO_MODULE)
+    endif()
+  else()
+    # dependencies with components must be find_package()-ed again
+    list(REMOVE_AT depend_list 0)
+    find_package(${mav_nonlinear_mpc_dep} REQUIRED NO_MODULE ${depend_list})
+  endif()
+  _list_append_unique(mav_nonlinear_mpc_INCLUDE_DIRS ${${mav_nonlinear_mpc_dep}_INCLUDE_DIRS})
+
+  # merge build configuration keywords with library names to correctly deduplicate
+  _pack_libraries_with_build_configuration(mav_nonlinear_mpc_LIBRARIES ${mav_nonlinear_mpc_LIBRARIES})
+  _pack_libraries_with_build_configuration(_libraries ${${mav_nonlinear_mpc_dep}_LIBRARIES})
+  _list_append_deduplicate(mav_nonlinear_mpc_LIBRARIES ${_libraries})
+  # undo build configuration keyword merging after deduplication
+  _unpack_libraries_with_build_configuration(mav_nonlinear_mpc_LIBRARIES ${mav_nonlinear_mpc_LIBRARIES})
+
+  _list_append_unique(mav_nonlinear_mpc_LIBRARY_DIRS ${${mav_nonlinear_mpc_dep}_LIBRARY_DIRS})
+  _list_append_deduplicate(mav_nonlinear_mpc_EXPORTED_TARGETS ${${mav_nonlinear_mpc_dep}_EXPORTED_TARGETS})
+endforeach()
+
+set(pkg_cfg_extras "")
+foreach(extra ${pkg_cfg_extras})
+  if(NOT IS_ABSOLUTE ${extra})
+    set(extra ${mav_nonlinear_mpc_DIR}/${extra})
+  endif()
+  include(${extra})
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/setup.bash b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/setup.bash
new file mode 100644
index 0000000..ff47af8
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/setup.bash
@@ -0,0 +1,8 @@
+#!/usr/bin/env bash
+# generated from catkin/cmake/templates/setup.bash.in
+
+CATKIN_SHELL=bash
+
+# source setup.sh from same directory as this file
+_CATKIN_SETUP_DIR=$(builtin cd "`dirname "${BASH_SOURCE[0]}"`" > /dev/null && pwd)
+. "$_CATKIN_SETUP_DIR/setup.sh"
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/setup.sh b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/setup.sh
new file mode 100644
index 0000000..b5a330e
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/setup.sh
@@ -0,0 +1,96 @@
+#!/usr/bin/env sh
+# generated from catkin/cmake/template/setup.sh.in
+
+# Sets various environment variables and sources additional environment hooks.
+# It tries it's best to undo changes from a previously sourced setup file before.
+# Supported command line options:
+# --extend: skips the undoing of changes from a previously sourced setup file
+# --local: only considers this workspace but not the chained ones
+# In plain sh shell which doesn't support arguments for sourced scripts you can
+# set the environment variable `CATKIN_SETUP_UTIL_ARGS=--extend/--local` instead.
+
+# since this file is sourced either use the provided _CATKIN_SETUP_DIR
+# or fall back to the destination set at configure time
+: ${_CATKIN_SETUP_DIR:=/usr/local}
+_SETUP_UTIL="$_CATKIN_SETUP_DIR/_setup_util.py"
+unset _CATKIN_SETUP_DIR
+
+if [ ! -f "$_SETUP_UTIL" ]; then
+  echo "Missing Python script: $_SETUP_UTIL"
+  return 22
+fi
+
+# detect if running on Darwin platform
+_UNAME=`uname -s`
+_IS_DARWIN=0
+if [ "$_UNAME" = "Darwin" ]; then
+  _IS_DARWIN=1
+fi
+unset _UNAME
+
+# make sure to export all environment variables
+export CMAKE_PREFIX_PATH
+if [ $_IS_DARWIN -eq 0 ]; then
+  export LD_LIBRARY_PATH
+else
+  export DYLD_LIBRARY_PATH
+fi
+unset _IS_DARWIN
+export PATH
+export PKG_CONFIG_PATH
+export PYTHONPATH
+
+# remember type of shell if not already set
+if [ -z "$CATKIN_SHELL" ]; then
+  CATKIN_SHELL=sh
+fi
+
+# invoke Python script to generate necessary exports of environment variables
+# use TMPDIR if it exists, otherwise fall back to /tmp
+if [ -d "${TMPDIR:-}" ]; then
+  _TMPDIR="${TMPDIR}"
+else
+  _TMPDIR=/tmp
+fi
+_SETUP_TMP=`mktemp "${_TMPDIR}/setup.sh.XXXXXXXXXX"`
+unset _TMPDIR
+if [ $? -ne 0 -o ! -f "$_SETUP_TMP" ]; then
+  echo "Could not create temporary file: $_SETUP_TMP"
+  return 1
+fi
+CATKIN_SHELL=$CATKIN_SHELL "$_SETUP_UTIL" $@ ${CATKIN_SETUP_UTIL_ARGS:-} >> "$_SETUP_TMP"
+_RC=$?
+if [ $_RC -ne 0 ]; then
+  if [ $_RC -eq 2 ]; then
+    echo "Could not write the output of '$_SETUP_UTIL' to temporary file '$_SETUP_TMP': may be the disk if full?"
+  else
+    echo "Failed to run '\"$_SETUP_UTIL\" $@': return code $_RC"
+  fi
+  unset _RC
+  unset _SETUP_UTIL
+  rm -f "$_SETUP_TMP"
+  unset _SETUP_TMP
+  return 1
+fi
+unset _RC
+unset _SETUP_UTIL
+. "$_SETUP_TMP"
+rm -f "$_SETUP_TMP"
+unset _SETUP_TMP
+
+# source all environment hooks
+_i=0
+while [ $_i -lt $_CATKIN_ENVIRONMENT_HOOKS_COUNT ]; do
+  eval _envfile=\$_CATKIN_ENVIRONMENT_HOOKS_$_i
+  unset _CATKIN_ENVIRONMENT_HOOKS_$_i
+  eval _envfile_workspace=\$_CATKIN_ENVIRONMENT_HOOKS_${_i}_WORKSPACE
+  unset _CATKIN_ENVIRONMENT_HOOKS_${_i}_WORKSPACE
+  # set workspace for environment hook
+  CATKIN_ENV_HOOK_WORKSPACE=$_envfile_workspace
+  . "$_envfile"
+  unset CATKIN_ENV_HOOK_WORKSPACE
+  _i=$((_i + 1))
+done
+unset _i
+
+unset _CATKIN_ENVIRONMENT_HOOKS_COUNT
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/setup.zsh b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/setup.zsh
new file mode 100644
index 0000000..9f780b7
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/setup.zsh
@@ -0,0 +1,8 @@
+#!/usr/bin/env zsh
+# generated from catkin/cmake/templates/setup.zsh.in
+
+CATKIN_SHELL=zsh
+
+# source setup.sh from same directory as this file
+_CATKIN_SETUP_DIR=$(builtin cd -q "`dirname "$0"`" > /dev/null && pwd)
+emulate -R zsh -c 'source "$_CATKIN_SETUP_DIR/setup.sh"'
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/ordered_paths.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/ordered_paths.cmake
new file mode 100644
index 0000000..454cf03
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/ordered_paths.cmake
@@ -0,0 +1 @@
+set(ORDERED_PATHS "/opt/ros/noetic/lib")
\ No newline at end of file
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/package.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/package.cmake
new file mode 100644
index 0000000..76e6259
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/package.cmake
@@ -0,0 +1,16 @@
+set(_CATKIN_CURRENT_PACKAGE "mav_nonlinear_mpc")
+set(mav_nonlinear_mpc_VERSION "1.0.0")
+set(mav_nonlinear_mpc_MAINTAINER "Mina Kamel <mina.kamel@mavt.ethz.com>")
+set(mav_nonlinear_mpc_PACKAGE_FORMAT "2")
+set(mav_nonlinear_mpc_BUILD_DEPENDS "std_msgs" "cmake_modules" "roscpp" "dynamic_reconfigure" "tf")
+set(mav_nonlinear_mpc_BUILD_EXPORT_DEPENDS "std_msgs" "cmake_modules" "roscpp" "dynamic_reconfigure" "tf")
+set(mav_nonlinear_mpc_BUILDTOOL_DEPENDS "catkin" "catkin_simple")
+set(mav_nonlinear_mpc_BUILDTOOL_EXPORT_DEPENDS )
+set(mav_nonlinear_mpc_EXEC_DEPENDS "std_msgs" "cmake_modules" "roscpp" "dynamic_reconfigure" "tf")
+set(mav_nonlinear_mpc_RUN_DEPENDS "std_msgs" "cmake_modules" "roscpp" "dynamic_reconfigure" "tf")
+set(mav_nonlinear_mpc_TEST_DEPENDS )
+set(mav_nonlinear_mpc_DOC_DEPENDS )
+set(mav_nonlinear_mpc_URL_WEBSITE "")
+set(mav_nonlinear_mpc_URL_BUGTRACKER "")
+set(mav_nonlinear_mpc_URL_REPOSITORY "")
+set(mav_nonlinear_mpc_DEPRECATED "")
\ No newline at end of file
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/pkg.develspace.context.pc.py b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/pkg.develspace.context.pc.py
new file mode 100644
index 0000000..5f84b44
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/pkg.develspace.context.pc.py
@@ -0,0 +1,8 @@
+# generated from catkin/cmake/template/pkg.context.pc.in
+CATKIN_PACKAGE_PREFIX = ""
+PROJECT_PKG_CONFIG_INCLUDE_DIRS = "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel/include;/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/include".split(';') if "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel/include;/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/include" != "" else []
+PROJECT_CATKIN_DEPENDS = "std_msgs;cmake_modules;roscpp;dynamic_reconfigure;tf".replace(';', ' ')
+PKG_CONFIG_LIBRARIES_WITH_PREFIX = "-lmav_nonlinear_mpc_lib".split(';') if "-lmav_nonlinear_mpc_lib" != "" else []
+PROJECT_NAME = "mav_nonlinear_mpc"
+PROJECT_SPACE_DIR = "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel"
+PROJECT_VERSION = "1.0.0"
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/pkg.installspace.context.pc.py b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/pkg.installspace.context.pc.py
new file mode 100644
index 0000000..5934b20
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/pkg.installspace.context.pc.py
@@ -0,0 +1,8 @@
+# generated from catkin/cmake/template/pkg.context.pc.in
+CATKIN_PACKAGE_PREFIX = ""
+PROJECT_PKG_CONFIG_INCLUDE_DIRS = "${prefix}/include".split(';') if "${prefix}/include" != "" else []
+PROJECT_CATKIN_DEPENDS = "std_msgs;cmake_modules;roscpp;dynamic_reconfigure;tf".replace(';', ' ')
+PKG_CONFIG_LIBRARIES_WITH_PREFIX = "-lmav_nonlinear_mpc_lib".split(';') if "-lmav_nonlinear_mpc_lib" != "" else []
+PROJECT_NAME = "mav_nonlinear_mpc"
+PROJECT_SPACE_DIR = "/usr/local"
+PROJECT_VERSION = "1.0.0"
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/setup_cached.sh b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/setup_cached.sh
new file mode 100644
index 0000000..eb1797e
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/setup_cached.sh
@@ -0,0 +1,15 @@
+#!/usr/bin/env sh
+# generated from catkin/python/catkin/environment_cache.py
+
+# based on a snapshot of the environment before and after calling the setup script
+# it emulates the modifications of the setup script without recurring computations
+
+# new environment variables
+
+# modified environment variables
+export CMAKE_PREFIX_PATH="/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel:$CMAKE_PREFIX_PATH"
+export LD_LIBRARY_PATH="/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel/lib:$LD_LIBRARY_PATH"
+export PKG_CONFIG_PATH="/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel/lib/pkgconfig:$PKG_CONFIG_PATH"
+export PYTHONPATH="/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel/lib/python3/dist-packages:$PYTHONPATH"
+export ROSLISP_PACKAGE_DIRECTORIES="/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel/share/common-lisp:$ROSLISP_PACKAGE_DIRECTORIES"
+export ROS_PACKAGE_PATH="/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc:$ROS_PACKAGE_PATH"
\ No newline at end of file
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/stamps/mav_nonlinear_mpc/_setup_util.py.stamp b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/stamps/mav_nonlinear_mpc/_setup_util.py.stamp
new file mode 100644
index 0000000..cb721f7
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/stamps/mav_nonlinear_mpc/_setup_util.py.stamp
@@ -0,0 +1,304 @@
+#!/usr/bin/python3
+# -*- coding: utf-8 -*-
+
+# Software License Agreement (BSD License)
+#
+# Copyright (c) 2012, Willow Garage, Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+#  * Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+#  * Redistributions in binary form must reproduce the above
+#    copyright notice, this list of conditions and the following
+#    disclaimer in the documentation and/or other materials provided
+#    with the distribution.
+#  * Neither the name of Willow Garage, Inc. nor the names of its
+#    contributors may be used to endorse or promote products derived
+#    from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+"""This file generates shell code for the setup.SHELL scripts to set environment variables."""
+
+from __future__ import print_function
+
+import argparse
+import copy
+import errno
+import os
+import platform
+import sys
+
+CATKIN_MARKER_FILE = '.catkin'
+
+system = platform.system()
+IS_DARWIN = (system == 'Darwin')
+IS_WINDOWS = (system == 'Windows')
+
+PATH_TO_ADD_SUFFIX = ['bin']
+if IS_WINDOWS:
+    # while catkin recommends putting dll's into bin, 3rd party packages often put dll's into lib
+    # since Windows finds dll's via the PATH variable, prepend it with path to lib
+    PATH_TO_ADD_SUFFIX.extend([['lib', os.path.join('lib', 'x86_64-linux-gnu')]])
+
+# subfolder of workspace prepended to CMAKE_PREFIX_PATH
+ENV_VAR_SUBFOLDERS = {
+    'CMAKE_PREFIX_PATH': '',
+    'LD_LIBRARY_PATH' if not IS_DARWIN else 'DYLD_LIBRARY_PATH': ['lib', os.path.join('lib', 'x86_64-linux-gnu')],
+    'PATH': PATH_TO_ADD_SUFFIX,
+    'PKG_CONFIG_PATH': [os.path.join('lib', 'pkgconfig'), os.path.join('lib', 'x86_64-linux-gnu', 'pkgconfig')],
+    'PYTHONPATH': 'lib/python3/dist-packages',
+}
+
+
+def rollback_env_variables(environ, env_var_subfolders):
+    """
+    Generate shell code to reset environment variables.
+
+    by unrolling modifications based on all workspaces in CMAKE_PREFIX_PATH.
+    This does not cover modifications performed by environment hooks.
+    """
+    lines = []
+    unmodified_environ = copy.copy(environ)
+    for key in sorted(env_var_subfolders.keys()):
+        subfolders = env_var_subfolders[key]
+        if not isinstance(subfolders, list):
+            subfolders = [subfolders]
+        value = _rollback_env_variable(unmodified_environ, key, subfolders)
+        if value is not None:
+            environ[key] = value
+            lines.append(assignment(key, value))
+    if lines:
+        lines.insert(0, comment('reset environment variables by unrolling modifications based on all workspaces in CMAKE_PREFIX_PATH'))
+    return lines
+
+
+def _rollback_env_variable(environ, name, subfolders):
+    """
+    For each catkin workspace in CMAKE_PREFIX_PATH remove the first entry from env[NAME] matching workspace + subfolder.
+
+    :param subfolders: list of str '' or subfoldername that may start with '/'
+    :returns: the updated value of the environment variable.
+    """
+    value = environ[name] if name in environ else ''
+    env_paths = [path for path in value.split(os.pathsep) if path]
+    value_modified = False
+    for subfolder in subfolders:
+        if subfolder:
+            if subfolder.startswith(os.path.sep) or (os.path.altsep and subfolder.startswith(os.path.altsep)):
+                subfolder = subfolder[1:]
+            if subfolder.endswith(os.path.sep) or (os.path.altsep and subfolder.endswith(os.path.altsep)):
+                subfolder = subfolder[:-1]
+        for ws_path in _get_workspaces(environ, include_fuerte=True, include_non_existing=True):
+            path_to_find = os.path.join(ws_path, subfolder) if subfolder else ws_path
+            path_to_remove = None
+            for env_path in env_paths:
+                env_path_clean = env_path[:-1] if env_path and env_path[-1] in [os.path.sep, os.path.altsep] else env_path
+                if env_path_clean == path_to_find:
+                    path_to_remove = env_path
+                    break
+            if path_to_remove:
+                env_paths.remove(path_to_remove)
+                value_modified = True
+    new_value = os.pathsep.join(env_paths)
+    return new_value if value_modified else None
+
+
+def _get_workspaces(environ, include_fuerte=False, include_non_existing=False):
+    """
+    Based on CMAKE_PREFIX_PATH return all catkin workspaces.
+
+    :param include_fuerte: The flag if paths starting with '/opt/ros/fuerte' should be considered workspaces, ``bool``
+    """
+    # get all cmake prefix paths
+    env_name = 'CMAKE_PREFIX_PATH'
+    value = environ[env_name] if env_name in environ else ''
+    paths = [path for path in value.split(os.pathsep) if path]
+    # remove non-workspace paths
+    workspaces = [path for path in paths if os.path.isfile(os.path.join(path, CATKIN_MARKER_FILE)) or (include_fuerte and path.startswith('/opt/ros/fuerte')) or (include_non_existing and not os.path.exists(path))]
+    return workspaces
+
+
+def prepend_env_variables(environ, env_var_subfolders, workspaces):
+    """Generate shell code to prepend environment variables for the all workspaces."""
+    lines = []
+    lines.append(comment('prepend folders of workspaces to environment variables'))
+
+    paths = [path for path in workspaces.split(os.pathsep) if path]
+
+    prefix = _prefix_env_variable(environ, 'CMAKE_PREFIX_PATH', paths, '')
+    lines.append(prepend(environ, 'CMAKE_PREFIX_PATH', prefix))
+
+    for key in sorted(key for key in env_var_subfolders.keys() if key != 'CMAKE_PREFIX_PATH'):
+        subfolder = env_var_subfolders[key]
+        prefix = _prefix_env_variable(environ, key, paths, subfolder)
+        lines.append(prepend(environ, key, prefix))
+    return lines
+
+
+def _prefix_env_variable(environ, name, paths, subfolders):
+    """
+    Return the prefix to prepend to the environment variable NAME.
+
+    Adding any path in NEW_PATHS_STR without creating duplicate or empty items.
+    """
+    value = environ[name] if name in environ else ''
+    environ_paths = [path for path in value.split(os.pathsep) if path]
+    checked_paths = []
+    for path in paths:
+        if not isinstance(subfolders, list):
+            subfolders = [subfolders]
+        for subfolder in subfolders:
+            path_tmp = path
+            if subfolder:
+                path_tmp = os.path.join(path_tmp, subfolder)
+            # skip nonexistent paths
+            if not os.path.exists(path_tmp):
+                continue
+            # exclude any path already in env and any path we already added
+            if path_tmp not in environ_paths and path_tmp not in checked_paths:
+                checked_paths.append(path_tmp)
+    prefix_str = os.pathsep.join(checked_paths)
+    if prefix_str != '' and environ_paths:
+        prefix_str += os.pathsep
+    return prefix_str
+
+
+def assignment(key, value):
+    if not IS_WINDOWS:
+        return 'export %s="%s"' % (key, value)
+    else:
+        return 'set %s=%s' % (key, value)
+
+
+def comment(msg):
+    if not IS_WINDOWS:
+        return '# %s' % msg
+    else:
+        return 'REM %s' % msg
+
+
+def prepend(environ, key, prefix):
+    if key not in environ or not environ[key]:
+        return assignment(key, prefix)
+    if not IS_WINDOWS:
+        return 'export %s="%s$%s"' % (key, prefix, key)
+    else:
+        return 'set %s=%s%%%s%%' % (key, prefix, key)
+
+
+def find_env_hooks(environ, cmake_prefix_path):
+    """Generate shell code with found environment hooks for the all workspaces."""
+    lines = []
+    lines.append(comment('found environment hooks in workspaces'))
+
+    generic_env_hooks = []
+    generic_env_hooks_workspace = []
+    specific_env_hooks = []
+    specific_env_hooks_workspace = []
+    generic_env_hooks_by_filename = {}
+    specific_env_hooks_by_filename = {}
+    generic_env_hook_ext = 'bat' if IS_WINDOWS else 'sh'
+    specific_env_hook_ext = environ['CATKIN_SHELL'] if not IS_WINDOWS and 'CATKIN_SHELL' in environ and environ['CATKIN_SHELL'] else None
+    # remove non-workspace paths
+    workspaces = [path for path in cmake_prefix_path.split(os.pathsep) if path and os.path.isfile(os.path.join(path, CATKIN_MARKER_FILE))]
+    for workspace in reversed(workspaces):
+        env_hook_dir = os.path.join(workspace, 'etc', 'catkin', 'profile.d')
+        if os.path.isdir(env_hook_dir):
+            for filename in sorted(os.listdir(env_hook_dir)):
+                if filename.endswith('.%s' % generic_env_hook_ext):
+                    # remove previous env hook with same name if present
+                    if filename in generic_env_hooks_by_filename:
+                        i = generic_env_hooks.index(generic_env_hooks_by_filename[filename])
+                        generic_env_hooks.pop(i)
+                        generic_env_hooks_workspace.pop(i)
+                    # append env hook
+                    generic_env_hooks.append(os.path.join(env_hook_dir, filename))
+                    generic_env_hooks_workspace.append(workspace)
+                    generic_env_hooks_by_filename[filename] = generic_env_hooks[-1]
+                elif specific_env_hook_ext is not None and filename.endswith('.%s' % specific_env_hook_ext):
+                    # remove previous env hook with same name if present
+                    if filename in specific_env_hooks_by_filename:
+                        i = specific_env_hooks.index(specific_env_hooks_by_filename[filename])
+                        specific_env_hooks.pop(i)
+                        specific_env_hooks_workspace.pop(i)
+                    # append env hook
+                    specific_env_hooks.append(os.path.join(env_hook_dir, filename))
+                    specific_env_hooks_workspace.append(workspace)
+                    specific_env_hooks_by_filename[filename] = specific_env_hooks[-1]
+    env_hooks = generic_env_hooks + specific_env_hooks
+    env_hooks_workspace = generic_env_hooks_workspace + specific_env_hooks_workspace
+    count = len(env_hooks)
+    lines.append(assignment('_CATKIN_ENVIRONMENT_HOOKS_COUNT', count))
+    for i in range(count):
+        lines.append(assignment('_CATKIN_ENVIRONMENT_HOOKS_%d' % i, env_hooks[i]))
+        lines.append(assignment('_CATKIN_ENVIRONMENT_HOOKS_%d_WORKSPACE' % i, env_hooks_workspace[i]))
+    return lines
+
+
+def _parse_arguments(args=None):
+    parser = argparse.ArgumentParser(description='Generates code blocks for the setup.SHELL script.')
+    parser.add_argument('--extend', action='store_true', help='Skip unsetting previous environment variables to extend context')
+    parser.add_argument('--local', action='store_true', help='Only consider this prefix path and ignore other prefix path in the environment')
+    return parser.parse_known_args(args=args)[0]
+
+
+if __name__ == '__main__':
+    try:
+        try:
+            args = _parse_arguments()
+        except Exception as e:
+            print(e, file=sys.stderr)
+            sys.exit(1)
+
+        if not args.local:
+            # environment at generation time
+            CMAKE_PREFIX_PATH = r'/home/simhe502/catkin_ws/devel;/opt/ros/noetic'.split(';')
+        else:
+            # don't consider any other prefix path than this one
+            CMAKE_PREFIX_PATH = []
+        # prepend current workspace if not already part of CPP
+        base_path = os.path.dirname(__file__)
+        # CMAKE_PREFIX_PATH uses forward slash on all platforms, but __file__ is platform dependent
+        # base_path on Windows contains backward slashes, need to be converted to forward slashes before comparison
+        if os.path.sep != '/':
+            base_path = base_path.replace(os.path.sep, '/')
+
+        if base_path not in CMAKE_PREFIX_PATH:
+            CMAKE_PREFIX_PATH.insert(0, base_path)
+        CMAKE_PREFIX_PATH = os.pathsep.join(CMAKE_PREFIX_PATH)
+
+        environ = dict(os.environ)
+        lines = []
+        if not args.extend:
+            lines += rollback_env_variables(environ, ENV_VAR_SUBFOLDERS)
+        lines += prepend_env_variables(environ, ENV_VAR_SUBFOLDERS, CMAKE_PREFIX_PATH)
+        lines += find_env_hooks(environ, CMAKE_PREFIX_PATH)
+        print('\n'.join(lines))
+
+        # need to explicitly flush the output
+        sys.stdout.flush()
+    except IOError as e:
+        # and catch potential "broken pipe" if stdout is not writable
+        # which can happen when piping the output to a file but the disk is full
+        if e.errno == errno.EPIPE:
+            print(e, file=sys.stderr)
+            sys.exit(2)
+        raise
+
+    sys.exit(0)
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/stamps/mav_nonlinear_mpc/interrogate_setup_dot_py.py.stamp b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/stamps/mav_nonlinear_mpc/interrogate_setup_dot_py.py.stamp
new file mode 100644
index 0000000..5e25fbf
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/stamps/mav_nonlinear_mpc/interrogate_setup_dot_py.py.stamp
@@ -0,0 +1,255 @@
+# Software License Agreement (BSD License)
+#
+# Copyright (c) 2012, Willow Garage, Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+#  * Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+#  * Redistributions in binary form must reproduce the above
+#    copyright notice, this list of conditions and the following
+#    disclaimer in the documentation and/or other materials provided
+#    with the distribution.
+#  * Neither the name of Willow Garage, Inc. nor the names of its
+#    contributors may be used to endorse or promote products derived
+#    from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+from __future__ import print_function
+
+import os
+import runpy
+import sys
+from argparse import ArgumentParser
+
+setup_modules = []
+
+try:
+    import distutils.core
+    setup_modules.append(distutils.core)
+except ImportError:
+    pass
+
+try:
+    import setuptools
+    setup_modules.append(setuptools)
+except ImportError:
+    pass
+
+assert setup_modules, 'Must have distutils or setuptools installed'
+
+
+def _get_locations(pkgs, package_dir):
+    """
+    Based on setuptools logic and the package_dir dict, builds a dict of location roots for each pkg in pkgs.
+
+    See http://docs.python.org/distutils/setupscript.html
+
+    :returns: a dict {pkgname: root} for each pkgname in pkgs (and each of their parents)
+    """
+    # package_dir contains a dict {package_name: relativepath}
+    # Example {'': 'src', 'foo': 'lib', 'bar': 'lib2'}
+    #
+    # '' means where to look for any package unless a parent package
+    # is listed so package bar.pot is expected at lib2/bar/pot,
+    # whereas package sup.dee is expected at src/sup/dee
+    #
+    # if package_dir does not state anything about a package,
+    # setuptool expects the package folder to be in the root of the
+    # project
+    locations = {}
+    allprefix = package_dir.get('', '')
+    for pkg in pkgs:
+        parent_location = None
+        splits = pkg.split('.')
+        # we iterate over compound name from parent to child
+        # so once we found parent, children just append to their parent
+        for key_len in range(len(splits)):
+            key = '.'.join(splits[:key_len + 1])
+            if key not in locations:
+                if key in package_dir:
+                    locations[key] = package_dir[key]
+                elif parent_location is not None:
+                    locations[key] = os.path.join(parent_location, splits[key_len])
+                else:
+                    locations[key] = os.path.join(allprefix, key)
+            parent_location = locations[key]
+    return locations
+
+
+def generate_cmake_file(package_name, version, scripts, package_dir, pkgs, modules, setup_module=None):
+    """
+    Generate lines to add to a cmake file which will set variables.
+
+    :param version: str, format 'int.int.int'
+    :param scripts: [list of str]: relative paths to scripts
+    :param package_dir: {modulename: path}
+    :param pkgs: [list of str] python_packages declared in catkin package
+    :param modules: [list of str] python modules
+    :param setup_module: str, setuptools or distutils
+    """
+    prefix = '%s_SETUP_PY' % package_name
+    result = []
+    if setup_module:
+        result.append(r'set(%s_SETUP_MODULE "%s")' % (prefix, setup_module))
+    result.append(r'set(%s_VERSION "%s")' % (prefix, version))
+    result.append(r'set(%s_SCRIPTS "%s")' % (prefix, ';'.join(scripts)))
+
+    # Remove packages with '.' separators.
+    #
+    # setuptools allows specifying submodules in other folders than
+    # their parent
+    #
+    # The symlink approach of catkin does not work with such submodules.
+    # In the common case, this does not matter as the submodule is
+    # within the containing module.  We verify this assumption, and if
+    # it passes, we remove submodule packages.
+    locations = _get_locations(pkgs, package_dir)
+    for pkgname, location in locations.items():
+        if '.' not in pkgname:
+            continue
+        splits = pkgname.split('.')
+        # hack: ignore write-combining setup.py files for msg and srv files
+        if splits[1] in ['msg', 'srv']:
+            continue
+        # check every child has the same root folder as its parent
+        root_name = splits[0]
+        root_location = location
+        for _ in range(len(splits) - 1):
+            root_location = os.path.dirname(root_location)
+        if root_location != locations[root_name]:
+            raise RuntimeError(
+                'catkin_export_python does not support setup.py files that combine across multiple directories: %s in %s, %s in %s' % (pkgname, location, root_name, locations[root_name]))
+
+    # If checks pass, remove all submodules
+    pkgs = [p for p in pkgs if '.' not in p]
+
+    resolved_pkgs = []
+    for pkg in pkgs:
+        resolved_pkgs += [locations[pkg]]
+
+    result.append(r'set(%s_PACKAGES "%s")' % (prefix, ';'.join(pkgs)))
+    result.append(r'set(%s_PACKAGE_DIRS "%s")' % (prefix, ';'.join(resolved_pkgs).replace('\\', '/')))
+
+    # skip modules which collide with package names
+    filtered_modules = []
+    for modname in modules:
+        splits = modname.split('.')
+        # check all parents too
+        equals_package = [('.'.join(splits[:-i]) in locations) for i in range(len(splits))]
+        if any(equals_package):
+            continue
+        filtered_modules.append(modname)
+    module_locations = _get_locations(filtered_modules, package_dir)
+
+    result.append(r'set(%s_MODULES "%s")' % (prefix, ';'.join(['%s.py' % m.replace('.', '/') for m in filtered_modules])))
+    result.append(r'set(%s_MODULE_DIRS "%s")' % (prefix, ';'.join([module_locations[m] for m in filtered_modules]).replace('\\', '/')))
+
+    return result
+
+
+def _create_mock_setup_function(setup_module, package_name, outfile):
+    """
+    Create a function to call instead of distutils.core.setup or setuptools.setup.
+
+    It just captures some args and writes them into a file that can be used from cmake.
+
+    :param package_name: name of the package
+    :param outfile: filename that cmake will use afterwards
+    :returns: a function to replace disutils.core.setup and setuptools.setup
+    """
+
+    def setup(*args, **kwargs):
+        """Check kwargs and write a scriptfile."""
+        if 'version' not in kwargs:
+            sys.stderr.write("\n*** Unable to find 'version' in setup.py of %s\n" % package_name)
+            raise RuntimeError('version not found in setup.py')
+        version = kwargs['version']
+        package_dir = kwargs.get('package_dir', {})
+
+        pkgs = kwargs.get('packages', [])
+        scripts = kwargs.get('scripts', [])
+        modules = kwargs.get('py_modules', [])
+
+        unsupported_args = [
+            'entry_points',
+            'exclude_package_data',
+            'ext_modules ',
+            'ext_package',
+            'include_package_data',
+            'namespace_packages',
+            'setup_requires',
+            'use_2to3',
+            'zip_safe']
+        used_unsupported_args = [arg for arg in unsupported_args if arg in kwargs]
+        if used_unsupported_args:
+            sys.stderr.write('*** Arguments %s to setup() not supported in catkin devel space in setup.py of %s\n' % (used_unsupported_args, package_name))
+
+        result = generate_cmake_file(package_name=package_name,
+                                     version=version,
+                                     scripts=scripts,
+                                     package_dir=package_dir,
+                                     pkgs=pkgs,
+                                     modules=modules,
+                                     setup_module=setup_module)
+        with open(outfile, 'w') as out:
+            out.write('\n'.join(result))
+
+    return setup
+
+
+def main():
+    """Script main, parses arguments and invokes Dummy.setup indirectly."""
+    parser = ArgumentParser(description='Utility to read setup.py values from cmake macros. Creates a file with CMake set commands setting variables.')
+    parser.add_argument('package_name', help='Name of catkin package')
+    parser.add_argument('setupfile_path', help='Full path to setup.py')
+    parser.add_argument('outfile', help='Where to write result to')
+
+    args = parser.parse_args()
+
+    # print("%s" % sys.argv)
+    # PACKAGE_NAME = sys.argv[1]
+    # OUTFILE = sys.argv[3]
+    # print("Interrogating setup.py for package %s into %s " % (PACKAGE_NAME, OUTFILE),
+    #      file=sys.stderr)
+
+    # print("executing %s" % args.setupfile_path)
+
+    # be sure you're in the directory containing
+    # setup.py so the sys.path manipulation works,
+    # so the import of __version__ works
+    os.chdir(os.path.dirname(os.path.abspath(args.setupfile_path)))
+
+    # patch setup() function of distutils and setuptools for the
+    # context of evaluating setup.py
+    backup_modules = {}
+    try:
+
+        for module in setup_modules:
+            backup_modules[id(module)] = module.setup
+            module.setup = _create_mock_setup_function(
+                setup_module=module.__name__, package_name=args.package_name, outfile=args.outfile)
+
+        runpy.run_path(args.setupfile_path)
+    finally:
+        for module in setup_modules:
+            module.setup = backup_modules[id(module)]
+
+
+if __name__ == '__main__':
+    main()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/stamps/mav_nonlinear_mpc/package.xml.stamp b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/stamps/mav_nonlinear_mpc/package.xml.stamp
new file mode 100644
index 0000000..cd6a522
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/stamps/mav_nonlinear_mpc/package.xml.stamp
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+<package format="2">
+  <name>mav_nonlinear_mpc</name>
+  <version>1.0.0</version>
+  <description>
+    Nonlinear model predictive controller for trajectory tracking of multirotor system
+  </description>
+
+  <maintainer email="mina.kamel@mavt.ethz.com">Mina Kamel</maintainer>
+
+  <license>BSD</license>
+
+  <buildtool_depend>catkin</buildtool_depend>
+  <buildtool_depend>catkin_simple</buildtool_depend>
+
+  <depend>std_msgs</depend>
+  <depend>cmake_modules</depend>
+  <depend>roscpp</depend>
+  <depend>dynamic_reconfigure</depend>
+  <depend>tf</depend>
+</package>
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/stamps/mav_nonlinear_mpc/pkg.pc.em.stamp b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/stamps/mav_nonlinear_mpc/pkg.pc.em.stamp
new file mode 100644
index 0000000..549fb75
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/stamps/mav_nonlinear_mpc/pkg.pc.em.stamp
@@ -0,0 +1,8 @@
+prefix=@PROJECT_SPACE_DIR
+
+Name: @(CATKIN_PACKAGE_PREFIX + PROJECT_NAME)
+Description: Description of @PROJECT_NAME
+Version: @PROJECT_VERSION
+Cflags: @(' '.join(['-I%s' % include for include in PROJECT_PKG_CONFIG_INCLUDE_DIRS]))
+Libs: -L${prefix}/lib @(' '.join(PKG_CONFIG_LIBRARIES_WITH_PREFIX))
+Requires: @(PROJECT_CATKIN_DEPENDS)
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/cmake_install.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/cmake_install.cmake
new file mode 100644
index 0000000..00a9cf0
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/cmake_install.cmake
@@ -0,0 +1,228 @@
+# Install script for directory: /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# Set the install prefix
+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
+  set(CMAKE_INSTALL_PREFIX "/usr/local")
+endif()
+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+  if(BUILD_TYPE)
+    string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+           CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+  else()
+    set(CMAKE_INSTALL_CONFIG_NAME "Release")
+  endif()
+  message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+endif()
+
+# Set the component getting installed.
+if(NOT CMAKE_INSTALL_COMPONENT)
+  if(COMPONENT)
+    message(STATUS "Install component: \"${COMPONENT}\"")
+    set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+  else()
+    set(CMAKE_INSTALL_COMPONENT)
+  endif()
+endif()
+
+# Install shared libraries without execute permission?
+if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
+  set(CMAKE_INSTALL_SO_NO_EXE "1")
+endif()
+
+# Is this installation the result of a crosscompile?
+if(NOT DEFINED CMAKE_CROSSCOMPILING)
+  set(CMAKE_CROSSCOMPILING "FALSE")
+endif()
+
+if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT)
+  
+      if (NOT EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}")
+        file(MAKE_DIRECTORY "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}")
+      endif()
+      if (NOT EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/.catkin")
+        file(WRITE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/.catkin" "")
+      endif()
+endif()
+
+if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT)
+  list(APPEND CMAKE_ABSOLUTE_DESTINATION_FILES
+   "/usr/local/_setup_util.py")
+  if(CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION)
+    message(WARNING "ABSOLUTE path INSTALL DESTINATION : ${CMAKE_ABSOLUTE_DESTINATION_FILES}")
+  endif()
+  if(CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION)
+    message(FATAL_ERROR "ABSOLUTE path INSTALL DESTINATION forbidden (by caller): ${CMAKE_ABSOLUTE_DESTINATION_FILES}")
+  endif()
+file(INSTALL DESTINATION "/usr/local" TYPE PROGRAM FILES "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/_setup_util.py")
+endif()
+
+if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT)
+  list(APPEND CMAKE_ABSOLUTE_DESTINATION_FILES
+   "/usr/local/env.sh")
+  if(CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION)
+    message(WARNING "ABSOLUTE path INSTALL DESTINATION : ${CMAKE_ABSOLUTE_DESTINATION_FILES}")
+  endif()
+  if(CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION)
+    message(FATAL_ERROR "ABSOLUTE path INSTALL DESTINATION forbidden (by caller): ${CMAKE_ABSOLUTE_DESTINATION_FILES}")
+  endif()
+file(INSTALL DESTINATION "/usr/local" TYPE PROGRAM FILES "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/env.sh")
+endif()
+
+if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT)
+  list(APPEND CMAKE_ABSOLUTE_DESTINATION_FILES
+   "/usr/local/setup.bash;/usr/local/local_setup.bash")
+  if(CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION)
+    message(WARNING "ABSOLUTE path INSTALL DESTINATION : ${CMAKE_ABSOLUTE_DESTINATION_FILES}")
+  endif()
+  if(CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION)
+    message(FATAL_ERROR "ABSOLUTE path INSTALL DESTINATION forbidden (by caller): ${CMAKE_ABSOLUTE_DESTINATION_FILES}")
+  endif()
+file(INSTALL DESTINATION "/usr/local" TYPE FILE FILES
+    "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/setup.bash"
+    "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/local_setup.bash"
+    )
+endif()
+
+if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT)
+  list(APPEND CMAKE_ABSOLUTE_DESTINATION_FILES
+   "/usr/local/setup.sh;/usr/local/local_setup.sh")
+  if(CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION)
+    message(WARNING "ABSOLUTE path INSTALL DESTINATION : ${CMAKE_ABSOLUTE_DESTINATION_FILES}")
+  endif()
+  if(CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION)
+    message(FATAL_ERROR "ABSOLUTE path INSTALL DESTINATION forbidden (by caller): ${CMAKE_ABSOLUTE_DESTINATION_FILES}")
+  endif()
+file(INSTALL DESTINATION "/usr/local" TYPE FILE FILES
+    "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/setup.sh"
+    "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/local_setup.sh"
+    )
+endif()
+
+if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT)
+  list(APPEND CMAKE_ABSOLUTE_DESTINATION_FILES
+   "/usr/local/setup.zsh;/usr/local/local_setup.zsh")
+  if(CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION)
+    message(WARNING "ABSOLUTE path INSTALL DESTINATION : ${CMAKE_ABSOLUTE_DESTINATION_FILES}")
+  endif()
+  if(CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION)
+    message(FATAL_ERROR "ABSOLUTE path INSTALL DESTINATION forbidden (by caller): ${CMAKE_ABSOLUTE_DESTINATION_FILES}")
+  endif()
+file(INSTALL DESTINATION "/usr/local" TYPE FILE FILES
+    "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/setup.zsh"
+    "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/local_setup.zsh"
+    )
+endif()
+
+if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT)
+  list(APPEND CMAKE_ABSOLUTE_DESTINATION_FILES
+   "/usr/local/.rosinstall")
+  if(CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION)
+    message(WARNING "ABSOLUTE path INSTALL DESTINATION : ${CMAKE_ABSOLUTE_DESTINATION_FILES}")
+  endif()
+  if(CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION)
+    message(FATAL_ERROR "ABSOLUTE path INSTALL DESTINATION forbidden (by caller): ${CMAKE_ABSOLUTE_DESTINATION_FILES}")
+  endif()
+file(INSTALL DESTINATION "/usr/local" TYPE FILE FILES "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/.rosinstall")
+endif()
+
+if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT)
+  file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include/mav_nonlinear_mpc" TYPE FILE FILES "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel/include/mav_nonlinear_mpc/NonLinearMPCConfig.h")
+endif()
+
+if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT)
+  file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/python3/dist-packages/mav_nonlinear_mpc" TYPE FILE FILES "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel/lib/python3/dist-packages/mav_nonlinear_mpc/__init__.py")
+endif()
+
+if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT)
+  execute_process(COMMAND "/usr/bin/python3" -m compileall "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel/lib/python3/dist-packages/mav_nonlinear_mpc/cfg")
+endif()
+
+if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT)
+  file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/python3/dist-packages/mav_nonlinear_mpc" TYPE DIRECTORY FILES "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel/lib/python3/dist-packages/mav_nonlinear_mpc/cfg")
+endif()
+
+if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT)
+  if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libmav_nonlinear_mpc_lib.so" AND
+     NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libmav_nonlinear_mpc_lib.so")
+    file(RPATH_CHECK
+         FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libmav_nonlinear_mpc_lib.so"
+         RPATH "")
+  endif()
+  file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE SHARED_LIBRARY FILES "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel/lib/libmav_nonlinear_mpc_lib.so")
+  if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libmav_nonlinear_mpc_lib.so" AND
+     NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libmav_nonlinear_mpc_lib.so")
+    file(RPATH_CHANGE
+         FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libmav_nonlinear_mpc_lib.so"
+         OLD_RPATH "/opt/ros/noetic/lib:"
+         NEW_RPATH "")
+    if(CMAKE_INSTALL_DO_STRIP)
+      execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libmav_nonlinear_mpc_lib.so")
+    endif()
+  endif()
+endif()
+
+if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT)
+endif()
+
+if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT)
+  if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/mav_nonlinear_mpc/nonlinear_mpc_node" AND
+     NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/mav_nonlinear_mpc/nonlinear_mpc_node")
+    file(RPATH_CHECK
+         FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/mav_nonlinear_mpc/nonlinear_mpc_node"
+         RPATH "")
+  endif()
+  file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/mav_nonlinear_mpc" TYPE EXECUTABLE FILES "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node")
+  if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/mav_nonlinear_mpc/nonlinear_mpc_node" AND
+     NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/mav_nonlinear_mpc/nonlinear_mpc_node")
+    file(RPATH_CHANGE
+         FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/mav_nonlinear_mpc/nonlinear_mpc_node"
+         OLD_RPATH "/opt/ros/noetic/lib:/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel/lib:"
+         NEW_RPATH "")
+    if(CMAKE_INSTALL_DO_STRIP)
+      execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/mav_nonlinear_mpc/nonlinear_mpc_node")
+    endif()
+  endif()
+endif()
+
+if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT)
+  file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include" TYPE DIRECTORY FILES "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/include/" FILES_MATCHING REGEX "/[^/]*\\.h$" REGEX "/[^/]*\\.hpp$" REGEX "/\\.svn$" EXCLUDE)
+endif()
+
+if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT)
+  file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/share/mav_nonlinear_mpc/launch" TYPE DIRECTORY FILES "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/launch/")
+endif()
+
+if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT)
+  file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig" TYPE FILE FILES "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/mav_nonlinear_mpc.pc")
+endif()
+
+if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT)
+  file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/share/mav_nonlinear_mpc/cmake" TYPE FILE FILES
+    "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/mav_nonlinear_mpcConfig.cmake"
+    "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/catkin_generated/installspace/mav_nonlinear_mpcConfig-version.cmake"
+    )
+endif()
+
+if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT)
+  file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/share/mav_nonlinear_mpc" TYPE FILE FILES "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/package.xml")
+endif()
+
+if(NOT CMAKE_INSTALL_LOCAL_ONLY)
+  # Include the install script for each subdirectory.
+  include("/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/cmake_install.cmake")
+
+endif()
+
+if(CMAKE_INSTALL_COMPONENT)
+  set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")
+else()
+  set(CMAKE_INSTALL_MANIFEST "install_manifest.txt")
+endif()
+
+string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT
+       "${CMAKE_INSTALL_MANIFEST_FILES}")
+file(WRITE "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/${CMAKE_INSTALL_MANIFEST}"
+     "${CMAKE_INSTALL_MANIFEST_CONTENT}")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/devel/.catkin b/mav_control_rw/mav_nonlinear_mpc/solver/devel/.catkin
new file mode 100644
index 0000000..ddcc1bc
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/devel/.catkin
@@ -0,0 +1 @@
+/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
\ No newline at end of file
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/devel/.rosinstall b/mav_control_rw/mav_nonlinear_mpc/solver/devel/.rosinstall
new file mode 100644
index 0000000..0da04c9
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/devel/.rosinstall
@@ -0,0 +1,2 @@
+- setup-file:
+    local-name: /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel/setup.sh
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/devel/_setup_util.py b/mav_control_rw/mav_nonlinear_mpc/solver/devel/_setup_util.py
new file mode 100644
index 0000000..cb721f7
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/devel/_setup_util.py
@@ -0,0 +1,304 @@
+#!/usr/bin/python3
+# -*- coding: utf-8 -*-
+
+# Software License Agreement (BSD License)
+#
+# Copyright (c) 2012, Willow Garage, Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+#  * Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+#  * Redistributions in binary form must reproduce the above
+#    copyright notice, this list of conditions and the following
+#    disclaimer in the documentation and/or other materials provided
+#    with the distribution.
+#  * Neither the name of Willow Garage, Inc. nor the names of its
+#    contributors may be used to endorse or promote products derived
+#    from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+"""This file generates shell code for the setup.SHELL scripts to set environment variables."""
+
+from __future__ import print_function
+
+import argparse
+import copy
+import errno
+import os
+import platform
+import sys
+
+CATKIN_MARKER_FILE = '.catkin'
+
+system = platform.system()
+IS_DARWIN = (system == 'Darwin')
+IS_WINDOWS = (system == 'Windows')
+
+PATH_TO_ADD_SUFFIX = ['bin']
+if IS_WINDOWS:
+    # while catkin recommends putting dll's into bin, 3rd party packages often put dll's into lib
+    # since Windows finds dll's via the PATH variable, prepend it with path to lib
+    PATH_TO_ADD_SUFFIX.extend([['lib', os.path.join('lib', 'x86_64-linux-gnu')]])
+
+# subfolder of workspace prepended to CMAKE_PREFIX_PATH
+ENV_VAR_SUBFOLDERS = {
+    'CMAKE_PREFIX_PATH': '',
+    'LD_LIBRARY_PATH' if not IS_DARWIN else 'DYLD_LIBRARY_PATH': ['lib', os.path.join('lib', 'x86_64-linux-gnu')],
+    'PATH': PATH_TO_ADD_SUFFIX,
+    'PKG_CONFIG_PATH': [os.path.join('lib', 'pkgconfig'), os.path.join('lib', 'x86_64-linux-gnu', 'pkgconfig')],
+    'PYTHONPATH': 'lib/python3/dist-packages',
+}
+
+
+def rollback_env_variables(environ, env_var_subfolders):
+    """
+    Generate shell code to reset environment variables.
+
+    by unrolling modifications based on all workspaces in CMAKE_PREFIX_PATH.
+    This does not cover modifications performed by environment hooks.
+    """
+    lines = []
+    unmodified_environ = copy.copy(environ)
+    for key in sorted(env_var_subfolders.keys()):
+        subfolders = env_var_subfolders[key]
+        if not isinstance(subfolders, list):
+            subfolders = [subfolders]
+        value = _rollback_env_variable(unmodified_environ, key, subfolders)
+        if value is not None:
+            environ[key] = value
+            lines.append(assignment(key, value))
+    if lines:
+        lines.insert(0, comment('reset environment variables by unrolling modifications based on all workspaces in CMAKE_PREFIX_PATH'))
+    return lines
+
+
+def _rollback_env_variable(environ, name, subfolders):
+    """
+    For each catkin workspace in CMAKE_PREFIX_PATH remove the first entry from env[NAME] matching workspace + subfolder.
+
+    :param subfolders: list of str '' or subfoldername that may start with '/'
+    :returns: the updated value of the environment variable.
+    """
+    value = environ[name] if name in environ else ''
+    env_paths = [path for path in value.split(os.pathsep) if path]
+    value_modified = False
+    for subfolder in subfolders:
+        if subfolder:
+            if subfolder.startswith(os.path.sep) or (os.path.altsep and subfolder.startswith(os.path.altsep)):
+                subfolder = subfolder[1:]
+            if subfolder.endswith(os.path.sep) or (os.path.altsep and subfolder.endswith(os.path.altsep)):
+                subfolder = subfolder[:-1]
+        for ws_path in _get_workspaces(environ, include_fuerte=True, include_non_existing=True):
+            path_to_find = os.path.join(ws_path, subfolder) if subfolder else ws_path
+            path_to_remove = None
+            for env_path in env_paths:
+                env_path_clean = env_path[:-1] if env_path and env_path[-1] in [os.path.sep, os.path.altsep] else env_path
+                if env_path_clean == path_to_find:
+                    path_to_remove = env_path
+                    break
+            if path_to_remove:
+                env_paths.remove(path_to_remove)
+                value_modified = True
+    new_value = os.pathsep.join(env_paths)
+    return new_value if value_modified else None
+
+
+def _get_workspaces(environ, include_fuerte=False, include_non_existing=False):
+    """
+    Based on CMAKE_PREFIX_PATH return all catkin workspaces.
+
+    :param include_fuerte: The flag if paths starting with '/opt/ros/fuerte' should be considered workspaces, ``bool``
+    """
+    # get all cmake prefix paths
+    env_name = 'CMAKE_PREFIX_PATH'
+    value = environ[env_name] if env_name in environ else ''
+    paths = [path for path in value.split(os.pathsep) if path]
+    # remove non-workspace paths
+    workspaces = [path for path in paths if os.path.isfile(os.path.join(path, CATKIN_MARKER_FILE)) or (include_fuerte and path.startswith('/opt/ros/fuerte')) or (include_non_existing and not os.path.exists(path))]
+    return workspaces
+
+
+def prepend_env_variables(environ, env_var_subfolders, workspaces):
+    """Generate shell code to prepend environment variables for the all workspaces."""
+    lines = []
+    lines.append(comment('prepend folders of workspaces to environment variables'))
+
+    paths = [path for path in workspaces.split(os.pathsep) if path]
+
+    prefix = _prefix_env_variable(environ, 'CMAKE_PREFIX_PATH', paths, '')
+    lines.append(prepend(environ, 'CMAKE_PREFIX_PATH', prefix))
+
+    for key in sorted(key for key in env_var_subfolders.keys() if key != 'CMAKE_PREFIX_PATH'):
+        subfolder = env_var_subfolders[key]
+        prefix = _prefix_env_variable(environ, key, paths, subfolder)
+        lines.append(prepend(environ, key, prefix))
+    return lines
+
+
+def _prefix_env_variable(environ, name, paths, subfolders):
+    """
+    Return the prefix to prepend to the environment variable NAME.
+
+    Adding any path in NEW_PATHS_STR without creating duplicate or empty items.
+    """
+    value = environ[name] if name in environ else ''
+    environ_paths = [path for path in value.split(os.pathsep) if path]
+    checked_paths = []
+    for path in paths:
+        if not isinstance(subfolders, list):
+            subfolders = [subfolders]
+        for subfolder in subfolders:
+            path_tmp = path
+            if subfolder:
+                path_tmp = os.path.join(path_tmp, subfolder)
+            # skip nonexistent paths
+            if not os.path.exists(path_tmp):
+                continue
+            # exclude any path already in env and any path we already added
+            if path_tmp not in environ_paths and path_tmp not in checked_paths:
+                checked_paths.append(path_tmp)
+    prefix_str = os.pathsep.join(checked_paths)
+    if prefix_str != '' and environ_paths:
+        prefix_str += os.pathsep
+    return prefix_str
+
+
+def assignment(key, value):
+    if not IS_WINDOWS:
+        return 'export %s="%s"' % (key, value)
+    else:
+        return 'set %s=%s' % (key, value)
+
+
+def comment(msg):
+    if not IS_WINDOWS:
+        return '# %s' % msg
+    else:
+        return 'REM %s' % msg
+
+
+def prepend(environ, key, prefix):
+    if key not in environ or not environ[key]:
+        return assignment(key, prefix)
+    if not IS_WINDOWS:
+        return 'export %s="%s$%s"' % (key, prefix, key)
+    else:
+        return 'set %s=%s%%%s%%' % (key, prefix, key)
+
+
+def find_env_hooks(environ, cmake_prefix_path):
+    """Generate shell code with found environment hooks for the all workspaces."""
+    lines = []
+    lines.append(comment('found environment hooks in workspaces'))
+
+    generic_env_hooks = []
+    generic_env_hooks_workspace = []
+    specific_env_hooks = []
+    specific_env_hooks_workspace = []
+    generic_env_hooks_by_filename = {}
+    specific_env_hooks_by_filename = {}
+    generic_env_hook_ext = 'bat' if IS_WINDOWS else 'sh'
+    specific_env_hook_ext = environ['CATKIN_SHELL'] if not IS_WINDOWS and 'CATKIN_SHELL' in environ and environ['CATKIN_SHELL'] else None
+    # remove non-workspace paths
+    workspaces = [path for path in cmake_prefix_path.split(os.pathsep) if path and os.path.isfile(os.path.join(path, CATKIN_MARKER_FILE))]
+    for workspace in reversed(workspaces):
+        env_hook_dir = os.path.join(workspace, 'etc', 'catkin', 'profile.d')
+        if os.path.isdir(env_hook_dir):
+            for filename in sorted(os.listdir(env_hook_dir)):
+                if filename.endswith('.%s' % generic_env_hook_ext):
+                    # remove previous env hook with same name if present
+                    if filename in generic_env_hooks_by_filename:
+                        i = generic_env_hooks.index(generic_env_hooks_by_filename[filename])
+                        generic_env_hooks.pop(i)
+                        generic_env_hooks_workspace.pop(i)
+                    # append env hook
+                    generic_env_hooks.append(os.path.join(env_hook_dir, filename))
+                    generic_env_hooks_workspace.append(workspace)
+                    generic_env_hooks_by_filename[filename] = generic_env_hooks[-1]
+                elif specific_env_hook_ext is not None and filename.endswith('.%s' % specific_env_hook_ext):
+                    # remove previous env hook with same name if present
+                    if filename in specific_env_hooks_by_filename:
+                        i = specific_env_hooks.index(specific_env_hooks_by_filename[filename])
+                        specific_env_hooks.pop(i)
+                        specific_env_hooks_workspace.pop(i)
+                    # append env hook
+                    specific_env_hooks.append(os.path.join(env_hook_dir, filename))
+                    specific_env_hooks_workspace.append(workspace)
+                    specific_env_hooks_by_filename[filename] = specific_env_hooks[-1]
+    env_hooks = generic_env_hooks + specific_env_hooks
+    env_hooks_workspace = generic_env_hooks_workspace + specific_env_hooks_workspace
+    count = len(env_hooks)
+    lines.append(assignment('_CATKIN_ENVIRONMENT_HOOKS_COUNT', count))
+    for i in range(count):
+        lines.append(assignment('_CATKIN_ENVIRONMENT_HOOKS_%d' % i, env_hooks[i]))
+        lines.append(assignment('_CATKIN_ENVIRONMENT_HOOKS_%d_WORKSPACE' % i, env_hooks_workspace[i]))
+    return lines
+
+
+def _parse_arguments(args=None):
+    parser = argparse.ArgumentParser(description='Generates code blocks for the setup.SHELL script.')
+    parser.add_argument('--extend', action='store_true', help='Skip unsetting previous environment variables to extend context')
+    parser.add_argument('--local', action='store_true', help='Only consider this prefix path and ignore other prefix path in the environment')
+    return parser.parse_known_args(args=args)[0]
+
+
+if __name__ == '__main__':
+    try:
+        try:
+            args = _parse_arguments()
+        except Exception as e:
+            print(e, file=sys.stderr)
+            sys.exit(1)
+
+        if not args.local:
+            # environment at generation time
+            CMAKE_PREFIX_PATH = r'/home/simhe502/catkin_ws/devel;/opt/ros/noetic'.split(';')
+        else:
+            # don't consider any other prefix path than this one
+            CMAKE_PREFIX_PATH = []
+        # prepend current workspace if not already part of CPP
+        base_path = os.path.dirname(__file__)
+        # CMAKE_PREFIX_PATH uses forward slash on all platforms, but __file__ is platform dependent
+        # base_path on Windows contains backward slashes, need to be converted to forward slashes before comparison
+        if os.path.sep != '/':
+            base_path = base_path.replace(os.path.sep, '/')
+
+        if base_path not in CMAKE_PREFIX_PATH:
+            CMAKE_PREFIX_PATH.insert(0, base_path)
+        CMAKE_PREFIX_PATH = os.pathsep.join(CMAKE_PREFIX_PATH)
+
+        environ = dict(os.environ)
+        lines = []
+        if not args.extend:
+            lines += rollback_env_variables(environ, ENV_VAR_SUBFOLDERS)
+        lines += prepend_env_variables(environ, ENV_VAR_SUBFOLDERS, CMAKE_PREFIX_PATH)
+        lines += find_env_hooks(environ, CMAKE_PREFIX_PATH)
+        print('\n'.join(lines))
+
+        # need to explicitly flush the output
+        sys.stdout.flush()
+    except IOError as e:
+        # and catch potential "broken pipe" if stdout is not writable
+        # which can happen when piping the output to a file but the disk is full
+        if e.errno == errno.EPIPE:
+            print(e, file=sys.stderr)
+            sys.exit(2)
+        raise
+
+    sys.exit(0)
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/devel/cmake.lock b/mav_control_rw/mav_nonlinear_mpc/solver/devel/cmake.lock
new file mode 100644
index 0000000..e69de29
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/devel/env.sh b/mav_control_rw/mav_nonlinear_mpc/solver/devel/env.sh
new file mode 100644
index 0000000..8aa9d24
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/devel/env.sh
@@ -0,0 +1,16 @@
+#!/usr/bin/env sh
+# generated from catkin/cmake/templates/env.sh.in
+
+if [ $# -eq 0 ] ; then
+  /bin/echo "Usage: env.sh COMMANDS"
+  /bin/echo "Calling env.sh without arguments is not supported anymore. Instead spawn a subshell and source a setup file manually."
+  exit 1
+fi
+
+# ensure to not use different shell type which was set before
+CATKIN_SHELL=sh
+
+# source setup.sh from same directory as this file
+_CATKIN_SETUP_DIR=$(cd "`dirname "$0"`" > /dev/null && pwd)
+. "$_CATKIN_SETUP_DIR/setup.sh"
+exec "$@"
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/devel/include/mav_nonlinear_mpc/NonLinearMPCConfig.h b/mav_control_rw/mav_nonlinear_mpc/solver/devel/include/mav_nonlinear_mpc/NonLinearMPCConfig.h
new file mode 100644
index 0000000..db8f954
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/devel/include/mav_nonlinear_mpc/NonLinearMPCConfig.h
@@ -0,0 +1,770 @@
+//#line 2 "/opt/ros/noetic/share/dynamic_reconfigure/cmake/../templates/ConfigType.h.template"
+// *********************************************************
+//
+// File autogenerated for the mav_nonlinear_mpc package
+// by the dynamic_reconfigure package.
+// Please do not edit.
+//
+// ********************************************************/
+
+#ifndef __mav_nonlinear_mpc__NONLINEARMPCCONFIG_H__
+#define __mav_nonlinear_mpc__NONLINEARMPCCONFIG_H__
+
+#if __cplusplus >= 201103L
+#define DYNAMIC_RECONFIGURE_FINAL final
+#else
+#define DYNAMIC_RECONFIGURE_FINAL
+#endif
+
+#include <dynamic_reconfigure/config_tools.h>
+#include <limits>
+#include <ros/node_handle.h>
+#include <dynamic_reconfigure/ConfigDescription.h>
+#include <dynamic_reconfigure/ParamDescription.h>
+#include <dynamic_reconfigure/Group.h>
+#include <dynamic_reconfigure/config_init_mutex.h>
+#include <boost/any.hpp>
+
+namespace mav_nonlinear_mpc
+{
+  class NonLinearMPCConfigStatics;
+
+  class NonLinearMPCConfig
+  {
+  public:
+    class AbstractParamDescription : public dynamic_reconfigure::ParamDescription
+    {
+    public:
+      AbstractParamDescription(std::string n, std::string t, uint32_t l,
+          std::string d, std::string e)
+      {
+        name = n;
+        type = t;
+        level = l;
+        description = d;
+        edit_method = e;
+      }
+      virtual ~AbstractParamDescription() = default;
+
+      virtual void clamp(NonLinearMPCConfig &config, const NonLinearMPCConfig &max, const NonLinearMPCConfig &min) const = 0;
+      virtual void calcLevel(uint32_t &level, const NonLinearMPCConfig &config1, const NonLinearMPCConfig &config2) const = 0;
+      virtual void fromServer(const ros::NodeHandle &nh, NonLinearMPCConfig &config) const = 0;
+      virtual void toServer(const ros::NodeHandle &nh, const NonLinearMPCConfig &config) const = 0;
+      virtual bool fromMessage(const dynamic_reconfigure::Config &msg, NonLinearMPCConfig &config) const = 0;
+      virtual void toMessage(dynamic_reconfigure::Config &msg, const NonLinearMPCConfig &config) const = 0;
+      virtual void getValue(const NonLinearMPCConfig &config, boost::any &val) const = 0;
+    };
+
+    typedef boost::shared_ptr<AbstractParamDescription> AbstractParamDescriptionPtr;
+    typedef boost::shared_ptr<const AbstractParamDescription> AbstractParamDescriptionConstPtr;
+
+    // Final keyword added to class because it has virtual methods and inherits
+    // from a class with a non-virtual destructor.
+    template <class T>
+    class ParamDescription DYNAMIC_RECONFIGURE_FINAL : public AbstractParamDescription
+    {
+    public:
+      ParamDescription(std::string a_name, std::string a_type, uint32_t a_level,
+          std::string a_description, std::string a_edit_method, T NonLinearMPCConfig::* a_f) :
+        AbstractParamDescription(a_name, a_type, a_level, a_description, a_edit_method),
+        field(a_f)
+      {}
+
+      T NonLinearMPCConfig::* field;
+
+      virtual void clamp(NonLinearMPCConfig &config, const NonLinearMPCConfig &max, const NonLinearMPCConfig &min) const override
+      {
+        if (config.*field > max.*field)
+          config.*field = max.*field;
+
+        if (config.*field < min.*field)
+          config.*field = min.*field;
+      }
+
+      virtual void calcLevel(uint32_t &comb_level, const NonLinearMPCConfig &config1, const NonLinearMPCConfig &config2) const override
+      {
+        if (config1.*field != config2.*field)
+          comb_level |= level;
+      }
+
+      virtual void fromServer(const ros::NodeHandle &nh, NonLinearMPCConfig &config) const override
+      {
+        nh.getParam(name, config.*field);
+      }
+
+      virtual void toServer(const ros::NodeHandle &nh, const NonLinearMPCConfig &config) const override
+      {
+        nh.setParam(name, config.*field);
+      }
+
+      virtual bool fromMessage(const dynamic_reconfigure::Config &msg, NonLinearMPCConfig &config) const override
+      {
+        return dynamic_reconfigure::ConfigTools::getParameter(msg, name, config.*field);
+      }
+
+      virtual void toMessage(dynamic_reconfigure::Config &msg, const NonLinearMPCConfig &config) const override
+      {
+        dynamic_reconfigure::ConfigTools::appendParameter(msg, name, config.*field);
+      }
+
+      virtual void getValue(const NonLinearMPCConfig &config, boost::any &val) const override
+      {
+        val = config.*field;
+      }
+    };
+
+    class AbstractGroupDescription : public dynamic_reconfigure::Group
+    {
+      public:
+      AbstractGroupDescription(std::string n, std::string t, int p, int i, bool s)
+      {
+        name = n;
+        type = t;
+        parent = p;
+        state = s;
+        id = i;
+      }
+
+      virtual ~AbstractGroupDescription() = default;
+
+      std::vector<AbstractParamDescriptionConstPtr> abstract_parameters;
+      bool state;
+
+      virtual void toMessage(dynamic_reconfigure::Config &msg, const boost::any &config) const = 0;
+      virtual bool fromMessage(const dynamic_reconfigure::Config &msg, boost::any &config) const =0;
+      virtual void updateParams(boost::any &cfg, NonLinearMPCConfig &top) const= 0;
+      virtual void setInitialState(boost::any &cfg) const = 0;
+
+
+      void convertParams()
+      {
+        for(std::vector<AbstractParamDescriptionConstPtr>::const_iterator i = abstract_parameters.begin(); i != abstract_parameters.end(); ++i)
+        {
+          parameters.push_back(dynamic_reconfigure::ParamDescription(**i));
+        }
+      }
+    };
+
+    typedef boost::shared_ptr<AbstractGroupDescription> AbstractGroupDescriptionPtr;
+    typedef boost::shared_ptr<const AbstractGroupDescription> AbstractGroupDescriptionConstPtr;
+
+    // Final keyword added to class because it has virtual methods and inherits
+    // from a class with a non-virtual destructor.
+    template<class T, class PT>
+    class GroupDescription DYNAMIC_RECONFIGURE_FINAL : public AbstractGroupDescription
+    {
+    public:
+      GroupDescription(std::string a_name, std::string a_type, int a_parent, int a_id, bool a_s, T PT::* a_f) : AbstractGroupDescription(a_name, a_type, a_parent, a_id, a_s), field(a_f)
+      {
+      }
+
+      GroupDescription(const GroupDescription<T, PT>& g): AbstractGroupDescription(g.name, g.type, g.parent, g.id, g.state), field(g.field), groups(g.groups)
+      {
+        parameters = g.parameters;
+        abstract_parameters = g.abstract_parameters;
+      }
+
+      virtual bool fromMessage(const dynamic_reconfigure::Config &msg, boost::any &cfg) const override
+      {
+        PT* config = boost::any_cast<PT*>(cfg);
+        if(!dynamic_reconfigure::ConfigTools::getGroupState(msg, name, (*config).*field))
+          return false;
+
+        for(std::vector<AbstractGroupDescriptionConstPtr>::const_iterator i = groups.begin(); i != groups.end(); ++i)
+        {
+          boost::any n = &((*config).*field);
+          if(!(*i)->fromMessage(msg, n))
+            return false;
+        }
+
+        return true;
+      }
+
+      virtual void setInitialState(boost::any &cfg) const override
+      {
+        PT* config = boost::any_cast<PT*>(cfg);
+        T* group = &((*config).*field);
+        group->state = state;
+
+        for(std::vector<AbstractGroupDescriptionConstPtr>::const_iterator i = groups.begin(); i != groups.end(); ++i)
+        {
+          boost::any n = boost::any(&((*config).*field));
+          (*i)->setInitialState(n);
+        }
+
+      }
+
+      virtual void updateParams(boost::any &cfg, NonLinearMPCConfig &top) const override
+      {
+        PT* config = boost::any_cast<PT*>(cfg);
+
+        T* f = &((*config).*field);
+        f->setParams(top, abstract_parameters);
+
+        for(std::vector<AbstractGroupDescriptionConstPtr>::const_iterator i = groups.begin(); i != groups.end(); ++i)
+        {
+          boost::any n = &((*config).*field);
+          (*i)->updateParams(n, top);
+        }
+      }
+
+      virtual void toMessage(dynamic_reconfigure::Config &msg, const boost::any &cfg) const override
+      {
+        const PT config = boost::any_cast<PT>(cfg);
+        dynamic_reconfigure::ConfigTools::appendGroup<T>(msg, name, id, parent, config.*field);
+
+        for(std::vector<AbstractGroupDescriptionConstPtr>::const_iterator i = groups.begin(); i != groups.end(); ++i)
+        {
+          (*i)->toMessage(msg, config.*field);
+        }
+      }
+
+      T PT::* field;
+      std::vector<NonLinearMPCConfig::AbstractGroupDescriptionConstPtr> groups;
+    };
+
+class DEFAULT
+{
+  public:
+    DEFAULT()
+    {
+      state = true;
+      name = "Default";
+    }
+
+    void setParams(NonLinearMPCConfig &config, const std::vector<AbstractParamDescriptionConstPtr> params)
+    {
+      for (std::vector<AbstractParamDescriptionConstPtr>::const_iterator _i = params.begin(); _i != params.end(); ++_i)
+      {
+        boost::any val;
+        (*_i)->getValue(config, val);
+
+        if("q_x"==(*_i)->name){q_x = boost::any_cast<double>(val);}
+        if("q_y"==(*_i)->name){q_y = boost::any_cast<double>(val);}
+        if("q_z"==(*_i)->name){q_z = boost::any_cast<double>(val);}
+        if("q_vx"==(*_i)->name){q_vx = boost::any_cast<double>(val);}
+        if("q_vy"==(*_i)->name){q_vy = boost::any_cast<double>(val);}
+        if("q_vz"==(*_i)->name){q_vz = boost::any_cast<double>(val);}
+        if("q_roll"==(*_i)->name){q_roll = boost::any_cast<double>(val);}
+        if("q_pitch"==(*_i)->name){q_pitch = boost::any_cast<double>(val);}
+        if("r_roll"==(*_i)->name){r_roll = boost::any_cast<double>(val);}
+        if("r_pitch"==(*_i)->name){r_pitch = boost::any_cast<double>(val);}
+        if("r_thrust"==(*_i)->name){r_thrust = boost::any_cast<double>(val);}
+        if("roll_max"==(*_i)->name){roll_max = boost::any_cast<double>(val);}
+        if("pitch_max"==(*_i)->name){pitch_max = boost::any_cast<double>(val);}
+        if("yaw_rate_max"==(*_i)->name){yaw_rate_max = boost::any_cast<double>(val);}
+        if("thrust_min"==(*_i)->name){thrust_min = boost::any_cast<double>(val);}
+        if("thrust_max"==(*_i)->name){thrust_max = boost::any_cast<double>(val);}
+        if("K_yaw"==(*_i)->name){K_yaw = boost::any_cast<double>(val);}
+        if("Ki_xy"==(*_i)->name){Ki_xy = boost::any_cast<double>(val);}
+        if("Ki_altitude"==(*_i)->name){Ki_altitude = boost::any_cast<double>(val);}
+        if("enable_offset_free"==(*_i)->name){enable_offset_free = boost::any_cast<bool>(val);}
+        if("enable_integrator"==(*_i)->name){enable_integrator = boost::any_cast<bool>(val);}
+      }
+    }
+
+    double q_x;
+double q_y;
+double q_z;
+double q_vx;
+double q_vy;
+double q_vz;
+double q_roll;
+double q_pitch;
+double r_roll;
+double r_pitch;
+double r_thrust;
+double roll_max;
+double pitch_max;
+double yaw_rate_max;
+double thrust_min;
+double thrust_max;
+double K_yaw;
+double Ki_xy;
+double Ki_altitude;
+bool enable_offset_free;
+bool enable_integrator;
+
+    bool state;
+    std::string name;
+
+    
+}groups;
+
+
+
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      double q_x;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      double q_y;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      double q_z;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      double q_vx;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      double q_vy;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      double q_vz;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      double q_roll;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      double q_pitch;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      double r_roll;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      double r_pitch;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      double r_thrust;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      double roll_max;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      double pitch_max;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      double yaw_rate_max;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      double thrust_min;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      double thrust_max;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      double K_yaw;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      double Ki_xy;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      double Ki_altitude;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      bool enable_offset_free;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      bool enable_integrator;
+//#line 231 "/opt/ros/noetic/share/dynamic_reconfigure/cmake/../templates/ConfigType.h.template"
+
+    bool __fromMessage__(dynamic_reconfigure::Config &msg)
+    {
+      const std::vector<AbstractParamDescriptionConstPtr> &__param_descriptions__ = __getParamDescriptions__();
+      const std::vector<AbstractGroupDescriptionConstPtr> &__group_descriptions__ = __getGroupDescriptions__();
+
+      int count = 0;
+      for (std::vector<AbstractParamDescriptionConstPtr>::const_iterator i = __param_descriptions__.begin(); i != __param_descriptions__.end(); ++i)
+        if ((*i)->fromMessage(msg, *this))
+          count++;
+
+      for (std::vector<AbstractGroupDescriptionConstPtr>::const_iterator i = __group_descriptions__.begin(); i != __group_descriptions__.end(); i ++)
+      {
+        if ((*i)->id == 0)
+        {
+          boost::any n = boost::any(this);
+          (*i)->updateParams(n, *this);
+          (*i)->fromMessage(msg, n);
+        }
+      }
+
+      if (count != dynamic_reconfigure::ConfigTools::size(msg))
+      {
+        ROS_ERROR("NonLinearMPCConfig::__fromMessage__ called with an unexpected parameter.");
+        ROS_ERROR("Booleans:");
+        for (unsigned int i = 0; i < msg.bools.size(); i++)
+          ROS_ERROR("  %s", msg.bools[i].name.c_str());
+        ROS_ERROR("Integers:");
+        for (unsigned int i = 0; i < msg.ints.size(); i++)
+          ROS_ERROR("  %s", msg.ints[i].name.c_str());
+        ROS_ERROR("Doubles:");
+        for (unsigned int i = 0; i < msg.doubles.size(); i++)
+          ROS_ERROR("  %s", msg.doubles[i].name.c_str());
+        ROS_ERROR("Strings:");
+        for (unsigned int i = 0; i < msg.strs.size(); i++)
+          ROS_ERROR("  %s", msg.strs[i].name.c_str());
+        // @todo Check that there are no duplicates. Make this error more
+        // explicit.
+        return false;
+      }
+      return true;
+    }
+
+    // This version of __toMessage__ is used during initialization of
+    // statics when __getParamDescriptions__ can't be called yet.
+    void __toMessage__(dynamic_reconfigure::Config &msg, const std::vector<AbstractParamDescriptionConstPtr> &__param_descriptions__, const std::vector<AbstractGroupDescriptionConstPtr> &__group_descriptions__) const
+    {
+      dynamic_reconfigure::ConfigTools::clear(msg);
+      for (std::vector<AbstractParamDescriptionConstPtr>::const_iterator i = __param_descriptions__.begin(); i != __param_descriptions__.end(); ++i)
+        (*i)->toMessage(msg, *this);
+
+      for (std::vector<AbstractGroupDescriptionConstPtr>::const_iterator i = __group_descriptions__.begin(); i != __group_descriptions__.end(); ++i)
+      {
+        if((*i)->id == 0)
+        {
+          (*i)->toMessage(msg, *this);
+        }
+      }
+    }
+
+    void __toMessage__(dynamic_reconfigure::Config &msg) const
+    {
+      const std::vector<AbstractParamDescriptionConstPtr> &__param_descriptions__ = __getParamDescriptions__();
+      const std::vector<AbstractGroupDescriptionConstPtr> &__group_descriptions__ = __getGroupDescriptions__();
+      __toMessage__(msg, __param_descriptions__, __group_descriptions__);
+    }
+
+    void __toServer__(const ros::NodeHandle &nh) const
+    {
+      const std::vector<AbstractParamDescriptionConstPtr> &__param_descriptions__ = __getParamDescriptions__();
+      for (std::vector<AbstractParamDescriptionConstPtr>::const_iterator i = __param_descriptions__.begin(); i != __param_descriptions__.end(); ++i)
+        (*i)->toServer(nh, *this);
+    }
+
+    void __fromServer__(const ros::NodeHandle &nh)
+    {
+      static bool setup=false;
+
+      const std::vector<AbstractParamDescriptionConstPtr> &__param_descriptions__ = __getParamDescriptions__();
+      for (std::vector<AbstractParamDescriptionConstPtr>::const_iterator i = __param_descriptions__.begin(); i != __param_descriptions__.end(); ++i)
+        (*i)->fromServer(nh, *this);
+
+      const std::vector<AbstractGroupDescriptionConstPtr> &__group_descriptions__ = __getGroupDescriptions__();
+      for (std::vector<AbstractGroupDescriptionConstPtr>::const_iterator i = __group_descriptions__.begin(); i != __group_descriptions__.end(); i++){
+        if (!setup && (*i)->id == 0) {
+          setup = true;
+          boost::any n = boost::any(this);
+          (*i)->setInitialState(n);
+        }
+      }
+    }
+
+    void __clamp__()
+    {
+      const std::vector<AbstractParamDescriptionConstPtr> &__param_descriptions__ = __getParamDescriptions__();
+      const NonLinearMPCConfig &__max__ = __getMax__();
+      const NonLinearMPCConfig &__min__ = __getMin__();
+      for (std::vector<AbstractParamDescriptionConstPtr>::const_iterator i = __param_descriptions__.begin(); i != __param_descriptions__.end(); ++i)
+        (*i)->clamp(*this, __max__, __min__);
+    }
+
+    uint32_t __level__(const NonLinearMPCConfig &config) const
+    {
+      const std::vector<AbstractParamDescriptionConstPtr> &__param_descriptions__ = __getParamDescriptions__();
+      uint32_t level = 0;
+      for (std::vector<AbstractParamDescriptionConstPtr>::const_iterator i = __param_descriptions__.begin(); i != __param_descriptions__.end(); ++i)
+        (*i)->calcLevel(level, config, *this);
+      return level;
+    }
+
+    static const dynamic_reconfigure::ConfigDescription &__getDescriptionMessage__();
+    static const NonLinearMPCConfig &__getDefault__();
+    static const NonLinearMPCConfig &__getMax__();
+    static const NonLinearMPCConfig &__getMin__();
+    static const std::vector<AbstractParamDescriptionConstPtr> &__getParamDescriptions__();
+    static const std::vector<AbstractGroupDescriptionConstPtr> &__getGroupDescriptions__();
+
+  private:
+    static const NonLinearMPCConfigStatics *__get_statics__();
+  };
+
+  template <> // Max and min are ignored for strings.
+  inline void NonLinearMPCConfig::ParamDescription<std::string>::clamp(NonLinearMPCConfig &config, const NonLinearMPCConfig &max, const NonLinearMPCConfig &min) const
+  {
+    (void) config;
+    (void) min;
+    (void) max;
+    return;
+  }
+
+  class NonLinearMPCConfigStatics
+  {
+    friend class NonLinearMPCConfig;
+
+    NonLinearMPCConfigStatics()
+    {
+NonLinearMPCConfig::GroupDescription<NonLinearMPCConfig::DEFAULT, NonLinearMPCConfig> Default("Default", "", 0, 0, true, &NonLinearMPCConfig::groups);
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __min__.q_x = 0.001;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __max__.q_x = 200.0;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __default__.q_x = 50.0;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      Default.abstract_parameters.push_back(NonLinearMPCConfig::AbstractParamDescriptionConstPtr(new NonLinearMPCConfig::ParamDescription<double>("q_x", "double", 0, "Penality on x axis pos", "", &NonLinearMPCConfig::q_x)));
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __param_descriptions__.push_back(NonLinearMPCConfig::AbstractParamDescriptionConstPtr(new NonLinearMPCConfig::ParamDescription<double>("q_x", "double", 0, "Penality on x axis pos", "", &NonLinearMPCConfig::q_x)));
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __min__.q_y = 0.001;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __max__.q_y = 200.0;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __default__.q_y = 50.0;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      Default.abstract_parameters.push_back(NonLinearMPCConfig::AbstractParamDescriptionConstPtr(new NonLinearMPCConfig::ParamDescription<double>("q_y", "double", 0, "Penality on y axis pos", "", &NonLinearMPCConfig::q_y)));
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __param_descriptions__.push_back(NonLinearMPCConfig::AbstractParamDescriptionConstPtr(new NonLinearMPCConfig::ParamDescription<double>("q_y", "double", 0, "Penality on y axis pos", "", &NonLinearMPCConfig::q_y)));
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __min__.q_z = 0.001;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __max__.q_z = 200.0;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __default__.q_z = 80.0;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      Default.abstract_parameters.push_back(NonLinearMPCConfig::AbstractParamDescriptionConstPtr(new NonLinearMPCConfig::ParamDescription<double>("q_z", "double", 0, "Penality on z axis pos", "", &NonLinearMPCConfig::q_z)));
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __param_descriptions__.push_back(NonLinearMPCConfig::AbstractParamDescriptionConstPtr(new NonLinearMPCConfig::ParamDescription<double>("q_z", "double", 0, "Penality on z axis pos", "", &NonLinearMPCConfig::q_z)));
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __min__.q_vx = 0.001;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __max__.q_vx = 200.0;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __default__.q_vx = 20.0;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      Default.abstract_parameters.push_back(NonLinearMPCConfig::AbstractParamDescriptionConstPtr(new NonLinearMPCConfig::ParamDescription<double>("q_vx", "double", 0, "Penality on x axis vel", "", &NonLinearMPCConfig::q_vx)));
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __param_descriptions__.push_back(NonLinearMPCConfig::AbstractParamDescriptionConstPtr(new NonLinearMPCConfig::ParamDescription<double>("q_vx", "double", 0, "Penality on x axis vel", "", &NonLinearMPCConfig::q_vx)));
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __min__.q_vy = 0.001;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __max__.q_vy = 200.0;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __default__.q_vy = 20.0;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      Default.abstract_parameters.push_back(NonLinearMPCConfig::AbstractParamDescriptionConstPtr(new NonLinearMPCConfig::ParamDescription<double>("q_vy", "double", 0, "Penality on y axis vel", "", &NonLinearMPCConfig::q_vy)));
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __param_descriptions__.push_back(NonLinearMPCConfig::AbstractParamDescriptionConstPtr(new NonLinearMPCConfig::ParamDescription<double>("q_vy", "double", 0, "Penality on y axis vel", "", &NonLinearMPCConfig::q_vy)));
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __min__.q_vz = 0.001;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __max__.q_vz = 200.0;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __default__.q_vz = 35.0;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      Default.abstract_parameters.push_back(NonLinearMPCConfig::AbstractParamDescriptionConstPtr(new NonLinearMPCConfig::ParamDescription<double>("q_vz", "double", 0, "Penality on z axis vel", "", &NonLinearMPCConfig::q_vz)));
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __param_descriptions__.push_back(NonLinearMPCConfig::AbstractParamDescriptionConstPtr(new NonLinearMPCConfig::ParamDescription<double>("q_vz", "double", 0, "Penality on z axis vel", "", &NonLinearMPCConfig::q_vz)));
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __min__.q_roll = 0.001;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __max__.q_roll = 200.0;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __default__.q_roll = 20.0;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      Default.abstract_parameters.push_back(NonLinearMPCConfig::AbstractParamDescriptionConstPtr(new NonLinearMPCConfig::ParamDescription<double>("q_roll", "double", 0, "Penality on roll state", "", &NonLinearMPCConfig::q_roll)));
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __param_descriptions__.push_back(NonLinearMPCConfig::AbstractParamDescriptionConstPtr(new NonLinearMPCConfig::ParamDescription<double>("q_roll", "double", 0, "Penality on roll state", "", &NonLinearMPCConfig::q_roll)));
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __min__.q_pitch = 0.001;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __max__.q_pitch = 200.0;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __default__.q_pitch = 20.0;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      Default.abstract_parameters.push_back(NonLinearMPCConfig::AbstractParamDescriptionConstPtr(new NonLinearMPCConfig::ParamDescription<double>("q_pitch", "double", 0, "Penality on pitch state", "", &NonLinearMPCConfig::q_pitch)));
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __param_descriptions__.push_back(NonLinearMPCConfig::AbstractParamDescriptionConstPtr(new NonLinearMPCConfig::ParamDescription<double>("q_pitch", "double", 0, "Penality on pitch state", "", &NonLinearMPCConfig::q_pitch)));
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __min__.r_roll = 1.0;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __max__.r_roll = 200.0;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __default__.r_roll = 30.0;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      Default.abstract_parameters.push_back(NonLinearMPCConfig::AbstractParamDescriptionConstPtr(new NonLinearMPCConfig::ParamDescription<double>("r_roll", "double", 0, "Penality on roll cmd", "", &NonLinearMPCConfig::r_roll)));
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __param_descriptions__.push_back(NonLinearMPCConfig::AbstractParamDescriptionConstPtr(new NonLinearMPCConfig::ParamDescription<double>("r_roll", "double", 0, "Penality on roll cmd", "", &NonLinearMPCConfig::r_roll)));
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __min__.r_pitch = 1.0;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __max__.r_pitch = 200.0;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __default__.r_pitch = 30.0;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      Default.abstract_parameters.push_back(NonLinearMPCConfig::AbstractParamDescriptionConstPtr(new NonLinearMPCConfig::ParamDescription<double>("r_pitch", "double", 0, "Penality on pitch cmd", "", &NonLinearMPCConfig::r_pitch)));
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __param_descriptions__.push_back(NonLinearMPCConfig::AbstractParamDescriptionConstPtr(new NonLinearMPCConfig::ParamDescription<double>("r_pitch", "double", 0, "Penality on pitch cmd", "", &NonLinearMPCConfig::r_pitch)));
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __min__.r_thrust = 1.0;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __max__.r_thrust = 200.0;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __default__.r_thrust = 5.0;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      Default.abstract_parameters.push_back(NonLinearMPCConfig::AbstractParamDescriptionConstPtr(new NonLinearMPCConfig::ParamDescription<double>("r_thrust", "double", 0, "Penality on thrust cmd", "", &NonLinearMPCConfig::r_thrust)));
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __param_descriptions__.push_back(NonLinearMPCConfig::AbstractParamDescriptionConstPtr(new NonLinearMPCConfig::ParamDescription<double>("r_thrust", "double", 0, "Penality on thrust cmd", "", &NonLinearMPCConfig::r_thrust)));
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __min__.roll_max = 0.1;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __max__.roll_max = 1.0;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __default__.roll_max = 0.45;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      Default.abstract_parameters.push_back(NonLinearMPCConfig::AbstractParamDescriptionConstPtr(new NonLinearMPCConfig::ParamDescription<double>("roll_max", "double", 0, "max roll cmd [rad]", "", &NonLinearMPCConfig::roll_max)));
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __param_descriptions__.push_back(NonLinearMPCConfig::AbstractParamDescriptionConstPtr(new NonLinearMPCConfig::ParamDescription<double>("roll_max", "double", 0, "max roll cmd [rad]", "", &NonLinearMPCConfig::roll_max)));
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __min__.pitch_max = 0.1;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __max__.pitch_max = 1.0;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __default__.pitch_max = 0.45;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      Default.abstract_parameters.push_back(NonLinearMPCConfig::AbstractParamDescriptionConstPtr(new NonLinearMPCConfig::ParamDescription<double>("pitch_max", "double", 0, "max pitch cmd [rad]", "", &NonLinearMPCConfig::pitch_max)));
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __param_descriptions__.push_back(NonLinearMPCConfig::AbstractParamDescriptionConstPtr(new NonLinearMPCConfig::ParamDescription<double>("pitch_max", "double", 0, "max pitch cmd [rad]", "", &NonLinearMPCConfig::pitch_max)));
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __min__.yaw_rate_max = 0.1;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __max__.yaw_rate_max = 2.0;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __default__.yaw_rate_max = 1.5;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      Default.abstract_parameters.push_back(NonLinearMPCConfig::AbstractParamDescriptionConstPtr(new NonLinearMPCConfig::ParamDescription<double>("yaw_rate_max", "double", 0, "max yawrate cmd [rad/s]", "", &NonLinearMPCConfig::yaw_rate_max)));
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __param_descriptions__.push_back(NonLinearMPCConfig::AbstractParamDescriptionConstPtr(new NonLinearMPCConfig::ParamDescription<double>("yaw_rate_max", "double", 0, "max yawrate cmd [rad/s]", "", &NonLinearMPCConfig::yaw_rate_max)));
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __min__.thrust_min = 5.0;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __max__.thrust_min = 25.0;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __default__.thrust_min = 5.0;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      Default.abstract_parameters.push_back(NonLinearMPCConfig::AbstractParamDescriptionConstPtr(new NonLinearMPCConfig::ParamDescription<double>("thrust_min", "double", 0, "min thrust cmd [m/s2]", "", &NonLinearMPCConfig::thrust_min)));
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __param_descriptions__.push_back(NonLinearMPCConfig::AbstractParamDescriptionConstPtr(new NonLinearMPCConfig::ParamDescription<double>("thrust_min", "double", 0, "min thrust cmd [m/s2]", "", &NonLinearMPCConfig::thrust_min)));
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __min__.thrust_max = 5.0;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __max__.thrust_max = 25.0;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __default__.thrust_max = 15.0;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      Default.abstract_parameters.push_back(NonLinearMPCConfig::AbstractParamDescriptionConstPtr(new NonLinearMPCConfig::ParamDescription<double>("thrust_max", "double", 0, "max thrust cmd [m/s2]", "", &NonLinearMPCConfig::thrust_max)));
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __param_descriptions__.push_back(NonLinearMPCConfig::AbstractParamDescriptionConstPtr(new NonLinearMPCConfig::ParamDescription<double>("thrust_max", "double", 0, "max thrust cmd [m/s2]", "", &NonLinearMPCConfig::thrust_max)));
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __min__.K_yaw = 0.01;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __max__.K_yaw = 2.0;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __default__.K_yaw = 0.5;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      Default.abstract_parameters.push_back(NonLinearMPCConfig::AbstractParamDescriptionConstPtr(new NonLinearMPCConfig::ParamDescription<double>("K_yaw", "double", 0, "yaw gain", "", &NonLinearMPCConfig::K_yaw)));
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __param_descriptions__.push_back(NonLinearMPCConfig::AbstractParamDescriptionConstPtr(new NonLinearMPCConfig::ParamDescription<double>("K_yaw", "double", 0, "yaw gain", "", &NonLinearMPCConfig::K_yaw)));
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __min__.Ki_xy = 0.01;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __max__.Ki_xy = 3.0;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __default__.Ki_xy = 0.2;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      Default.abstract_parameters.push_back(NonLinearMPCConfig::AbstractParamDescriptionConstPtr(new NonLinearMPCConfig::ParamDescription<double>("Ki_xy", "double", 0, "integrator gain for xy", "", &NonLinearMPCConfig::Ki_xy)));
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __param_descriptions__.push_back(NonLinearMPCConfig::AbstractParamDescriptionConstPtr(new NonLinearMPCConfig::ParamDescription<double>("Ki_xy", "double", 0, "integrator gain for xy", "", &NonLinearMPCConfig::Ki_xy)));
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __min__.Ki_altitude = 0.01;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __max__.Ki_altitude = 3.0;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __default__.Ki_altitude = 0.2;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      Default.abstract_parameters.push_back(NonLinearMPCConfig::AbstractParamDescriptionConstPtr(new NonLinearMPCConfig::ParamDescription<double>("Ki_altitude", "double", 0, "integrator gain for altitude", "", &NonLinearMPCConfig::Ki_altitude)));
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __param_descriptions__.push_back(NonLinearMPCConfig::AbstractParamDescriptionConstPtr(new NonLinearMPCConfig::ParamDescription<double>("Ki_altitude", "double", 0, "integrator gain for altitude", "", &NonLinearMPCConfig::Ki_altitude)));
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __min__.enable_offset_free = 0;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __max__.enable_offset_free = 1;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __default__.enable_offset_free = 1;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      Default.abstract_parameters.push_back(NonLinearMPCConfig::AbstractParamDescriptionConstPtr(new NonLinearMPCConfig::ParamDescription<bool>("enable_offset_free", "bool", 0, "XY offset free MPC", "", &NonLinearMPCConfig::enable_offset_free)));
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __param_descriptions__.push_back(NonLinearMPCConfig::AbstractParamDescriptionConstPtr(new NonLinearMPCConfig::ParamDescription<bool>("enable_offset_free", "bool", 0, "XY offset free MPC", "", &NonLinearMPCConfig::enable_offset_free)));
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __min__.enable_integrator = 0;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __max__.enable_integrator = 1;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __default__.enable_integrator = 0;
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      Default.abstract_parameters.push_back(NonLinearMPCConfig::AbstractParamDescriptionConstPtr(new NonLinearMPCConfig::ParamDescription<bool>("enable_integrator", "bool", 0, "integral action", "", &NonLinearMPCConfig::enable_integrator)));
+//#line 291 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __param_descriptions__.push_back(NonLinearMPCConfig::AbstractParamDescriptionConstPtr(new NonLinearMPCConfig::ParamDescription<bool>("enable_integrator", "bool", 0, "integral action", "", &NonLinearMPCConfig::enable_integrator)));
+//#line 246 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      Default.convertParams();
+//#line 246 "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
+      __group_descriptions__.push_back(NonLinearMPCConfig::AbstractGroupDescriptionConstPtr(new NonLinearMPCConfig::GroupDescription<NonLinearMPCConfig::DEFAULT, NonLinearMPCConfig>(Default)));
+//#line 369 "/opt/ros/noetic/share/dynamic_reconfigure/cmake/../templates/ConfigType.h.template"
+
+      for (std::vector<NonLinearMPCConfig::AbstractGroupDescriptionConstPtr>::const_iterator i = __group_descriptions__.begin(); i != __group_descriptions__.end(); ++i)
+      {
+        __description_message__.groups.push_back(**i);
+      }
+      __max__.__toMessage__(__description_message__.max, __param_descriptions__, __group_descriptions__);
+      __min__.__toMessage__(__description_message__.min, __param_descriptions__, __group_descriptions__);
+      __default__.__toMessage__(__description_message__.dflt, __param_descriptions__, __group_descriptions__);
+    }
+    std::vector<NonLinearMPCConfig::AbstractParamDescriptionConstPtr> __param_descriptions__;
+    std::vector<NonLinearMPCConfig::AbstractGroupDescriptionConstPtr> __group_descriptions__;
+    NonLinearMPCConfig __max__;
+    NonLinearMPCConfig __min__;
+    NonLinearMPCConfig __default__;
+    dynamic_reconfigure::ConfigDescription __description_message__;
+
+    static const NonLinearMPCConfigStatics *get_instance()
+    {
+      // Split this off in a separate function because I know that
+      // instance will get initialized the first time get_instance is
+      // called, and I am guaranteeing that get_instance gets called at
+      // most once.
+      static NonLinearMPCConfigStatics instance;
+      return &instance;
+    }
+  };
+
+  inline const dynamic_reconfigure::ConfigDescription &NonLinearMPCConfig::__getDescriptionMessage__()
+  {
+    return __get_statics__()->__description_message__;
+  }
+
+  inline const NonLinearMPCConfig &NonLinearMPCConfig::__getDefault__()
+  {
+    return __get_statics__()->__default__;
+  }
+
+  inline const NonLinearMPCConfig &NonLinearMPCConfig::__getMax__()
+  {
+    return __get_statics__()->__max__;
+  }
+
+  inline const NonLinearMPCConfig &NonLinearMPCConfig::__getMin__()
+  {
+    return __get_statics__()->__min__;
+  }
+
+  inline const std::vector<NonLinearMPCConfig::AbstractParamDescriptionConstPtr> &NonLinearMPCConfig::__getParamDescriptions__()
+  {
+    return __get_statics__()->__param_descriptions__;
+  }
+
+  inline const std::vector<NonLinearMPCConfig::AbstractGroupDescriptionConstPtr> &NonLinearMPCConfig::__getGroupDescriptions__()
+  {
+    return __get_statics__()->__group_descriptions__;
+  }
+
+  inline const NonLinearMPCConfigStatics *NonLinearMPCConfig::__get_statics__()
+  {
+    const static NonLinearMPCConfigStatics *statics;
+
+    if (statics) // Common case
+      return statics;
+
+    boost::mutex::scoped_lock lock(dynamic_reconfigure::__init_mutex__);
+
+    if (statics) // In case we lost a race.
+      return statics;
+
+    statics = NonLinearMPCConfigStatics::get_instance();
+
+    return statics;
+  }
+
+
+}
+
+#undef DYNAMIC_RECONFIGURE_FINAL
+
+#endif // __NONLINEARMPCRECONFIGURATOR_H__
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/devel/lib/libmav_nonlinear_mpc_lib.so b/mav_control_rw/mav_nonlinear_mpc/solver/devel/lib/libmav_nonlinear_mpc_lib.so
new file mode 100644
index 0000000000000000000000000000000000000000..1f13a2b7a7b83fd73873af00e4149829caaaedf2
GIT binary patch
literal 333752
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%0A1$*8$S_)&a*Q>=Y6t4
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
E0HCZS)c^nh

literal 0
HcmV?d00001

diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node b/mav_control_rw/mav_nonlinear_mpc/solver/devel/lib/mav_nonlinear_mpc/nonlinear_mpc_node
new file mode 100644
index 0000000000000000000000000000000000000000..89d7309b9e8932db3f8dc65fd58440511a5db997
GIT binary patch
literal 329984
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
E0Ih9j(*OVf

literal 0
HcmV?d00001

diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/devel/lib/pkgconfig/mav_nonlinear_mpc.pc b/mav_control_rw/mav_nonlinear_mpc/solver/devel/lib/pkgconfig/mav_nonlinear_mpc.pc
new file mode 100644
index 0000000..2b18366
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/devel/lib/pkgconfig/mav_nonlinear_mpc.pc
@@ -0,0 +1,8 @@
+prefix=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel
+
+Name: mav_nonlinear_mpc
+Description: Description of mav_nonlinear_mpc
+Version: 1.0.0
+Cflags: -I/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel/include -I/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/include
+Libs: -L${prefix}/lib -lmav_nonlinear_mpc_lib
+Requires: std_msgs cmake_modules roscpp dynamic_reconfigure tf
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/devel/lib/python3/dist-packages/mav_nonlinear_mpc/__init__.py b/mav_control_rw/mav_nonlinear_mpc/solver/devel/lib/python3/dist-packages/mav_nonlinear_mpc/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/devel/lib/python3/dist-packages/mav_nonlinear_mpc/cfg/NonLinearMPCConfig.py b/mav_control_rw/mav_nonlinear_mpc/solver/devel/lib/python3/dist-packages/mav_nonlinear_mpc/cfg/NonLinearMPCConfig.py
new file mode 100644
index 0000000..0063e6f
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/devel/lib/python3/dist-packages/mav_nonlinear_mpc/cfg/NonLinearMPCConfig.py
@@ -0,0 +1,36 @@
+## *********************************************************
+##
+## File autogenerated for the mav_nonlinear_mpc package
+## by the dynamic_reconfigure package.
+## Please do not edit.
+##
+## ********************************************************/
+
+from dynamic_reconfigure.encoding import extract_params
+
+inf = float('inf')
+
+config_description = {'name': 'Default', 'type': '', 'state': True, 'cstate': 'true', 'id': 0, 'parent': 0, 'parameters': [{'name': 'q_x', 'type': 'double', 'default': 50.0, 'level': 0, 'description': 'Penality on x axis pos', 'min': 0.001, 'max': 200.0, 'srcline': 291, 'srcfile': '/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py', 'edit_method': '', 'ctype': 'double', 'cconsttype': 'const double'}, {'name': 'q_y', 'type': 'double', 'default': 50.0, 'level': 0, 'description': 'Penality on y axis pos', 'min': 0.001, 'max': 200.0, 'srcline': 291, 'srcfile': '/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py', 'edit_method': '', 'ctype': 'double', 'cconsttype': 'const double'}, {'name': 'q_z', 'type': 'double', 'default': 80.0, 'level': 0, 'description': 'Penality on z axis pos', 'min': 0.001, 'max': 200.0, 'srcline': 291, 'srcfile': '/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py', 'edit_method': '', 'ctype': 'double', 'cconsttype': 'const double'}, {'name': 'q_vx', 'type': 'double', 'default': 20.0, 'level': 0, 'description': 'Penality on x axis vel', 'min': 0.001, 'max': 200.0, 'srcline': 291, 'srcfile': '/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py', 'edit_method': '', 'ctype': 'double', 'cconsttype': 'const double'}, {'name': 'q_vy', 'type': 'double', 'default': 20.0, 'level': 0, 'description': 'Penality on y axis vel', 'min': 0.001, 'max': 200.0, 'srcline': 291, 'srcfile': '/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py', 'edit_method': '', 'ctype': 'double', 'cconsttype': 'const double'}, {'name': 'q_vz', 'type': 'double', 'default': 35.0, 'level': 0, 'description': 'Penality on z axis vel', 'min': 0.001, 'max': 200.0, 'srcline': 291, 'srcfile': '/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py', 'edit_method': '', 'ctype': 'double', 'cconsttype': 'const double'}, {'name': 'q_roll', 'type': 'double', 'default': 20.0, 'level': 0, 'description': 'Penality on roll state', 'min': 0.001, 'max': 200.0, 'srcline': 291, 'srcfile': '/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py', 'edit_method': '', 'ctype': 'double', 'cconsttype': 'const double'}, {'name': 'q_pitch', 'type': 'double', 'default': 20.0, 'level': 0, 'description': 'Penality on pitch state', 'min': 0.001, 'max': 200.0, 'srcline': 291, 'srcfile': '/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py', 'edit_method': '', 'ctype': 'double', 'cconsttype': 'const double'}, {'name': 'r_roll', 'type': 'double', 'default': 30.0, 'level': 0, 'description': 'Penality on roll cmd', 'min': 1.0, 'max': 200.0, 'srcline': 291, 'srcfile': '/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py', 'edit_method': '', 'ctype': 'double', 'cconsttype': 'const double'}, {'name': 'r_pitch', 'type': 'double', 'default': 30.0, 'level': 0, 'description': 'Penality on pitch cmd', 'min': 1.0, 'max': 200.0, 'srcline': 291, 'srcfile': '/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py', 'edit_method': '', 'ctype': 'double', 'cconsttype': 'const double'}, {'name': 'r_thrust', 'type': 'double', 'default': 5.0, 'level': 0, 'description': 'Penality on thrust cmd', 'min': 1.0, 'max': 200.0, 'srcline': 291, 'srcfile': '/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py', 'edit_method': '', 'ctype': 'double', 'cconsttype': 'const double'}, {'name': 'roll_max', 'type': 'double', 'default': 0.45, 'level': 0, 'description': 'max roll cmd [rad]', 'min': 0.1, 'max': 1.0, 'srcline': 291, 'srcfile': '/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py', 'edit_method': '', 'ctype': 'double', 'cconsttype': 'const double'}, {'name': 'pitch_max', 'type': 'double', 'default': 0.45, 'level': 0, 'description': 'max pitch cmd [rad]', 'min': 0.1, 'max': 1.0, 'srcline': 291, 'srcfile': '/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py', 'edit_method': '', 'ctype': 'double', 'cconsttype': 'const double'}, {'name': 'yaw_rate_max', 'type': 'double', 'default': 1.5, 'level': 0, 'description': 'max yawrate cmd [rad/s]', 'min': 0.1, 'max': 2.0, 'srcline': 291, 'srcfile': '/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py', 'edit_method': '', 'ctype': 'double', 'cconsttype': 'const double'}, {'name': 'thrust_min', 'type': 'double', 'default': 5.0, 'level': 0, 'description': 'min thrust cmd [m/s2]', 'min': 5.0, 'max': 25.0, 'srcline': 291, 'srcfile': '/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py', 'edit_method': '', 'ctype': 'double', 'cconsttype': 'const double'}, {'name': 'thrust_max', 'type': 'double', 'default': 15.0, 'level': 0, 'description': 'max thrust cmd [m/s2]', 'min': 5.0, 'max': 25.0, 'srcline': 291, 'srcfile': '/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py', 'edit_method': '', 'ctype': 'double', 'cconsttype': 'const double'}, {'name': 'K_yaw', 'type': 'double', 'default': 0.5, 'level': 0, 'description': 'yaw gain', 'min': 0.01, 'max': 2.0, 'srcline': 291, 'srcfile': '/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py', 'edit_method': '', 'ctype': 'double', 'cconsttype': 'const double'}, {'name': 'Ki_xy', 'type': 'double', 'default': 0.2, 'level': 0, 'description': 'integrator gain for xy', 'min': 0.01, 'max': 3.0, 'srcline': 291, 'srcfile': '/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py', 'edit_method': '', 'ctype': 'double', 'cconsttype': 'const double'}, {'name': 'Ki_altitude', 'type': 'double', 'default': 0.2, 'level': 0, 'description': 'integrator gain for altitude', 'min': 0.01, 'max': 3.0, 'srcline': 291, 'srcfile': '/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py', 'edit_method': '', 'ctype': 'double', 'cconsttype': 'const double'}, {'name': 'enable_offset_free', 'type': 'bool', 'default': True, 'level': 0, 'description': 'XY offset free MPC', 'min': False, 'max': True, 'srcline': 291, 'srcfile': '/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py', 'edit_method': '', 'ctype': 'bool', 'cconsttype': 'const bool'}, {'name': 'enable_integrator', 'type': 'bool', 'default': False, 'level': 0, 'description': 'integral action', 'min': False, 'max': True, 'srcline': 291, 'srcfile': '/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py', 'edit_method': '', 'ctype': 'bool', 'cconsttype': 'const bool'}], 'groups': [], 'srcline': 246, 'srcfile': '/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py', 'class': 'DEFAULT', 'parentclass': '', 'parentname': 'Default', 'field': 'default', 'upper': 'DEFAULT', 'lower': 'groups'}
+
+min = {}
+max = {}
+defaults = {}
+level = {}
+type = {}
+all_level = 0
+
+#def extract_params(config):
+#    params = []
+#    params.extend(config['parameters'])
+#    for group in config['groups']:
+#        params.extend(extract_params(group))
+#    return params
+
+for param in extract_params(config_description):
+    min[param['name']] = param['min']
+    max[param['name']] = param['max']
+    defaults[param['name']] = param['default']
+    level[param['name']] = param['level']
+    type[param['name']] = param['type']
+    all_level = all_level | param['level']
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/devel/lib/python3/dist-packages/mav_nonlinear_mpc/cfg/__init__.py b/mav_control_rw/mav_nonlinear_mpc/solver/devel/lib/python3/dist-packages/mav_nonlinear_mpc/cfg/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/devel/local_setup.bash b/mav_control_rw/mav_nonlinear_mpc/solver/devel/local_setup.bash
new file mode 100644
index 0000000..7da0d97
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/devel/local_setup.bash
@@ -0,0 +1,8 @@
+#!/usr/bin/env bash
+# generated from catkin/cmake/templates/local_setup.bash.in
+
+CATKIN_SHELL=bash
+
+# source setup.sh from same directory as this file
+_CATKIN_SETUP_DIR=$(builtin cd "`dirname "${BASH_SOURCE[0]}"`" > /dev/null && pwd)
+. "$_CATKIN_SETUP_DIR/setup.sh" --extend --local
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/devel/local_setup.sh b/mav_control_rw/mav_nonlinear_mpc/solver/devel/local_setup.sh
new file mode 100644
index 0000000..6440753
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/devel/local_setup.sh
@@ -0,0 +1,9 @@
+#!/usr/bin/env sh
+# generated from catkin/cmake/template/local_setup.sh.in
+
+# since this file is sourced either use the provided _CATKIN_SETUP_DIR
+# or fall back to the destination set at configure time
+: ${_CATKIN_SETUP_DIR:=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel}
+CATKIN_SETUP_UTIL_ARGS="--extend --local"
+. "$_CATKIN_SETUP_DIR/setup.sh"
+unset CATKIN_SETUP_UTIL_ARGS
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/devel/local_setup.zsh b/mav_control_rw/mav_nonlinear_mpc/solver/devel/local_setup.zsh
new file mode 100644
index 0000000..e692acc
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/devel/local_setup.zsh
@@ -0,0 +1,8 @@
+#!/usr/bin/env zsh
+# generated from catkin/cmake/templates/local_setup.zsh.in
+
+CATKIN_SHELL=zsh
+
+# source setup.sh from same directory as this file
+_CATKIN_SETUP_DIR=$(builtin cd -q "`dirname "$0"`" > /dev/null && pwd)
+emulate -R zsh -c 'source "$_CATKIN_SETUP_DIR/setup.sh" --extend --local'
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/devel/setup.bash b/mav_control_rw/mav_nonlinear_mpc/solver/devel/setup.bash
new file mode 100644
index 0000000..ff47af8
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/devel/setup.bash
@@ -0,0 +1,8 @@
+#!/usr/bin/env bash
+# generated from catkin/cmake/templates/setup.bash.in
+
+CATKIN_SHELL=bash
+
+# source setup.sh from same directory as this file
+_CATKIN_SETUP_DIR=$(builtin cd "`dirname "${BASH_SOURCE[0]}"`" > /dev/null && pwd)
+. "$_CATKIN_SETUP_DIR/setup.sh"
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/devel/setup.sh b/mav_control_rw/mav_nonlinear_mpc/solver/devel/setup.sh
new file mode 100644
index 0000000..56b4712
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/devel/setup.sh
@@ -0,0 +1,96 @@
+#!/usr/bin/env sh
+# generated from catkin/cmake/template/setup.sh.in
+
+# Sets various environment variables and sources additional environment hooks.
+# It tries it's best to undo changes from a previously sourced setup file before.
+# Supported command line options:
+# --extend: skips the undoing of changes from a previously sourced setup file
+# --local: only considers this workspace but not the chained ones
+# In plain sh shell which doesn't support arguments for sourced scripts you can
+# set the environment variable `CATKIN_SETUP_UTIL_ARGS=--extend/--local` instead.
+
+# since this file is sourced either use the provided _CATKIN_SETUP_DIR
+# or fall back to the destination set at configure time
+: ${_CATKIN_SETUP_DIR:=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel}
+_SETUP_UTIL="$_CATKIN_SETUP_DIR/_setup_util.py"
+unset _CATKIN_SETUP_DIR
+
+if [ ! -f "$_SETUP_UTIL" ]; then
+  echo "Missing Python script: $_SETUP_UTIL"
+  return 22
+fi
+
+# detect if running on Darwin platform
+_UNAME=`uname -s`
+_IS_DARWIN=0
+if [ "$_UNAME" = "Darwin" ]; then
+  _IS_DARWIN=1
+fi
+unset _UNAME
+
+# make sure to export all environment variables
+export CMAKE_PREFIX_PATH
+if [ $_IS_DARWIN -eq 0 ]; then
+  export LD_LIBRARY_PATH
+else
+  export DYLD_LIBRARY_PATH
+fi
+unset _IS_DARWIN
+export PATH
+export PKG_CONFIG_PATH
+export PYTHONPATH
+
+# remember type of shell if not already set
+if [ -z "$CATKIN_SHELL" ]; then
+  CATKIN_SHELL=sh
+fi
+
+# invoke Python script to generate necessary exports of environment variables
+# use TMPDIR if it exists, otherwise fall back to /tmp
+if [ -d "${TMPDIR:-}" ]; then
+  _TMPDIR="${TMPDIR}"
+else
+  _TMPDIR=/tmp
+fi
+_SETUP_TMP=`mktemp "${_TMPDIR}/setup.sh.XXXXXXXXXX"`
+unset _TMPDIR
+if [ $? -ne 0 -o ! -f "$_SETUP_TMP" ]; then
+  echo "Could not create temporary file: $_SETUP_TMP"
+  return 1
+fi
+CATKIN_SHELL=$CATKIN_SHELL "$_SETUP_UTIL" $@ ${CATKIN_SETUP_UTIL_ARGS:-} >> "$_SETUP_TMP"
+_RC=$?
+if [ $_RC -ne 0 ]; then
+  if [ $_RC -eq 2 ]; then
+    echo "Could not write the output of '$_SETUP_UTIL' to temporary file '$_SETUP_TMP': may be the disk if full?"
+  else
+    echo "Failed to run '\"$_SETUP_UTIL\" $@': return code $_RC"
+  fi
+  unset _RC
+  unset _SETUP_UTIL
+  rm -f "$_SETUP_TMP"
+  unset _SETUP_TMP
+  return 1
+fi
+unset _RC
+unset _SETUP_UTIL
+. "$_SETUP_TMP"
+rm -f "$_SETUP_TMP"
+unset _SETUP_TMP
+
+# source all environment hooks
+_i=0
+while [ $_i -lt $_CATKIN_ENVIRONMENT_HOOKS_COUNT ]; do
+  eval _envfile=\$_CATKIN_ENVIRONMENT_HOOKS_$_i
+  unset _CATKIN_ENVIRONMENT_HOOKS_$_i
+  eval _envfile_workspace=\$_CATKIN_ENVIRONMENT_HOOKS_${_i}_WORKSPACE
+  unset _CATKIN_ENVIRONMENT_HOOKS_${_i}_WORKSPACE
+  # set workspace for environment hook
+  CATKIN_ENV_HOOK_WORKSPACE=$_envfile_workspace
+  . "$_envfile"
+  unset CATKIN_ENV_HOOK_WORKSPACE
+  _i=$((_i + 1))
+done
+unset _i
+
+unset _CATKIN_ENVIRONMENT_HOOKS_COUNT
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/devel/setup.zsh b/mav_control_rw/mav_nonlinear_mpc/solver/devel/setup.zsh
new file mode 100644
index 0000000..9f780b7
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/devel/setup.zsh
@@ -0,0 +1,8 @@
+#!/usr/bin/env zsh
+# generated from catkin/cmake/templates/setup.zsh.in
+
+CATKIN_SHELL=zsh
+
+# source setup.sh from same directory as this file
+_CATKIN_SETUP_DIR=$(builtin cd -q "`dirname "$0"`" > /dev/null && pwd)
+emulate -R zsh -c 'source "$_CATKIN_SETUP_DIR/setup.sh"'
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/devel/share/mav_nonlinear_mpc/cmake/mav_nonlinear_mpcConfig-version.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/devel/share/mav_nonlinear_mpc/cmake/mav_nonlinear_mpcConfig-version.cmake
new file mode 100644
index 0000000..de35aa2
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/devel/share/mav_nonlinear_mpc/cmake/mav_nonlinear_mpcConfig-version.cmake
@@ -0,0 +1,14 @@
+# generated from catkin/cmake/template/pkgConfig-version.cmake.in
+set(PACKAGE_VERSION "1.0.0")
+
+set(PACKAGE_VERSION_EXACT False)
+set(PACKAGE_VERSION_COMPATIBLE False)
+
+if("${PACKAGE_FIND_VERSION}" VERSION_EQUAL "${PACKAGE_VERSION}")
+  set(PACKAGE_VERSION_EXACT True)
+  set(PACKAGE_VERSION_COMPATIBLE True)
+endif()
+
+if("${PACKAGE_FIND_VERSION}" VERSION_LESS "${PACKAGE_VERSION}")
+  set(PACKAGE_VERSION_COMPATIBLE True)
+endif()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/devel/share/mav_nonlinear_mpc/cmake/mav_nonlinear_mpcConfig.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/devel/share/mav_nonlinear_mpc/cmake/mav_nonlinear_mpcConfig.cmake
new file mode 100644
index 0000000..d09d153
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/devel/share/mav_nonlinear_mpc/cmake/mav_nonlinear_mpcConfig.cmake
@@ -0,0 +1,223 @@
+# generated from catkin/cmake/template/pkgConfig.cmake.in
+
+# append elements to a list and remove existing duplicates from the list
+# copied from catkin/cmake/list_append_deduplicate.cmake to keep pkgConfig
+# self contained
+macro(_list_append_deduplicate listname)
+  if(NOT "${ARGN}" STREQUAL "")
+    if(${listname})
+      list(REMOVE_ITEM ${listname} ${ARGN})
+    endif()
+    list(APPEND ${listname} ${ARGN})
+  endif()
+endmacro()
+
+# append elements to a list if they are not already in the list
+# copied from catkin/cmake/list_append_unique.cmake to keep pkgConfig
+# self contained
+macro(_list_append_unique listname)
+  foreach(_item ${ARGN})
+    list(FIND ${listname} ${_item} _index)
+    if(_index EQUAL -1)
+      list(APPEND ${listname} ${_item})
+    endif()
+  endforeach()
+endmacro()
+
+# pack a list of libraries with optional build configuration keywords
+# copied from catkin/cmake/catkin_libraries.cmake to keep pkgConfig
+# self contained
+macro(_pack_libraries_with_build_configuration VAR)
+  set(${VAR} "")
+  set(_argn ${ARGN})
+  list(LENGTH _argn _count)
+  set(_index 0)
+  while(${_index} LESS ${_count})
+    list(GET _argn ${_index} lib)
+    if("${lib}" MATCHES "^(debug|optimized|general)$")
+      math(EXPR _index "${_index} + 1")
+      if(${_index} EQUAL ${_count})
+        message(FATAL_ERROR "_pack_libraries_with_build_configuration() the list of libraries '${ARGN}' ends with '${lib}' which is a build configuration keyword and must be followed by a library")
+      endif()
+      list(GET _argn ${_index} library)
+      list(APPEND ${VAR} "${lib}${CATKIN_BUILD_CONFIGURATION_KEYWORD_SEPARATOR}${library}")
+    else()
+      list(APPEND ${VAR} "${lib}")
+    endif()
+    math(EXPR _index "${_index} + 1")
+  endwhile()
+endmacro()
+
+# unpack a list of libraries with optional build configuration keyword prefixes
+# copied from catkin/cmake/catkin_libraries.cmake to keep pkgConfig
+# self contained
+macro(_unpack_libraries_with_build_configuration VAR)
+  set(${VAR} "")
+  foreach(lib ${ARGN})
+    string(REGEX REPLACE "^(debug|optimized|general)${CATKIN_BUILD_CONFIGURATION_KEYWORD_SEPARATOR}(.+)$" "\\1;\\2" lib "${lib}")
+    list(APPEND ${VAR} "${lib}")
+  endforeach()
+endmacro()
+
+
+if(mav_nonlinear_mpc_CONFIG_INCLUDED)
+  return()
+endif()
+set(mav_nonlinear_mpc_CONFIG_INCLUDED TRUE)
+
+# set variables for source/devel/install prefixes
+if("TRUE" STREQUAL "TRUE")
+  set(mav_nonlinear_mpc_SOURCE_PREFIX /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc)
+  set(mav_nonlinear_mpc_DEVEL_PREFIX /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel)
+  set(mav_nonlinear_mpc_INSTALL_PREFIX "")
+  set(mav_nonlinear_mpc_PREFIX ${mav_nonlinear_mpc_DEVEL_PREFIX})
+else()
+  set(mav_nonlinear_mpc_SOURCE_PREFIX "")
+  set(mav_nonlinear_mpc_DEVEL_PREFIX "")
+  set(mav_nonlinear_mpc_INSTALL_PREFIX /usr/local)
+  set(mav_nonlinear_mpc_PREFIX ${mav_nonlinear_mpc_INSTALL_PREFIX})
+endif()
+
+# warn when using a deprecated package
+if(NOT "" STREQUAL "")
+  set(_msg "WARNING: package 'mav_nonlinear_mpc' is deprecated")
+  # append custom deprecation text if available
+  if(NOT "" STREQUAL "TRUE")
+    set(_msg "${_msg} ()")
+  endif()
+  message("${_msg}")
+endif()
+
+# flag project as catkin-based to distinguish if a find_package()-ed project is a catkin project
+set(mav_nonlinear_mpc_FOUND_CATKIN_PROJECT TRUE)
+
+if(NOT "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel/include;/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/include " STREQUAL " ")
+  set(mav_nonlinear_mpc_INCLUDE_DIRS "")
+  set(_include_dirs "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel/include;/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/include")
+  if(NOT " " STREQUAL " ")
+    set(_report "Check the issue tracker '' and consider creating a ticket if the problem has not been reported yet.")
+  elseif(NOT " " STREQUAL " ")
+    set(_report "Check the website '' for information and consider reporting the problem.")
+  else()
+    set(_report "Report the problem to the maintainer 'Mina Kamel <mina.kamel@mavt.ethz.com>' and request to fix the problem.")
+  endif()
+  foreach(idir ${_include_dirs})
+    if(IS_ABSOLUTE ${idir} AND IS_DIRECTORY ${idir})
+      set(include ${idir})
+    elseif("${idir} " STREQUAL "include ")
+      get_filename_component(include "${mav_nonlinear_mpc_DIR}/../../../include" ABSOLUTE)
+      if(NOT IS_DIRECTORY ${include})
+        message(FATAL_ERROR "Project 'mav_nonlinear_mpc' specifies '${idir}' as an include dir, which is not found.  It does not exist in '${include}'.  ${_report}")
+      endif()
+    else()
+      message(FATAL_ERROR "Project 'mav_nonlinear_mpc' specifies '${idir}' as an include dir, which is not found.  It does neither exist as an absolute directory nor in '/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/${idir}'.  ${_report}")
+    endif()
+    _list_append_unique(mav_nonlinear_mpc_INCLUDE_DIRS ${include})
+  endforeach()
+endif()
+
+set(libraries "mav_nonlinear_mpc_lib")
+foreach(library ${libraries})
+  # keep build configuration keywords, target names and absolute libraries as-is
+  if("${library}" MATCHES "^(debug|optimized|general)$")
+    list(APPEND mav_nonlinear_mpc_LIBRARIES ${library})
+  elseif(${library} MATCHES "^-l")
+    list(APPEND mav_nonlinear_mpc_LIBRARIES ${library})
+  elseif(${library} MATCHES "^-")
+    # This is a linker flag/option (like -pthread)
+    # There's no standard variable for these, so create an interface library to hold it
+    if(NOT mav_nonlinear_mpc_NUM_DUMMY_TARGETS)
+      set(mav_nonlinear_mpc_NUM_DUMMY_TARGETS 0)
+    endif()
+    # Make sure the target name is unique
+    set(interface_target_name "catkin::mav_nonlinear_mpc::wrapped-linker-option${mav_nonlinear_mpc_NUM_DUMMY_TARGETS}")
+    while(TARGET "${interface_target_name}")
+      math(EXPR mav_nonlinear_mpc_NUM_DUMMY_TARGETS "${mav_nonlinear_mpc_NUM_DUMMY_TARGETS}+1")
+      set(interface_target_name "catkin::mav_nonlinear_mpc::wrapped-linker-option${mav_nonlinear_mpc_NUM_DUMMY_TARGETS}")
+    endwhile()
+    add_library("${interface_target_name}" INTERFACE IMPORTED)
+    if("${CMAKE_VERSION}" VERSION_LESS "3.13.0")
+      set_property(
+        TARGET
+        "${interface_target_name}"
+        APPEND PROPERTY
+        INTERFACE_LINK_LIBRARIES "${library}")
+    else()
+      target_link_options("${interface_target_name}" INTERFACE "${library}")
+    endif()
+    list(APPEND mav_nonlinear_mpc_LIBRARIES "${interface_target_name}")
+  elseif(TARGET ${library})
+    list(APPEND mav_nonlinear_mpc_LIBRARIES ${library})
+  elseif(IS_ABSOLUTE ${library})
+    list(APPEND mav_nonlinear_mpc_LIBRARIES ${library})
+  else()
+    set(lib_path "")
+    set(lib "${library}-NOTFOUND")
+    # since the path where the library is found is returned we have to iterate over the paths manually
+    foreach(path /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel/lib;/home/simhe502/catkin_ws/devel/lib;/opt/ros/noetic/lib)
+      find_library(lib ${library}
+        PATHS ${path}
+        NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
+      if(lib)
+        set(lib_path ${path})
+        break()
+      endif()
+    endforeach()
+    if(lib)
+      _list_append_unique(mav_nonlinear_mpc_LIBRARY_DIRS ${lib_path})
+      list(APPEND mav_nonlinear_mpc_LIBRARIES ${lib})
+    else()
+      # as a fall back for non-catkin libraries try to search globally
+      find_library(lib ${library})
+      if(NOT lib)
+        message(FATAL_ERROR "Project '${PROJECT_NAME}' tried to find library '${library}'.  The library is neither a target nor built/installed properly.  Did you compile project 'mav_nonlinear_mpc'?  Did you find_package() it before the subdirectory containing its code is included?")
+      endif()
+      list(APPEND mav_nonlinear_mpc_LIBRARIES ${lib})
+    endif()
+  endif()
+endforeach()
+
+set(mav_nonlinear_mpc_EXPORTED_TARGETS "mav_nonlinear_mpc_gencfg")
+# create dummy targets for exported code generation targets to make life of users easier
+foreach(t ${mav_nonlinear_mpc_EXPORTED_TARGETS})
+  if(NOT TARGET ${t})
+    add_custom_target(${t})
+  endif()
+endforeach()
+
+set(depends "std_msgs;cmake_modules;roscpp;dynamic_reconfigure;tf")
+foreach(depend ${depends})
+  string(REPLACE " " ";" depend_list ${depend})
+  # the package name of the dependency must be kept in a unique variable so that it is not overwritten in recursive calls
+  list(GET depend_list 0 mav_nonlinear_mpc_dep)
+  list(LENGTH depend_list count)
+  if(${count} EQUAL 1)
+    # simple dependencies must only be find_package()-ed once
+    if(NOT ${mav_nonlinear_mpc_dep}_FOUND)
+      find_package(${mav_nonlinear_mpc_dep} REQUIRED NO_MODULE)
+    endif()
+  else()
+    # dependencies with components must be find_package()-ed again
+    list(REMOVE_AT depend_list 0)
+    find_package(${mav_nonlinear_mpc_dep} REQUIRED NO_MODULE ${depend_list})
+  endif()
+  _list_append_unique(mav_nonlinear_mpc_INCLUDE_DIRS ${${mav_nonlinear_mpc_dep}_INCLUDE_DIRS})
+
+  # merge build configuration keywords with library names to correctly deduplicate
+  _pack_libraries_with_build_configuration(mav_nonlinear_mpc_LIBRARIES ${mav_nonlinear_mpc_LIBRARIES})
+  _pack_libraries_with_build_configuration(_libraries ${${mav_nonlinear_mpc_dep}_LIBRARIES})
+  _list_append_deduplicate(mav_nonlinear_mpc_LIBRARIES ${_libraries})
+  # undo build configuration keyword merging after deduplication
+  _unpack_libraries_with_build_configuration(mav_nonlinear_mpc_LIBRARIES ${mav_nonlinear_mpc_LIBRARIES})
+
+  _list_append_unique(mav_nonlinear_mpc_LIBRARY_DIRS ${${mav_nonlinear_mpc_dep}_LIBRARY_DIRS})
+  _list_append_deduplicate(mav_nonlinear_mpc_EXPORTED_TARGETS ${${mav_nonlinear_mpc_dep}_EXPORTED_TARGETS})
+endforeach()
+
+set(pkg_cfg_extras "")
+foreach(extra ${pkg_cfg_extras})
+  if(NOT IS_ABSOLUTE ${extra})
+    set(extra ${mav_nonlinear_mpc_DIR}/${extra})
+  endif()
+  include(${extra})
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/devel/share/mav_nonlinear_mpc/docs/NonLinearMPCConfig-usage.dox b/mav_control_rw/mav_nonlinear_mpc/solver/devel/share/mav_nonlinear_mpc/docs/NonLinearMPCConfig-usage.dox
new file mode 100644
index 0000000..9d6183e
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/devel/share/mav_nonlinear_mpc/docs/NonLinearMPCConfig-usage.dox
@@ -0,0 +1,27 @@
+\subsubsection usage Usage
+\verbatim
+<node name="Config" pkg="mav_nonlinear_mpc" type="Config">
+  <param name="q_x" type="double" value="50.0" />
+  <param name="q_y" type="double" value="50.0" />
+  <param name="q_z" type="double" value="80.0" />
+  <param name="q_vx" type="double" value="20.0" />
+  <param name="q_vy" type="double" value="20.0" />
+  <param name="q_vz" type="double" value="35.0" />
+  <param name="q_roll" type="double" value="20.0" />
+  <param name="q_pitch" type="double" value="20.0" />
+  <param name="r_roll" type="double" value="30.0" />
+  <param name="r_pitch" type="double" value="30.0" />
+  <param name="r_thrust" type="double" value="5.0" />
+  <param name="roll_max" type="double" value="0.45" />
+  <param name="pitch_max" type="double" value="0.45" />
+  <param name="yaw_rate_max" type="double" value="1.5" />
+  <param name="thrust_min" type="double" value="5.0" />
+  <param name="thrust_max" type="double" value="15.0" />
+  <param name="K_yaw" type="double" value="0.5" />
+  <param name="Ki_xy" type="double" value="0.2" />
+  <param name="Ki_altitude" type="double" value="0.2" />
+  <param name="enable_offset_free" type="bool" value="True" />
+  <param name="enable_integrator" type="bool" value="False" />
+</node>
+\endverbatim
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/devel/share/mav_nonlinear_mpc/docs/NonLinearMPCConfig.dox b/mav_control_rw/mav_nonlinear_mpc/solver/devel/share/mav_nonlinear_mpc/docs/NonLinearMPCConfig.dox
new file mode 100644
index 0000000..87e94e9
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/devel/share/mav_nonlinear_mpc/docs/NonLinearMPCConfig.dox
@@ -0,0 +1,26 @@
+\subsubsection parameters ROS parameters
+
+Reads and maintains the following parameters on the ROS server
+
+- \b "~q_x" : \b [double] Penality on x axis pos min: 0.001, default: 50.0, max: 200.0
+- \b "~q_y" : \b [double] Penality on y axis pos min: 0.001, default: 50.0, max: 200.0
+- \b "~q_z" : \b [double] Penality on z axis pos min: 0.001, default: 80.0, max: 200.0
+- \b "~q_vx" : \b [double] Penality on x axis vel min: 0.001, default: 20.0, max: 200.0
+- \b "~q_vy" : \b [double] Penality on y axis vel min: 0.001, default: 20.0, max: 200.0
+- \b "~q_vz" : \b [double] Penality on z axis vel min: 0.001, default: 35.0, max: 200.0
+- \b "~q_roll" : \b [double] Penality on roll state min: 0.001, default: 20.0, max: 200.0
+- \b "~q_pitch" : \b [double] Penality on pitch state min: 0.001, default: 20.0, max: 200.0
+- \b "~r_roll" : \b [double] Penality on roll cmd min: 1.0, default: 30.0, max: 200.0
+- \b "~r_pitch" : \b [double] Penality on pitch cmd min: 1.0, default: 30.0, max: 200.0
+- \b "~r_thrust" : \b [double] Penality on thrust cmd min: 1.0, default: 5.0, max: 200.0
+- \b "~roll_max" : \b [double] max roll cmd [rad] min: 0.1, default: 0.45, max: 1.0
+- \b "~pitch_max" : \b [double] max pitch cmd [rad] min: 0.1, default: 0.45, max: 1.0
+- \b "~yaw_rate_max" : \b [double] max yawrate cmd [rad/s] min: 0.1, default: 1.5, max: 2.0
+- \b "~thrust_min" : \b [double] min thrust cmd [m/s2] min: 5.0, default: 5.0, max: 25.0
+- \b "~thrust_max" : \b [double] max thrust cmd [m/s2] min: 5.0, default: 15.0, max: 25.0
+- \b "~K_yaw" : \b [double] yaw gain min: 0.01, default: 0.5, max: 2.0
+- \b "~Ki_xy" : \b [double] integrator gain for xy min: 0.01, default: 0.2, max: 3.0
+- \b "~Ki_altitude" : \b [double] integrator gain for altitude min: 0.01, default: 0.2, max: 3.0
+- \b "~enable_offset_free" : \b [bool] XY offset free MPC min: False, default: True, max: True
+- \b "~enable_integrator" : \b [bool] integral action min: False, default: False, max: True
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/devel/share/mav_nonlinear_mpc/docs/NonLinearMPCConfig.wikidoc b/mav_control_rw/mav_nonlinear_mpc/solver/devel/share/mav_nonlinear_mpc/docs/NonLinearMPCConfig.wikidoc
new file mode 100644
index 0000000..9dd17e4
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/devel/share/mav_nonlinear_mpc/docs/NonLinearMPCConfig.wikidoc
@@ -0,0 +1,92 @@
+# Autogenerated param section. Do not hand edit.
+param {
+group.0 {
+name=Dynamically Reconfigurable Parameters
+desc=See the [[dynamic_reconfigure]] package for details on dynamically reconfigurable parameters.
+0.name= ~q_x
+0.default= 50.0
+0.type= double
+0.desc=Penality on x axis pos Range: 0.001 to 200.0
+1.name= ~q_y
+1.default= 50.0
+1.type= double
+1.desc=Penality on y axis pos Range: 0.001 to 200.0
+2.name= ~q_z
+2.default= 80.0
+2.type= double
+2.desc=Penality on z axis pos Range: 0.001 to 200.0
+3.name= ~q_vx
+3.default= 20.0
+3.type= double
+3.desc=Penality on x axis vel Range: 0.001 to 200.0
+4.name= ~q_vy
+4.default= 20.0
+4.type= double
+4.desc=Penality on y axis vel Range: 0.001 to 200.0
+5.name= ~q_vz
+5.default= 35.0
+5.type= double
+5.desc=Penality on z axis vel Range: 0.001 to 200.0
+6.name= ~q_roll
+6.default= 20.0
+6.type= double
+6.desc=Penality on roll state Range: 0.001 to 200.0
+7.name= ~q_pitch
+7.default= 20.0
+7.type= double
+7.desc=Penality on pitch state Range: 0.001 to 200.0
+8.name= ~r_roll
+8.default= 30.0
+8.type= double
+8.desc=Penality on roll cmd Range: 1.0 to 200.0
+9.name= ~r_pitch
+9.default= 30.0
+9.type= double
+9.desc=Penality on pitch cmd Range: 1.0 to 200.0
+10.name= ~r_thrust
+10.default= 5.0
+10.type= double
+10.desc=Penality on thrust cmd Range: 1.0 to 200.0
+11.name= ~roll_max
+11.default= 0.45
+11.type= double
+11.desc=max roll cmd [rad] Range: 0.1 to 1.0
+12.name= ~pitch_max
+12.default= 0.45
+12.type= double
+12.desc=max pitch cmd [rad] Range: 0.1 to 1.0
+13.name= ~yaw_rate_max
+13.default= 1.5
+13.type= double
+13.desc=max yawrate cmd [rad/s] Range: 0.1 to 2.0
+14.name= ~thrust_min
+14.default= 5.0
+14.type= double
+14.desc=min thrust cmd [m/s2] Range: 5.0 to 25.0
+15.name= ~thrust_max
+15.default= 15.0
+15.type= double
+15.desc=max thrust cmd [m/s2] Range: 5.0 to 25.0
+16.name= ~K_yaw
+16.default= 0.5
+16.type= double
+16.desc=yaw gain Range: 0.01 to 2.0
+17.name= ~Ki_xy
+17.default= 0.2
+17.type= double
+17.desc=integrator gain for xy Range: 0.01 to 3.0
+18.name= ~Ki_altitude
+18.default= 0.2
+18.type= double
+18.desc=integrator gain for altitude Range: 0.01 to 3.0
+19.name= ~enable_offset_free
+19.default= True
+19.type= bool
+19.desc=XY offset free MPC 
+20.name= ~enable_integrator
+20.default= False
+20.type= bool
+20.desc=integral action 
+}
+}
+# End of autogenerated section. You may edit below.
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/gtest/CMakeFiles/CMakeDirectoryInformation.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/CMakeFiles/CMakeDirectoryInformation.cmake
new file mode 100644
index 0000000..46e0ec6
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/CMakeFiles/CMakeDirectoryInformation.cmake
@@ -0,0 +1,16 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Relative path conversion top directories.
+set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/usr/src/googletest")
+set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver")
+
+# Force unix paths in dependencies.
+set(CMAKE_FORCE_UNIX_PATHS 1)
+
+
+# The C and CXX include file regular expressions for this directory.
+set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
+set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
+set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
+set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/gtest/CMakeFiles/progress.marks b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/CMakeFiles/progress.marks
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/CMakeFiles/progress.marks
@@ -0,0 +1 @@
+0
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/gtest/CTestTestfile.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/CTestTestfile.cmake
new file mode 100644
index 0000000..6b1fc65
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/CTestTestfile.cmake
@@ -0,0 +1,7 @@
+# CMake generated Testfile for 
+# Source directory: /usr/src/googletest
+# Build directory: /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest
+# 
+# This file includes the relevant testing commands required for 
+# testing this directory and lists subdirectories to be tested as well.
+subdirs("googlemock")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/gtest/Makefile b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/Makefile
new file mode 100644
index 0000000..4dc8bbe
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/Makefile
@@ -0,0 +1,196 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Default target executed when no arguments are given to make.
+default_target: all
+
+.PHONY : default_target
+
+# Allow only one "make -f Makefile2" at a time, but pass parallelism.
+.NOTPARALLEL:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+#=============================================================================
+# Targets provided globally by CMake.
+
+# Special rule for the target install/strip
+install/strip: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+	/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip
+
+# Special rule for the target install/strip
+install/strip/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+	/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip/fast
+
+# Special rule for the target install/local
+install/local: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+	/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local
+
+# Special rule for the target install/local
+install/local/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+	/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local/fast
+
+# Special rule for the target install
+install: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+	/usr/bin/cmake -P cmake_install.cmake
+.PHONY : install
+
+# Special rule for the target install
+install/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+	/usr/bin/cmake -P cmake_install.cmake
+.PHONY : install/fast
+
+# Special rule for the target list_install_components
+list_install_components:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\""
+.PHONY : list_install_components
+
+# Special rule for the target list_install_components
+list_install_components/fast: list_install_components
+
+.PHONY : list_install_components/fast
+
+# Special rule for the target rebuild_cache
+rebuild_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
+	/usr/bin/cmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : rebuild_cache
+
+# Special rule for the target rebuild_cache
+rebuild_cache/fast: rebuild_cache
+
+.PHONY : rebuild_cache/fast
+
+# Special rule for the target edit_cache
+edit_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..."
+	/usr/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : edit_cache
+
+# Special rule for the target edit_cache
+edit_cache/fast: edit_cache
+
+.PHONY : edit_cache/fast
+
+# Special rule for the target test
+test:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..."
+	/usr/bin/ctest --force-new-ctest-process $(ARGS)
+.PHONY : test
+
+# Special rule for the target test
+test/fast: test
+
+.PHONY : test/fast
+
+# The main all target
+all: cmake_check_build_system
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/CMakeFiles/progress.marks
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(MAKE) -f CMakeFiles/Makefile2 gtest/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : all
+
+# The main clean target
+clean:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(MAKE) -f CMakeFiles/Makefile2 gtest/clean
+.PHONY : clean
+
+# The main clean target
+clean/fast: clean
+
+.PHONY : clean/fast
+
+# Prepare targets for installation.
+preinstall: all
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(MAKE) -f CMakeFiles/Makefile2 gtest/preinstall
+.PHONY : preinstall
+
+# Prepare targets for installation.
+preinstall/fast:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(MAKE) -f CMakeFiles/Makefile2 gtest/preinstall
+.PHONY : preinstall/fast
+
+# clear depends
+depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
+.PHONY : depend
+
+# Help Target
+help:
+	@echo "The following are some of the valid targets for this Makefile:"
+	@echo "... all (the default if no target is provided)"
+	@echo "... clean"
+	@echo "... depend"
+	@echo "... install/strip"
+	@echo "... install/local"
+	@echo "... install"
+	@echo "... list_install_components"
+	@echo "... rebuild_cache"
+	@echo "... edit_cache"
+	@echo "... test"
+.PHONY : help
+
+
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/gtest/cmake_install.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/cmake_install.cmake
new file mode 100644
index 0000000..c72e533
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/cmake_install.cmake
@@ -0,0 +1,45 @@
+# Install script for directory: /usr/src/googletest
+
+# Set the install prefix
+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
+  set(CMAKE_INSTALL_PREFIX "/usr/local")
+endif()
+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+  if(BUILD_TYPE)
+    string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+           CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+  else()
+    set(CMAKE_INSTALL_CONFIG_NAME "Release")
+  endif()
+  message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+endif()
+
+# Set the component getting installed.
+if(NOT CMAKE_INSTALL_COMPONENT)
+  if(COMPONENT)
+    message(STATUS "Install component: \"${COMPONENT}\"")
+    set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+  else()
+    set(CMAKE_INSTALL_COMPONENT)
+  endif()
+endif()
+
+# Install shared libraries without execute permission?
+if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
+  set(CMAKE_INSTALL_SO_NO_EXE "1")
+endif()
+
+# Is this installation the result of a crosscompile?
+if(NOT DEFINED CMAKE_CROSSCOMPILING)
+  set(CMAKE_CROSSCOMPILING "FALSE")
+endif()
+
+if(NOT CMAKE_INSTALL_LOCAL_ONLY)
+  # Include the install script for each subdirectory.
+  include("/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/cmake_install.cmake")
+
+endif()
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/CMakeDirectoryInformation.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/CMakeDirectoryInformation.cmake
new file mode 100644
index 0000000..46e0ec6
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/CMakeDirectoryInformation.cmake
@@ -0,0 +1,16 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Relative path conversion top directories.
+set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/usr/src/googletest")
+set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver")
+
+# Force unix paths in dependencies.
+set(CMAKE_FORCE_UNIX_PATHS 1)
+
+
+# The C and CXX include file regular expressions for this directory.
+set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
+set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
+set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
+set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock.dir/DependInfo.cmake
new file mode 100644
index 0000000..ace25a1
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock.dir/DependInfo.cmake
@@ -0,0 +1,31 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  "CXX"
+  )
+# The set of files for implicit dependencies of each language:
+set(CMAKE_DEPENDS_CHECK_CXX
+  "/usr/src/googletest/googlemock/src/gmock-all.cc" "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o"
+  )
+set(CMAKE_CXX_COMPILER_ID "GNU")
+
+# Preprocessor definitions for this target.
+set(CMAKE_TARGET_DEFINITIONS_CXX
+  "GTEST_CREATE_SHARED_LIBRARY=1"
+  "gmock_EXPORTS"
+  )
+
+# The include file search paths:
+set(CMAKE_CXX_TARGET_INCLUDE_PATH
+  "/usr/src/googletest/googlemock/include"
+  "/usr/src/googletest/googlemock"
+  "/usr/src/googletest/googletest/include"
+  "/usr/src/googletest/googletest"
+  )
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest.dir/DependInfo.cmake"
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock.dir/build.make
new file mode 100644
index 0000000..0f1ffd7
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock.dir/build.make
@@ -0,0 +1,99 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Include any dependencies generated for this target.
+include gtest/googlemock/CMakeFiles/gmock.dir/depend.make
+
+# Include the progress variables for this target.
+include gtest/googlemock/CMakeFiles/gmock.dir/progress.make
+
+# Include the compile flags for this target's objects.
+include gtest/googlemock/CMakeFiles/gmock.dir/flags.make
+
+gtest/googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: gtest/googlemock/CMakeFiles/gmock.dir/flags.make
+gtest/googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o: /usr/src/googletest/googlemock/src/gmock-all.cc
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object gtest/googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o"
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock && /usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/gmock.dir/src/gmock-all.cc.o -c /usr/src/googletest/googlemock/src/gmock-all.cc
+
+gtest/googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/gmock.dir/src/gmock-all.cc.i"
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /usr/src/googletest/googlemock/src/gmock-all.cc > CMakeFiles/gmock.dir/src/gmock-all.cc.i
+
+gtest/googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/gmock.dir/src/gmock-all.cc.s"
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /usr/src/googletest/googlemock/src/gmock-all.cc -o CMakeFiles/gmock.dir/src/gmock-all.cc.s
+
+# Object files for target gmock
+gmock_OBJECTS = \
+"CMakeFiles/gmock.dir/src/gmock-all.cc.o"
+
+# External object files for target gmock
+gmock_EXTERNAL_OBJECTS =
+
+gtest/lib/libgmock.so: gtest/googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o
+gtest/lib/libgmock.so: gtest/googlemock/CMakeFiles/gmock.dir/build.make
+gtest/lib/libgmock.so: gtest/lib/libgtest.so
+gtest/lib/libgmock.so: gtest/googlemock/CMakeFiles/gmock.dir/link.txt
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX shared library ../lib/libgmock.so"
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/gmock.dir/link.txt --verbose=$(VERBOSE)
+
+# Rule to build all files generated by this target.
+gtest/googlemock/CMakeFiles/gmock.dir/build: gtest/lib/libgmock.so
+
+.PHONY : gtest/googlemock/CMakeFiles/gmock.dir/build
+
+gtest/googlemock/CMakeFiles/gmock.dir/clean:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock && $(CMAKE_COMMAND) -P CMakeFiles/gmock.dir/cmake_clean.cmake
+.PHONY : gtest/googlemock/CMakeFiles/gmock.dir/clean
+
+gtest/googlemock/CMakeFiles/gmock.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /usr/src/googletest/googlemock /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : gtest/googlemock/CMakeFiles/gmock.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock.dir/cmake_clean.cmake
new file mode 100644
index 0000000..53a6e77
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock.dir/cmake_clean.cmake
@@ -0,0 +1,10 @@
+file(REMOVE_RECURSE
+  "../../bin/libgmock.pdb"
+  "../lib/libgmock.so"
+  "CMakeFiles/gmock.dir/src/gmock-all.cc.o"
+)
+
+# Per-language clean rules from dependency scanning.
+foreach(lang CXX)
+  include(CMakeFiles/gmock.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock.dir/depend.make
new file mode 100644
index 0000000..7a05e2f
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock.dir/depend.make
@@ -0,0 +1,2 @@
+# Empty dependencies file for gmock.
+# This may be replaced when dependencies are built.
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock.dir/flags.make b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock.dir/flags.make
new file mode 100644
index 0000000..4f642ba
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock.dir/flags.make
@@ -0,0 +1,10 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# compile CXX with /usr/bin/c++
+CXX_FLAGS = -O3 -DNDEBUG -fPIC   -Wall -Wshadow -Wno-error=dangling-else -DGTEST_HAS_PTHREAD=1 -fexceptions -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -DGTEST_HAS_PTHREAD=1 -std=c++11
+
+CXX_DEFINES = -DGTEST_CREATE_SHARED_LIBRARY=1 -Dgmock_EXPORTS
+
+CXX_INCLUDES = -I/usr/src/googletest/googlemock/include -I/usr/src/googletest/googlemock -isystem /usr/src/googletest/googletest/include -isystem /usr/src/googletest/googletest 
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock.dir/link.txt b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock.dir/link.txt
new file mode 100644
index 0000000..5754531
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock.dir/link.txt
@@ -0,0 +1 @@
+/usr/bin/c++ -fPIC -O3 -DNDEBUG  -shared -Wl,-soname,libgmock.so -o ../lib/libgmock.so CMakeFiles/gmock.dir/src/gmock-all.cc.o  -Wl,-rpath,/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/lib ../lib/libgtest.so -lpthread 
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock.dir/progress.make
new file mode 100644
index 0000000..abadeb0
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock.dir/progress.make
@@ -0,0 +1,3 @@
+CMAKE_PROGRESS_1 = 1
+CMAKE_PROGRESS_2 = 2
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock_main.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock_main.dir/DependInfo.cmake
new file mode 100644
index 0000000..3310421
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock_main.dir/DependInfo.cmake
@@ -0,0 +1,32 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  "CXX"
+  )
+# The set of files for implicit dependencies of each language:
+set(CMAKE_DEPENDS_CHECK_CXX
+  "/usr/src/googletest/googlemock/src/gmock_main.cc" "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o"
+  )
+set(CMAKE_CXX_COMPILER_ID "GNU")
+
+# Preprocessor definitions for this target.
+set(CMAKE_TARGET_DEFINITIONS_CXX
+  "GTEST_CREATE_SHARED_LIBRARY=1"
+  "gmock_main_EXPORTS"
+  )
+
+# The include file search paths:
+set(CMAKE_CXX_TARGET_INCLUDE_PATH
+  "/usr/src/googletest/googlemock/include"
+  "/usr/src/googletest/googlemock"
+  "/usr/src/googletest/googletest/include"
+  "/usr/src/googletest/googletest"
+  )
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock.dir/DependInfo.cmake"
+  "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest.dir/DependInfo.cmake"
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock_main.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock_main.dir/build.make
new file mode 100644
index 0000000..a580053
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock_main.dir/build.make
@@ -0,0 +1,100 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Include any dependencies generated for this target.
+include gtest/googlemock/CMakeFiles/gmock_main.dir/depend.make
+
+# Include the progress variables for this target.
+include gtest/googlemock/CMakeFiles/gmock_main.dir/progress.make
+
+# Include the compile flags for this target's objects.
+include gtest/googlemock/CMakeFiles/gmock_main.dir/flags.make
+
+gtest/googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o: gtest/googlemock/CMakeFiles/gmock_main.dir/flags.make
+gtest/googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o: /usr/src/googletest/googlemock/src/gmock_main.cc
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object gtest/googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o"
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock && /usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/gmock_main.dir/src/gmock_main.cc.o -c /usr/src/googletest/googlemock/src/gmock_main.cc
+
+gtest/googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/gmock_main.dir/src/gmock_main.cc.i"
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /usr/src/googletest/googlemock/src/gmock_main.cc > CMakeFiles/gmock_main.dir/src/gmock_main.cc.i
+
+gtest/googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/gmock_main.dir/src/gmock_main.cc.s"
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /usr/src/googletest/googlemock/src/gmock_main.cc -o CMakeFiles/gmock_main.dir/src/gmock_main.cc.s
+
+# Object files for target gmock_main
+gmock_main_OBJECTS = \
+"CMakeFiles/gmock_main.dir/src/gmock_main.cc.o"
+
+# External object files for target gmock_main
+gmock_main_EXTERNAL_OBJECTS =
+
+gtest/lib/libgmock_main.so: gtest/googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o
+gtest/lib/libgmock_main.so: gtest/googlemock/CMakeFiles/gmock_main.dir/build.make
+gtest/lib/libgmock_main.so: gtest/lib/libgmock.so
+gtest/lib/libgmock_main.so: gtest/lib/libgtest.so
+gtest/lib/libgmock_main.so: gtest/googlemock/CMakeFiles/gmock_main.dir/link.txt
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX shared library ../lib/libgmock_main.so"
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/gmock_main.dir/link.txt --verbose=$(VERBOSE)
+
+# Rule to build all files generated by this target.
+gtest/googlemock/CMakeFiles/gmock_main.dir/build: gtest/lib/libgmock_main.so
+
+.PHONY : gtest/googlemock/CMakeFiles/gmock_main.dir/build
+
+gtest/googlemock/CMakeFiles/gmock_main.dir/clean:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock && $(CMAKE_COMMAND) -P CMakeFiles/gmock_main.dir/cmake_clean.cmake
+.PHONY : gtest/googlemock/CMakeFiles/gmock_main.dir/clean
+
+gtest/googlemock/CMakeFiles/gmock_main.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /usr/src/googletest/googlemock /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock_main.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : gtest/googlemock/CMakeFiles/gmock_main.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock_main.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock_main.dir/cmake_clean.cmake
new file mode 100644
index 0000000..ace4a8f
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock_main.dir/cmake_clean.cmake
@@ -0,0 +1,10 @@
+file(REMOVE_RECURSE
+  "../../bin/libgmock_main.pdb"
+  "../lib/libgmock_main.so"
+  "CMakeFiles/gmock_main.dir/src/gmock_main.cc.o"
+)
+
+# Per-language clean rules from dependency scanning.
+foreach(lang CXX)
+  include(CMakeFiles/gmock_main.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock_main.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock_main.dir/depend.make
new file mode 100644
index 0000000..4a18b61
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock_main.dir/depend.make
@@ -0,0 +1,2 @@
+# Empty dependencies file for gmock_main.
+# This may be replaced when dependencies are built.
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock_main.dir/flags.make b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock_main.dir/flags.make
new file mode 100644
index 0000000..d99d7c3
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock_main.dir/flags.make
@@ -0,0 +1,10 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# compile CXX with /usr/bin/c++
+CXX_FLAGS = -O3 -DNDEBUG -fPIC   -Wall -Wshadow -Wno-error=dangling-else -DGTEST_HAS_PTHREAD=1 -fexceptions -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -DGTEST_HAS_PTHREAD=1 -std=c++11
+
+CXX_DEFINES = -DGTEST_CREATE_SHARED_LIBRARY=1 -Dgmock_main_EXPORTS
+
+CXX_INCLUDES = -isystem /usr/src/googletest/googlemock/include -isystem /usr/src/googletest/googlemock -isystem /usr/src/googletest/googletest/include -isystem /usr/src/googletest/googletest 
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock_main.dir/link.txt b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock_main.dir/link.txt
new file mode 100644
index 0000000..b289cd8
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock_main.dir/link.txt
@@ -0,0 +1 @@
+/usr/bin/c++ -fPIC -O3 -DNDEBUG  -shared -Wl,-soname,libgmock_main.so -o ../lib/libgmock_main.so CMakeFiles/gmock_main.dir/src/gmock_main.cc.o  -Wl,-rpath,/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/lib ../lib/libgmock.so ../lib/libgtest.so -lpthread 
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock_main.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock_main.dir/progress.make
new file mode 100644
index 0000000..8c8fb6f
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/gmock_main.dir/progress.make
@@ -0,0 +1,3 @@
+CMAKE_PROGRESS_1 = 3
+CMAKE_PROGRESS_2 = 4
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/progress.marks b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/progress.marks
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/progress.marks
@@ -0,0 +1 @@
+0
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CTestTestfile.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CTestTestfile.cmake
new file mode 100644
index 0000000..d8154d9
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CTestTestfile.cmake
@@ -0,0 +1,7 @@
+# CMake generated Testfile for 
+# Source directory: /usr/src/googletest/googlemock
+# Build directory: /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock
+# 
+# This file includes the relevant testing commands required for 
+# testing this directory and lists subdirectories to be tested as well.
+subdirs("../googletest")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/Makefile b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/Makefile
new file mode 100644
index 0000000..ac2f290
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/Makefile
@@ -0,0 +1,288 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Default target executed when no arguments are given to make.
+default_target: all
+
+.PHONY : default_target
+
+# Allow only one "make -f Makefile2" at a time, but pass parallelism.
+.NOTPARALLEL:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+#=============================================================================
+# Targets provided globally by CMake.
+
+# Special rule for the target install/strip
+install/strip: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+	/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip
+
+# Special rule for the target install/strip
+install/strip/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+	/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip/fast
+
+# Special rule for the target install/local
+install/local: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+	/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local
+
+# Special rule for the target install/local
+install/local/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+	/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local/fast
+
+# Special rule for the target install
+install: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+	/usr/bin/cmake -P cmake_install.cmake
+.PHONY : install
+
+# Special rule for the target install
+install/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+	/usr/bin/cmake -P cmake_install.cmake
+.PHONY : install/fast
+
+# Special rule for the target list_install_components
+list_install_components:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\""
+.PHONY : list_install_components
+
+# Special rule for the target list_install_components
+list_install_components/fast: list_install_components
+
+.PHONY : list_install_components/fast
+
+# Special rule for the target rebuild_cache
+rebuild_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
+	/usr/bin/cmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : rebuild_cache
+
+# Special rule for the target rebuild_cache
+rebuild_cache/fast: rebuild_cache
+
+.PHONY : rebuild_cache/fast
+
+# Special rule for the target edit_cache
+edit_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..."
+	/usr/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : edit_cache
+
+# Special rule for the target edit_cache
+edit_cache/fast: edit_cache
+
+.PHONY : edit_cache/fast
+
+# Special rule for the target test
+test:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..."
+	/usr/bin/ctest --force-new-ctest-process $(ARGS)
+.PHONY : test
+
+# Special rule for the target test
+test/fast: test
+
+.PHONY : test/fast
+
+# The main all target
+all: cmake_check_build_system
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/CMakeFiles/progress.marks
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(MAKE) -f CMakeFiles/Makefile2 gtest/googlemock/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : all
+
+# The main clean target
+clean:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(MAKE) -f CMakeFiles/Makefile2 gtest/googlemock/clean
+.PHONY : clean
+
+# The main clean target
+clean/fast: clean
+
+.PHONY : clean/fast
+
+# Prepare targets for installation.
+preinstall: all
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(MAKE) -f CMakeFiles/Makefile2 gtest/googlemock/preinstall
+.PHONY : preinstall
+
+# Prepare targets for installation.
+preinstall/fast:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(MAKE) -f CMakeFiles/Makefile2 gtest/googlemock/preinstall
+.PHONY : preinstall/fast
+
+# clear depends
+depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
+.PHONY : depend
+
+# Convenience name for target.
+gtest/googlemock/CMakeFiles/gmock_main.dir/rule:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(MAKE) -f CMakeFiles/Makefile2 gtest/googlemock/CMakeFiles/gmock_main.dir/rule
+.PHONY : gtest/googlemock/CMakeFiles/gmock_main.dir/rule
+
+# Convenience name for target.
+gmock_main: gtest/googlemock/CMakeFiles/gmock_main.dir/rule
+
+.PHONY : gmock_main
+
+# fast build rule for target.
+gmock_main/fast:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(MAKE) -f gtest/googlemock/CMakeFiles/gmock_main.dir/build.make gtest/googlemock/CMakeFiles/gmock_main.dir/build
+.PHONY : gmock_main/fast
+
+# Convenience name for target.
+gtest/googlemock/CMakeFiles/gmock.dir/rule:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(MAKE) -f CMakeFiles/Makefile2 gtest/googlemock/CMakeFiles/gmock.dir/rule
+.PHONY : gtest/googlemock/CMakeFiles/gmock.dir/rule
+
+# Convenience name for target.
+gmock: gtest/googlemock/CMakeFiles/gmock.dir/rule
+
+.PHONY : gmock
+
+# fast build rule for target.
+gmock/fast:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(MAKE) -f gtest/googlemock/CMakeFiles/gmock.dir/build.make gtest/googlemock/CMakeFiles/gmock.dir/build
+.PHONY : gmock/fast
+
+src/gmock-all.o: src/gmock-all.cc.o
+
+.PHONY : src/gmock-all.o
+
+# target to build an object file
+src/gmock-all.cc.o:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(MAKE) -f gtest/googlemock/CMakeFiles/gmock.dir/build.make gtest/googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o
+.PHONY : src/gmock-all.cc.o
+
+src/gmock-all.i: src/gmock-all.cc.i
+
+.PHONY : src/gmock-all.i
+
+# target to preprocess a source file
+src/gmock-all.cc.i:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(MAKE) -f gtest/googlemock/CMakeFiles/gmock.dir/build.make gtest/googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.i
+.PHONY : src/gmock-all.cc.i
+
+src/gmock-all.s: src/gmock-all.cc.s
+
+.PHONY : src/gmock-all.s
+
+# target to generate assembly for a file
+src/gmock-all.cc.s:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(MAKE) -f gtest/googlemock/CMakeFiles/gmock.dir/build.make gtest/googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.s
+.PHONY : src/gmock-all.cc.s
+
+src/gmock_main.o: src/gmock_main.cc.o
+
+.PHONY : src/gmock_main.o
+
+# target to build an object file
+src/gmock_main.cc.o:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(MAKE) -f gtest/googlemock/CMakeFiles/gmock_main.dir/build.make gtest/googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o
+.PHONY : src/gmock_main.cc.o
+
+src/gmock_main.i: src/gmock_main.cc.i
+
+.PHONY : src/gmock_main.i
+
+# target to preprocess a source file
+src/gmock_main.cc.i:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(MAKE) -f gtest/googlemock/CMakeFiles/gmock_main.dir/build.make gtest/googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.i
+.PHONY : src/gmock_main.cc.i
+
+src/gmock_main.s: src/gmock_main.cc.s
+
+.PHONY : src/gmock_main.s
+
+# target to generate assembly for a file
+src/gmock_main.cc.s:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(MAKE) -f gtest/googlemock/CMakeFiles/gmock_main.dir/build.make gtest/googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.s
+.PHONY : src/gmock_main.cc.s
+
+# Help Target
+help:
+	@echo "The following are some of the valid targets for this Makefile:"
+	@echo "... all (the default if no target is provided)"
+	@echo "... clean"
+	@echo "... depend"
+	@echo "... install/strip"
+	@echo "... install/local"
+	@echo "... install"
+	@echo "... list_install_components"
+	@echo "... rebuild_cache"
+	@echo "... edit_cache"
+	@echo "... test"
+	@echo "... gmock_main"
+	@echo "... gmock"
+	@echo "... src/gmock-all.o"
+	@echo "... src/gmock-all.i"
+	@echo "... src/gmock-all.s"
+	@echo "... src/gmock_main.o"
+	@echo "... src/gmock_main.i"
+	@echo "... src/gmock_main.s"
+.PHONY : help
+
+
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/cmake_install.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/cmake_install.cmake
new file mode 100644
index 0000000..952e070
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googlemock/cmake_install.cmake
@@ -0,0 +1,45 @@
+# Install script for directory: /usr/src/googletest/googlemock
+
+# Set the install prefix
+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
+  set(CMAKE_INSTALL_PREFIX "/usr/local")
+endif()
+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+  if(BUILD_TYPE)
+    string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+           CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+  else()
+    set(CMAKE_INSTALL_CONFIG_NAME "Release")
+  endif()
+  message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+endif()
+
+# Set the component getting installed.
+if(NOT CMAKE_INSTALL_COMPONENT)
+  if(COMPONENT)
+    message(STATUS "Install component: \"${COMPONENT}\"")
+    set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+  else()
+    set(CMAKE_INSTALL_COMPONENT)
+  endif()
+endif()
+
+# Install shared libraries without execute permission?
+if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
+  set(CMAKE_INSTALL_SO_NO_EXE "1")
+endif()
+
+# Is this installation the result of a crosscompile?
+if(NOT DEFINED CMAKE_CROSSCOMPILING)
+  set(CMAKE_CROSSCOMPILING "FALSE")
+endif()
+
+if(NOT CMAKE_INSTALL_LOCAL_ONLY)
+  # Include the install script for each subdirectory.
+  include("/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/cmake_install.cmake")
+
+endif()
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/CMakeDirectoryInformation.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/CMakeDirectoryInformation.cmake
new file mode 100644
index 0000000..46e0ec6
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/CMakeDirectoryInformation.cmake
@@ -0,0 +1,16 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Relative path conversion top directories.
+set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/usr/src/googletest")
+set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver")
+
+# Force unix paths in dependencies.
+set(CMAKE_FORCE_UNIX_PATHS 1)
+
+
+# The C and CXX include file regular expressions for this directory.
+set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
+set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
+set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
+set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest.dir/DependInfo.cmake
new file mode 100644
index 0000000..c5cddf7
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest.dir/DependInfo.cmake
@@ -0,0 +1,28 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  "CXX"
+  )
+# The set of files for implicit dependencies of each language:
+set(CMAKE_DEPENDS_CHECK_CXX
+  "/usr/src/googletest/googletest/src/gtest-all.cc" "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o"
+  )
+set(CMAKE_CXX_COMPILER_ID "GNU")
+
+# Preprocessor definitions for this target.
+set(CMAKE_TARGET_DEFINITIONS_CXX
+  "GTEST_CREATE_SHARED_LIBRARY=1"
+  "gtest_EXPORTS"
+  )
+
+# The include file search paths:
+set(CMAKE_CXX_TARGET_INCLUDE_PATH
+  "/usr/src/googletest/googletest/include"
+  "/usr/src/googletest/googletest"
+  )
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest.dir/build.make
new file mode 100644
index 0000000..3968acd
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest.dir/build.make
@@ -0,0 +1,98 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Include any dependencies generated for this target.
+include gtest/googletest/CMakeFiles/gtest.dir/depend.make
+
+# Include the progress variables for this target.
+include gtest/googletest/CMakeFiles/gtest.dir/progress.make
+
+# Include the compile flags for this target's objects.
+include gtest/googletest/CMakeFiles/gtest.dir/flags.make
+
+gtest/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o: gtest/googletest/CMakeFiles/gtest.dir/flags.make
+gtest/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o: /usr/src/googletest/googletest/src/gtest-all.cc
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object gtest/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o"
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest && /usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/gtest.dir/src/gtest-all.cc.o -c /usr/src/googletest/googletest/src/gtest-all.cc
+
+gtest/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/gtest.dir/src/gtest-all.cc.i"
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /usr/src/googletest/googletest/src/gtest-all.cc > CMakeFiles/gtest.dir/src/gtest-all.cc.i
+
+gtest/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/gtest.dir/src/gtest-all.cc.s"
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /usr/src/googletest/googletest/src/gtest-all.cc -o CMakeFiles/gtest.dir/src/gtest-all.cc.s
+
+# Object files for target gtest
+gtest_OBJECTS = \
+"CMakeFiles/gtest.dir/src/gtest-all.cc.o"
+
+# External object files for target gtest
+gtest_EXTERNAL_OBJECTS =
+
+gtest/lib/libgtest.so: gtest/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o
+gtest/lib/libgtest.so: gtest/googletest/CMakeFiles/gtest.dir/build.make
+gtest/lib/libgtest.so: gtest/googletest/CMakeFiles/gtest.dir/link.txt
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX shared library ../lib/libgtest.so"
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/gtest.dir/link.txt --verbose=$(VERBOSE)
+
+# Rule to build all files generated by this target.
+gtest/googletest/CMakeFiles/gtest.dir/build: gtest/lib/libgtest.so
+
+.PHONY : gtest/googletest/CMakeFiles/gtest.dir/build
+
+gtest/googletest/CMakeFiles/gtest.dir/clean:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest && $(CMAKE_COMMAND) -P CMakeFiles/gtest.dir/cmake_clean.cmake
+.PHONY : gtest/googletest/CMakeFiles/gtest.dir/clean
+
+gtest/googletest/CMakeFiles/gtest.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /usr/src/googletest/googletest /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : gtest/googletest/CMakeFiles/gtest.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest.dir/cmake_clean.cmake
new file mode 100644
index 0000000..0efb9da
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest.dir/cmake_clean.cmake
@@ -0,0 +1,10 @@
+file(REMOVE_RECURSE
+  "../../bin/libgtest.pdb"
+  "../lib/libgtest.so"
+  "CMakeFiles/gtest.dir/src/gtest-all.cc.o"
+)
+
+# Per-language clean rules from dependency scanning.
+foreach(lang CXX)
+  include(CMakeFiles/gtest.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest.dir/depend.make
new file mode 100644
index 0000000..37ac348
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest.dir/depend.make
@@ -0,0 +1,2 @@
+# Empty dependencies file for gtest.
+# This may be replaced when dependencies are built.
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest.dir/flags.make b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest.dir/flags.make
new file mode 100644
index 0000000..9d7a494
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest.dir/flags.make
@@ -0,0 +1,10 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# compile CXX with /usr/bin/c++
+CXX_FLAGS = -O3 -DNDEBUG -fPIC   -Wall -Wshadow -Wno-error=dangling-else -DGTEST_HAS_PTHREAD=1 -fexceptions -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -std=c++11
+
+CXX_DEFINES = -DGTEST_CREATE_SHARED_LIBRARY=1 -Dgtest_EXPORTS
+
+CXX_INCLUDES = -I/usr/src/googletest/googletest/include -I/usr/src/googletest/googletest 
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest.dir/link.txt b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest.dir/link.txt
new file mode 100644
index 0000000..40380ea
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest.dir/link.txt
@@ -0,0 +1 @@
+/usr/bin/c++ -fPIC -O3 -DNDEBUG  -shared -Wl,-soname,libgtest.so -o ../lib/libgtest.so CMakeFiles/gtest.dir/src/gtest-all.cc.o  -lpthread 
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest.dir/progress.make
new file mode 100644
index 0000000..3a86673
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest.dir/progress.make
@@ -0,0 +1,3 @@
+CMAKE_PROGRESS_1 = 5
+CMAKE_PROGRESS_2 = 6
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest_main.dir/DependInfo.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest_main.dir/DependInfo.cmake
new file mode 100644
index 0000000..1ef7f50
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest_main.dir/DependInfo.cmake
@@ -0,0 +1,29 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  "CXX"
+  )
+# The set of files for implicit dependencies of each language:
+set(CMAKE_DEPENDS_CHECK_CXX
+  "/usr/src/googletest/googletest/src/gtest_main.cc" "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o"
+  )
+set(CMAKE_CXX_COMPILER_ID "GNU")
+
+# Preprocessor definitions for this target.
+set(CMAKE_TARGET_DEFINITIONS_CXX
+  "GTEST_CREATE_SHARED_LIBRARY=1"
+  "gtest_main_EXPORTS"
+  )
+
+# The include file search paths:
+set(CMAKE_CXX_TARGET_INCLUDE_PATH
+  "/usr/src/googletest/googletest/include"
+  "/usr/src/googletest/googletest"
+  )
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  "/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest.dir/DependInfo.cmake"
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest_main.dir/build.make b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest_main.dir/build.make
new file mode 100644
index 0000000..906da15
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest_main.dir/build.make
@@ -0,0 +1,99 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+# Include any dependencies generated for this target.
+include gtest/googletest/CMakeFiles/gtest_main.dir/depend.make
+
+# Include the progress variables for this target.
+include gtest/googletest/CMakeFiles/gtest_main.dir/progress.make
+
+# Include the compile flags for this target's objects.
+include gtest/googletest/CMakeFiles/gtest_main.dir/flags.make
+
+gtest/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o: gtest/googletest/CMakeFiles/gtest_main.dir/flags.make
+gtest/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o: /usr/src/googletest/googletest/src/gtest_main.cc
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object gtest/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o"
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest && /usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/gtest_main.dir/src/gtest_main.cc.o -c /usr/src/googletest/googletest/src/gtest_main.cc
+
+gtest/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/gtest_main.dir/src/gtest_main.cc.i"
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /usr/src/googletest/googletest/src/gtest_main.cc > CMakeFiles/gtest_main.dir/src/gtest_main.cc.i
+
+gtest/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/gtest_main.dir/src/gtest_main.cc.s"
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /usr/src/googletest/googletest/src/gtest_main.cc -o CMakeFiles/gtest_main.dir/src/gtest_main.cc.s
+
+# Object files for target gtest_main
+gtest_main_OBJECTS = \
+"CMakeFiles/gtest_main.dir/src/gtest_main.cc.o"
+
+# External object files for target gtest_main
+gtest_main_EXTERNAL_OBJECTS =
+
+gtest/lib/libgtest_main.so: gtest/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o
+gtest/lib/libgtest_main.so: gtest/googletest/CMakeFiles/gtest_main.dir/build.make
+gtest/lib/libgtest_main.so: gtest/lib/libgtest.so
+gtest/lib/libgtest_main.so: gtest/googletest/CMakeFiles/gtest_main.dir/link.txt
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX shared library ../lib/libgtest_main.so"
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/gtest_main.dir/link.txt --verbose=$(VERBOSE)
+
+# Rule to build all files generated by this target.
+gtest/googletest/CMakeFiles/gtest_main.dir/build: gtest/lib/libgtest_main.so
+
+.PHONY : gtest/googletest/CMakeFiles/gtest_main.dir/build
+
+gtest/googletest/CMakeFiles/gtest_main.dir/clean:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest && $(CMAKE_COMMAND) -P CMakeFiles/gtest_main.dir/cmake_clean.cmake
+.PHONY : gtest/googletest/CMakeFiles/gtest_main.dir/clean
+
+gtest/googletest/CMakeFiles/gtest_main.dir/depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc /usr/src/googletest/googletest /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest_main.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : gtest/googletest/CMakeFiles/gtest_main.dir/depend
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest_main.dir/cmake_clean.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest_main.dir/cmake_clean.cmake
new file mode 100644
index 0000000..663b59e
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest_main.dir/cmake_clean.cmake
@@ -0,0 +1,10 @@
+file(REMOVE_RECURSE
+  "../../bin/libgtest_main.pdb"
+  "../lib/libgtest_main.so"
+  "CMakeFiles/gtest_main.dir/src/gtest_main.cc.o"
+)
+
+# Per-language clean rules from dependency scanning.
+foreach(lang CXX)
+  include(CMakeFiles/gtest_main.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest_main.dir/depend.make b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest_main.dir/depend.make
new file mode 100644
index 0000000..1d67c1a
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest_main.dir/depend.make
@@ -0,0 +1,2 @@
+# Empty dependencies file for gtest_main.
+# This may be replaced when dependencies are built.
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest_main.dir/flags.make b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest_main.dir/flags.make
new file mode 100644
index 0000000..2b70858
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest_main.dir/flags.make
@@ -0,0 +1,10 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# compile CXX with /usr/bin/c++
+CXX_FLAGS = -O3 -DNDEBUG -fPIC   -Wall -Wshadow -Wno-error=dangling-else -DGTEST_HAS_PTHREAD=1 -fexceptions -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -DGTEST_HAS_PTHREAD=1 -std=c++11
+
+CXX_DEFINES = -DGTEST_CREATE_SHARED_LIBRARY=1 -Dgtest_main_EXPORTS
+
+CXX_INCLUDES = -isystem /usr/src/googletest/googletest/include -isystem /usr/src/googletest/googletest 
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest_main.dir/link.txt b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest_main.dir/link.txt
new file mode 100644
index 0000000..c4e7a97
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest_main.dir/link.txt
@@ -0,0 +1 @@
+/usr/bin/c++ -fPIC -O3 -DNDEBUG  -shared -Wl,-soname,libgtest_main.so -o ../lib/libgtest_main.so CMakeFiles/gtest_main.dir/src/gtest_main.cc.o  -Wl,-rpath,/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/lib ../lib/libgtest.so -lpthread 
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest_main.dir/progress.make b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest_main.dir/progress.make
new file mode 100644
index 0000000..72bb7dd
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/gtest_main.dir/progress.make
@@ -0,0 +1,3 @@
+CMAKE_PROGRESS_1 = 7
+CMAKE_PROGRESS_2 = 8
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/progress.marks b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/progress.marks
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/progress.marks
@@ -0,0 +1 @@
+0
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CTestTestfile.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CTestTestfile.cmake
new file mode 100644
index 0000000..6bfdec1
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CTestTestfile.cmake
@@ -0,0 +1,6 @@
+# CMake generated Testfile for 
+# Source directory: /usr/src/googletest/googletest
+# Build directory: /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest
+# 
+# This file includes the relevant testing commands required for 
+# testing this directory and lists subdirectories to be tested as well.
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/Makefile b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/Makefile
new file mode 100644
index 0000000..4af34f0
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/Makefile
@@ -0,0 +1,288 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.16
+
+# Default target executed when no arguments are given to make.
+default_target: all
+
+.PHONY : default_target
+
+# Allow only one "make -f Makefile2" at a time, but pass parallelism.
+.NOTPARALLEL:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver
+
+#=============================================================================
+# Targets provided globally by CMake.
+
+# Special rule for the target install/strip
+install/strip: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+	/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip
+
+# Special rule for the target install/strip
+install/strip/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+	/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip/fast
+
+# Special rule for the target install/local
+install/local: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+	/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local
+
+# Special rule for the target install/local
+install/local/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+	/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local/fast
+
+# Special rule for the target install
+install: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+	/usr/bin/cmake -P cmake_install.cmake
+.PHONY : install
+
+# Special rule for the target install
+install/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+	/usr/bin/cmake -P cmake_install.cmake
+.PHONY : install/fast
+
+# Special rule for the target list_install_components
+list_install_components:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\""
+.PHONY : list_install_components
+
+# Special rule for the target list_install_components
+list_install_components/fast: list_install_components
+
+.PHONY : list_install_components/fast
+
+# Special rule for the target rebuild_cache
+rebuild_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
+	/usr/bin/cmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : rebuild_cache
+
+# Special rule for the target rebuild_cache
+rebuild_cache/fast: rebuild_cache
+
+.PHONY : rebuild_cache/fast
+
+# Special rule for the target edit_cache
+edit_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..."
+	/usr/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : edit_cache
+
+# Special rule for the target edit_cache
+edit_cache/fast: edit_cache
+
+.PHONY : edit_cache/fast
+
+# Special rule for the target test
+test:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..."
+	/usr/bin/ctest --force-new-ctest-process $(ARGS)
+.PHONY : test
+
+# Special rule for the target test
+test/fast: test
+
+.PHONY : test/fast
+
+# The main all target
+all: cmake_check_build_system
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/CMakeFiles/progress.marks
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(MAKE) -f CMakeFiles/Makefile2 gtest/googletest/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/CMakeFiles 0
+.PHONY : all
+
+# The main clean target
+clean:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(MAKE) -f CMakeFiles/Makefile2 gtest/googletest/clean
+.PHONY : clean
+
+# The main clean target
+clean/fast: clean
+
+.PHONY : clean/fast
+
+# Prepare targets for installation.
+preinstall: all
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(MAKE) -f CMakeFiles/Makefile2 gtest/googletest/preinstall
+.PHONY : preinstall
+
+# Prepare targets for installation.
+preinstall/fast:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(MAKE) -f CMakeFiles/Makefile2 gtest/googletest/preinstall
+.PHONY : preinstall/fast
+
+# clear depends
+depend:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
+.PHONY : depend
+
+# Convenience name for target.
+gtest/googletest/CMakeFiles/gtest_main.dir/rule:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(MAKE) -f CMakeFiles/Makefile2 gtest/googletest/CMakeFiles/gtest_main.dir/rule
+.PHONY : gtest/googletest/CMakeFiles/gtest_main.dir/rule
+
+# Convenience name for target.
+gtest_main: gtest/googletest/CMakeFiles/gtest_main.dir/rule
+
+.PHONY : gtest_main
+
+# fast build rule for target.
+gtest_main/fast:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(MAKE) -f gtest/googletest/CMakeFiles/gtest_main.dir/build.make gtest/googletest/CMakeFiles/gtest_main.dir/build
+.PHONY : gtest_main/fast
+
+# Convenience name for target.
+gtest/googletest/CMakeFiles/gtest.dir/rule:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(MAKE) -f CMakeFiles/Makefile2 gtest/googletest/CMakeFiles/gtest.dir/rule
+.PHONY : gtest/googletest/CMakeFiles/gtest.dir/rule
+
+# Convenience name for target.
+gtest: gtest/googletest/CMakeFiles/gtest.dir/rule
+
+.PHONY : gtest
+
+# fast build rule for target.
+gtest/fast:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(MAKE) -f gtest/googletest/CMakeFiles/gtest.dir/build.make gtest/googletest/CMakeFiles/gtest.dir/build
+.PHONY : gtest/fast
+
+src/gtest-all.o: src/gtest-all.cc.o
+
+.PHONY : src/gtest-all.o
+
+# target to build an object file
+src/gtest-all.cc.o:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(MAKE) -f gtest/googletest/CMakeFiles/gtest.dir/build.make gtest/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o
+.PHONY : src/gtest-all.cc.o
+
+src/gtest-all.i: src/gtest-all.cc.i
+
+.PHONY : src/gtest-all.i
+
+# target to preprocess a source file
+src/gtest-all.cc.i:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(MAKE) -f gtest/googletest/CMakeFiles/gtest.dir/build.make gtest/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.i
+.PHONY : src/gtest-all.cc.i
+
+src/gtest-all.s: src/gtest-all.cc.s
+
+.PHONY : src/gtest-all.s
+
+# target to generate assembly for a file
+src/gtest-all.cc.s:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(MAKE) -f gtest/googletest/CMakeFiles/gtest.dir/build.make gtest/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.s
+.PHONY : src/gtest-all.cc.s
+
+src/gtest_main.o: src/gtest_main.cc.o
+
+.PHONY : src/gtest_main.o
+
+# target to build an object file
+src/gtest_main.cc.o:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(MAKE) -f gtest/googletest/CMakeFiles/gtest_main.dir/build.make gtest/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o
+.PHONY : src/gtest_main.cc.o
+
+src/gtest_main.i: src/gtest_main.cc.i
+
+.PHONY : src/gtest_main.i
+
+# target to preprocess a source file
+src/gtest_main.cc.i:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(MAKE) -f gtest/googletest/CMakeFiles/gtest_main.dir/build.make gtest/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.i
+.PHONY : src/gtest_main.cc.i
+
+src/gtest_main.s: src/gtest_main.cc.s
+
+.PHONY : src/gtest_main.s
+
+# target to generate assembly for a file
+src/gtest_main.cc.s:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(MAKE) -f gtest/googletest/CMakeFiles/gtest_main.dir/build.make gtest/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.s
+.PHONY : src/gtest_main.cc.s
+
+# Help Target
+help:
+	@echo "The following are some of the valid targets for this Makefile:"
+	@echo "... all (the default if no target is provided)"
+	@echo "... clean"
+	@echo "... depend"
+	@echo "... install/strip"
+	@echo "... install/local"
+	@echo "... install"
+	@echo "... list_install_components"
+	@echo "... rebuild_cache"
+	@echo "... edit_cache"
+	@echo "... test"
+	@echo "... gtest_main"
+	@echo "... gtest"
+	@echo "... src/gtest-all.o"
+	@echo "... src/gtest-all.i"
+	@echo "... src/gtest-all.s"
+	@echo "... src/gtest_main.o"
+	@echo "... src/gtest_main.i"
+	@echo "... src/gtest_main.s"
+.PHONY : help
+
+
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+	cd /home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/cmake_install.cmake b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/cmake_install.cmake
new file mode 100644
index 0000000..850932b
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/gtest/googletest/cmake_install.cmake
@@ -0,0 +1,39 @@
+# Install script for directory: /usr/src/googletest/googletest
+
+# Set the install prefix
+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
+  set(CMAKE_INSTALL_PREFIX "/usr/local")
+endif()
+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+  if(BUILD_TYPE)
+    string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+           CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+  else()
+    set(CMAKE_INSTALL_CONFIG_NAME "Release")
+  endif()
+  message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+endif()
+
+# Set the component getting installed.
+if(NOT CMAKE_INSTALL_COMPONENT)
+  if(COMPONENT)
+    message(STATUS "Install component: \"${COMPONENT}\"")
+    set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+  else()
+    set(CMAKE_INSTALL_COMPONENT)
+  endif()
+endif()
+
+# Install shared libraries without execute permission?
+if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
+  set(CMAKE_INSTALL_SO_NO_EXE "1")
+endif()
+
+# Is this installation the result of a crosscompile?
+if(NOT DEFINED CMAKE_CROSSCOMPILING)
+  set(CMAKE_CROSSCOMPILING "FALSE")
+endif()
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/make_acado_solver.m b/mav_control_rw/mav_nonlinear_mpc/solver/make_acado_solver.m
new file mode 100644
index 0000000..668fd11
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/make_acado_solver.m
@@ -0,0 +1,85 @@
+%
+%    This file was auto-generated using the ACADO Toolkit.
+%    
+%    While ACADO Toolkit is free software released under the terms of
+%    the GNU Lesser General Public License (LGPL), the generated code
+%    as such remains the property of the user who used ACADO Toolkit
+%    to generate this code. In particular, user dependent data of the code
+%    do not inherit the GNU LGPL license. On the other hand, parts of the
+%    generated code that are a direct copy of source code from the
+%    ACADO Toolkit or the software tools it is based on, remain, as derived
+%    work, automatically covered by the LGPL license.
+%    
+%    ACADO Toolkit 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.
+%    
+
+
+function make_acado_solver( name )
+
+	% Output file name, and also function name
+	if (nargin > 0)
+		fileOut = name;
+	else
+		fileOut = 'acado_solver';
+	end;
+		
+	% Root folder of code generation
+	CGRoot = '.';	
+	
+	% qpOASES embedded source files
+	qpOASESSources = [ ...
+		'CGRoot/qpoases/SRC/Bounds.cpp ' ...
+		'CGRoot/qpoases/SRC/Constraints.cpp ' ...
+		'CGRoot/qpoases/SRC/CyclingManager.cpp ' ...
+		'CGRoot/qpoases/SRC/Indexlist.cpp ' ...
+		'CGRoot/qpoases/SRC/MessageHandling.cpp ' ...
+		'CGRoot/qpoases/SRC/QProblem.cpp ' ...
+		'CGRoot/qpoases/SRC/QProblemB.cpp ' ...
+		'CGRoot/qpoases/SRC/SubjectTo.cpp ' ...
+		'CGRoot/qpoases/SRC/Utils.cpp ' ...
+		'CGRoot/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp ' ...
+		];
+		
+	% Auto-generated files
+	CGSources = [ ...
+		'CGRoot/acado_solver_mex.c ' ...
+		'CGRoot/acado_solver.c ' ...
+		'CGRoot/acado_integrator.c ' ...
+		'CGRoot/acado_auxiliary_functions.c ' ...
+		'CGRoot/acado_qpoases_interface.cpp ' ...
+		];
+	if (nargin > 1)
+		CGSources = [CGSources extern];
+	end
+		
+	% Adding additional linker flags for Linux
+	ldFlags = '';
+	if (isunix() && ~ismac())
+		ldFlags = '-lrt';
+    elseif (ispc)
+        ldFlags = '-DWIN32';
+	end;
+
+	% Recipe for compilation
+	CGRecipe = [ ...
+		'mex -O' ...
+		' -I. -I''CGRoot'' -I''CGRoot/qpoases'' -I''CGRoot/qpoases/INCLUDE'' -I''CGRoot/qpoases/SRC''' ...
+		' ldFlags' ...
+		' -D__MATLAB__ -DQPOASES_CUSTOM_INTERFACE="acado_qpoases_interface.hpp" -O CGSources qpOASESSources -output %s.%s' ...
+		];
+
+% Compilation
+qpOASESSources = regexprep(qpOASESSources, 'CGRoot', CGRoot);
+CGSources = regexprep(CGSources, 'CGRoot', CGRoot);
+
+CGRecipe = regexprep(CGRecipe, 'CGRoot', CGRoot);
+CGRecipe = regexprep(CGRecipe, 'CGSources', CGSources);
+CGRecipe = regexprep(CGRecipe, 'qpOASESSources', qpOASESSources);
+CGRecipe = regexprep(CGRecipe, 'ldFlags', ldFlags);
+
+% disp( sprintf( CGRecipe, fileOut, mexext ) ); 
+fprintf( 'compiling... ' );
+eval( sprintf(CGRecipe, fileOut, mexext) );
+fprintf( ['done! --> ' fileOut '.' mexext '\n'] );
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/nmpc_solver_setup b/mav_control_rw/mav_nonlinear_mpc/solver/nmpc_solver_setup
new file mode 100644
index 0000000000000000000000000000000000000000..a4ad5b521bc550b0c90470f7fff32b5ffc6dcec4
GIT binary patch
literal 1400512
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%0A1JGIus53t
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
F0RTy(Fq{AY

literal 0
HcmV?d00001

diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/nmpc_solver_setup.m b/mav_control_rw/mav_nonlinear_mpc/solver/nmpc_solver_setup.m
new file mode 100644
index 0000000..9ab2e1c
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/nmpc_solver_setup.m
@@ -0,0 +1,93 @@
+clc;
+clear all;
+close all;
+
+Ts = 0.1; %prediction sampling time
+EXPORT = 1;
+
+DifferentialState velocity(3) roll pitch yaw position(3) ;
+Control roll_ref pitch_ref thrust;
+
+OnlineData roll_tau;
+OnlineData roll_gain;
+OnlineData pitch_tau;
+OnlineData pitch_gain;
+OnlineData linear_drag_coefficient(2);
+OnlineData external_forces(3);
+
+n_XD = length(diffStates);
+n_U = length(controls);
+
+g = [0;0;9.8066];
+
+%% Differential Equation
+
+R = [cos(yaw)*cos(pitch)  cos(yaw)*sin(pitch)*sin(roll)-cos(roll)*sin(yaw)  (cos(yaw)*sin(pitch)*cos(roll)+sin(yaw)*sin(roll)); ...
+    cos(pitch)*sin(yaw)  cos(yaw)*cos(roll)+sin(yaw)*sin(pitch)*sin(roll)  (sin(yaw)*sin(pitch)*cos(roll)-cos(yaw)*sin(roll)); ...
+    -sin(pitch)                            cos(pitch)*sin(roll)                            cos(pitch)*cos(roll)];
+
+z_B = R(:,3);
+
+%nonlinear drag model
+drag_acc = thrust*[linear_drag_coefficient1 0 0; 0 linear_drag_coefficient2 0; 0 0 0]*R'*velocity;
+
+droll = (1/roll_tau)*(roll_gain*roll_ref - roll);
+dpitch = (1/pitch_tau)*(pitch_gain*pitch_ref - pitch);
+
+
+f = dot([velocity; roll; pitch; yaw; position]) == ...
+    [z_B*thrust-g-drag_acc+external_forces;...
+    droll; ...
+    dpitch;...
+    0;...
+    velocity;...
+    ];
+
+h = [position;...
+    velocity;...
+    roll;...
+    pitch;...
+    roll_ref;...
+    pitch_ref;...
+    z_B(3)*thrust-g(3)];
+
+hN = [position;...
+    velocity];
+
+%% MPCexport
+acadoSet('problemname', 'mav_position_mpc');
+
+N = 20;
+ocp = acado.OCP( 0.0, N*Ts, N );
+
+W_mat = eye(length(h));
+WN_mat = eye(length(hN));
+W = acado.BMatrix(W_mat);
+WN = acado.BMatrix(WN_mat);
+
+ocp.minimizeLSQ( W, h );
+ocp.minimizeLSQEndTerm( WN, hN );
+ocp.subjectTo(-deg2rad(45) <= [roll_ref; pitch_ref] <= deg2rad(45));
+ocp.subjectTo( g(3)/2.0 <= thrust <= g(3)*1.5);
+ocp.setModel(f);
+
+
+mpc = acado.OCPexport( ocp );
+mpc.set( 'HESSIAN_APPROXIMATION',       'GAUSS_NEWTON'      );
+mpc.set( 'DISCRETIZATION_TYPE',         'MULTIPLE_SHOOTING' );
+mpc.set( 'SPARSE_QP_SOLUTION',        'FULL_CONDENSING_N2'  ); %FULL_CONDENsinG_N2
+mpc.set( 'INTEGRATOR_TYPE',             'INT_IRK_GL2'       );
+mpc.set( 'NUM_INTEGRATOR_STEPS',         N                  );
+mpc.set( 'QP_SOLVER',                   'QP_QPOASES'    	);
+mpc.set( 'HOTSTART_QP',                 'NO'             	);
+mpc.set( 'LEVENBERG_MARQUARDT',          1e-10				);
+mpc.set( 'LINEAR_ALGEBRA_SOLVER',        'GAUSS_LU'         );
+mpc.set( 'IMPLICIT_INTEGRATOR_NUM_ITS',  2                  );
+mpc.set( 'CG_USE_OPENMP',                'YES'              );
+mpc.set( 'CG_HARDCODE_CONSTRAINT_VALUES', 'NO'              );
+mpc.set( 'CG_USE_VARIABLE_WEIGHTING_MATRIX', 'NO'           );
+
+
+if EXPORT
+    mpc.exportCode('.');
+end
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/EXAMPLES/example1.cpp b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/EXAMPLES/example1.cpp
new file mode 100644
index 0000000..92b47fc
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/EXAMPLES/example1.cpp
@@ -0,0 +1,74 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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 EXAMPLES/example1.cpp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Very simple example for testing qpOASES (using QProblem class).
+ */
+
+
+#include <QProblem.hpp>
+
+
+/** Example for qpOASES main function using the QProblem class. */
+int main( )
+{
+	/* Setup data of first QP. */
+	real_t H[2*2] = { 1.0, 0.0, 0.0, 0.5 };
+	real_t A[1*2] = { 1.0, 1.0 };
+	real_t g[2] = { 1.5, 1.0 };
+	real_t lb[2] = { 0.5, -2.0 };
+	real_t ub[2] = { 5.0, 2.0 };
+	real_t lbA[1] = { -1.0 };
+	real_t ubA[1] = { 2.0 };
+
+	/* Setup data of second QP. */
+	real_t g_new[2] = { 1.0, 1.5 };
+	real_t lb_new[2] = { 0.0, -1.0 };
+	real_t ub_new[2] = { 5.0, -0.5 };
+	real_t lbA_new[1] = { -2.0 };
+	real_t ubA_new[1] = { 1.0 };
+
+
+	/* Setting up QProblem object. */
+	QProblem example( 2,1 );
+
+	/* Solve first QP. */
+	int nWSR = 10;
+	example.init( H,g,A,lb,ub,lbA,ubA, nWSR,0 );
+
+	/* Solve second QP. */
+	nWSR = 10;
+	example.hotstart( g_new,lb_new,ub_new,lbA_new,ubA_new, nWSR,0 );
+
+	return 0;
+}
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/EXAMPLES/example1b.cpp b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/EXAMPLES/example1b.cpp
new file mode 100644
index 0000000..331f19d
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/EXAMPLES/example1b.cpp
@@ -0,0 +1,69 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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 EXAMPLES/example1b.cpp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3
+ *	\date 2007-2008
+ *
+ *	Very simple example for testing qpOASES using the QProblemB class.
+ */
+
+
+#include <QProblemB.hpp>
+
+
+/** Example for qpOASES main function using the QProblemB class. */
+int main( )
+{
+	/* Setup data of first QP. */
+	real_t H[2*2] = { 1.0, 0.0, 0.0, 0.5 };
+	real_t g[2] = { 1.5, 1.0 };
+	real_t lb[2] = { 0.5, -2.0 };
+	real_t ub[2] = { 5.0, 2.0 };
+
+	/* Setup data of second QP. */
+	real_t g_new[2] = { 1.0, 1.5 };
+	real_t lb_new[2] = { 0.0, -1.0 };
+	real_t ub_new[2] = { 5.0, -0.5 };
+
+
+	/* Setting up QProblemB object. */
+	QProblemB example( 2 );
+
+	/* Solve first QP. */
+	int nWSR = 10;
+	example.init( H,g,lb,ub, nWSR,0 );
+
+	/* Solve second QP. */
+	nWSR = 10;
+	example.hotstart( g_new,lb_new,ub_new, nWSR,0 );
+
+	return 0;
+}
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/Bounds.hpp b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/Bounds.hpp
new file mode 100644
index 0000000..7260756
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/Bounds.hpp
@@ -0,0 +1,189 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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/Bounds.hpp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Declaration of the Bounds class designed to manage working sets of
+ *	bounds within a QProblem.
+ */
+
+
+#ifndef QPOASES_BOUNDS_HPP
+#define QPOASES_BOUNDS_HPP
+
+
+#include <SubjectTo.hpp>
+
+
+
+/** This class manages working sets of bounds by storing
+ *	index sets and other status information.
+ *
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ */
+class Bounds : public SubjectTo
+{
+	/*
+	 *	PUBLIC MEMBER FUNCTIONS
+	 */
+	public:
+		/** Default constructor. */
+		Bounds( );
+
+		/** Copy constructor (deep copy). */
+		Bounds(	const Bounds& rhs	/**< Rhs object. */
+				);
+
+		/** Destructor. */
+		~Bounds( );
+
+		/** Assignment operator (deep copy). */
+		Bounds& operator=(	const Bounds& rhs	/**< Rhs object. */
+							);
+
+
+		/** Pseudo-constructor takes the number of bounds.
+		 *	\return SUCCESSFUL_RETURN */
+		returnValue init(	int n	/**< Number of bounds. */
+							);
+
+
+		/** Initially adds number of a new (i.e. not yet in the list) bound to
+		 *  given index set.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_SETUP_BOUND_FAILED \n
+					RET_INDEX_OUT_OF_BOUNDS \n
+					RET_INVALID_ARGUMENTS */
+		returnValue setupBound(	int _number,					/**< Number of new bound. */
+								SubjectToStatus _status			/**< Status of new bound. */
+								);
+
+		/** Initially adds all numbers of new (i.e. not yet in the list) bounds to
+		 *  to the index set of free bounds; the order depends on the SujectToType
+		 *  of each index.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_SETUP_BOUND_FAILED */
+		returnValue setupAllFree( );
+
+
+		/** Moves index of a bound from index list of fixed to that of free bounds.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_MOVING_BOUND_FAILED \n
+					RET_INDEX_OUT_OF_BOUNDS */
+		returnValue moveFixedToFree(	int _number				/**< Number of bound to be freed. */
+										);
+
+		/** Moves index of a bound from index list of free to that of fixed bounds.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_MOVING_BOUND_FAILED \n
+					RET_INDEX_OUT_OF_BOUNDS */
+		returnValue moveFreeToFixed(	int _number,			/**< Number of bound to be fixed. */
+										SubjectToStatus _status	/**< Status of bound to be fixed. */
+										);
+
+		/** Swaps the indices of two free bounds within the index set.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_SWAPINDEX_FAILED */
+		returnValue swapFree(	int number1,					/**< Number of first constraint or bound. */
+								int number2						/**< Number of second constraint or bound. */
+								);
+
+
+		/** Returns number of variables.
+		 *	\return Number of variables. */
+		inline int getNV( ) const;
+
+		/** Returns number of implicitly fixed variables.
+		 *	\return Number of implicitly fixed variables. */
+		inline int getNFV( ) const;
+
+		/** Returns number of bounded (but possibly free) variables.
+		 *	\return Number of bounded (but possibly free) variables. */
+		inline int getNBV( ) const;
+
+		/** Returns number of unbounded variables.
+		 *	\return Number of unbounded variables. */
+		inline int getNUV( ) const;
+
+
+		/** Sets number of implicitly fixed variables.
+		 *	\return SUCCESSFUL_RETURN */
+		inline returnValue setNFV(	int n	/**< Number of implicitly fixed variables. */
+									);
+
+		/** Sets number of bounded (but possibly free) variables.
+		 *	\return SUCCESSFUL_RETURN */
+		inline returnValue setNBV(	int n	/**< Number of bounded (but possibly free) variables. */
+									);
+
+		/** Sets number of unbounded variables.
+		 *	\return SUCCESSFUL_RETURN */
+		inline returnValue setNUV(	int n	/**< Number of unbounded variables */
+									);
+
+
+		/** Returns number of free variables.
+		 *	\return Number of free variables. */
+		inline int getNFR( );
+
+		/** Returns number of fixed variables.
+		 *	\return Number of fixed variables. */
+		inline int getNFX( );
+
+
+		/** Returns a pointer to free variables index list.
+		 *	\return Pointer to free variables index list. */
+		inline Indexlist* getFree( );
+
+		/** Returns a pointer to fixed variables index list.
+		 *	\return Pointer to fixed variables index list. */
+		inline Indexlist* getFixed( );
+
+
+	/*
+	 *	PROTECTED MEMBER VARIABLES
+	 */
+	protected:
+		int nV;					/**< Number of variables (nV = nFV + nBV + nUV). */
+		int nFV;				/**< Number of implicitly fixed variables. */
+		int	nBV;				/**< Number of bounded (but possibly free) variables. */
+		int nUV;				/**< Number of unbounded variables. */
+
+		Indexlist free;			/**< Index list of free variables. */
+		Indexlist fixed;		/**< Index list of fixed variables. */
+};
+
+#include <Bounds.ipp>
+
+#endif	/* QPOASES_BOUNDS_HPP */
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/Constants.hpp b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/Constants.hpp
new file mode 100644
index 0000000..92ee812
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/Constants.hpp
@@ -0,0 +1,108 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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/Constants.hpp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2008
+ *
+ *	Definition of all global constants.
+ */
+
+
+#ifndef QPOASES_CONSTANTS_HPP
+#define QPOASES_CONSTANTS_HPP
+
+#ifndef QPOASES_CUSTOM_INTERFACE
+#include "acado_qpoases_interface.hpp"
+#else
+  #define XSTR(x) #x
+  #define STR(x) XSTR(x)
+  #include STR(QPOASES_CUSTOM_INTERFACE)
+#endif
+
+/** Maximum number of variables within a QP formulation.
+	Note: this value has to be positive! */
+const int NVMAX = QPOASES_NVMAX;
+
+/** Maximum number of constraints within a QP formulation.
+	Note: this value has to be positive! */
+const int NCMAX = QPOASES_NCMAX;
+
+/** Redefinition of NCMAX used for memory allocation, to avoid zero sized arrays
+    and compiler errors. */
+const int NCMAX_ALLOC = (NCMAX == 0) ? 1 : NCMAX;
+
+/**< Maximum number of working set recalculations.
+	Note: this value has to be positive! */
+const int NWSRMAX = QPOASES_NWSRMAX;
+
+/** Desired KKT tolerance of QP solution; a warning RET_INACCURATE_SOLUTION is
+ *  issued if this tolerance is not met.
+ *	Note: this value has to be positive! */
+const real_t DESIREDACCURACY = (real_t) 1.0e-3;
+
+/** Critical KKT tolerance of QP solution; an error is issued if this
+ *  tolerance is not met.
+ *	Note: this value has to be positive! */
+const real_t CRITICALACCURACY = (real_t) 1.0e-2;
+
+
+
+/** Numerical value of machine precision (min eps, s.t. 1+eps > 1).
+	Note: this value has to be positive! */
+const real_t EPS = (real_t) QPOASES_EPS;
+
+/** Numerical value of zero (for situations in which it would be
+ *	unreasonable to compare with 0.0).
+ *	Note: this value has to be positive! */
+const real_t ZERO = (real_t) 1.0e-50;
+
+/** Numerical value of infinity (e.g. for non-existing bounds).
+ *	Note: this value has to be positive! */
+const real_t INFTY = (real_t) 1.0e12;
+
+
+/** Lower/upper (constraints') bound tolerance (an inequality constraint
+ *	whose lower and upper bound differ by less than BOUNDTOL is regarded
+ *	to be an equality constraint).
+ *	Note: this value has to be positive! */
+const real_t BOUNDTOL = (real_t) 1.0e-10;
+
+/** Offset for relaxing (constraints') bounds at beginning of an initial homotopy.
+ *	Note: this value has to be positive! */
+const real_t BOUNDRELAXATION = (real_t) 1.0e3;
+
+
+/** Factor that determines physical lengths of index lists.
+ *	Note: this value has to be greater than 1! */
+const int INDEXLISTFACTOR = 5;
+
+
+#endif	/* QPOASES_CONSTANTS_HPP */
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/Constraints.hpp b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/Constraints.hpp
new file mode 100644
index 0000000..8991679
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/Constraints.hpp
@@ -0,0 +1,181 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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/Constraints.hpp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Declaration of the Constraints class designed to manage working sets of
+ *	constraints within a QProblem.
+ */
+
+
+#ifndef QPOASES_CONSTRAINTS_HPP
+#define QPOASES_CONSTRAINTS_HPP
+
+
+#include <SubjectTo.hpp>
+
+
+
+/** This class manages working sets of constraints by storing
+ *	index sets and other status information.
+ *
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ */
+class Constraints : public SubjectTo
+{
+	/*
+	 *	PUBLIC MEMBER FUNCTIONS
+	 */
+	public:
+		/** Default constructor. */
+		Constraints( );
+
+		/** Copy constructor (deep copy). */
+		Constraints(	const Constraints& rhs	/**< Rhs object. */
+						);
+
+		/** Destructor. */
+		~Constraints( );
+
+		/** Assignment operator (deep copy). */
+		Constraints& operator=(	const Constraints& rhs	/**< Rhs object. */
+								);
+
+
+		/** Pseudo-constructor takes the number of constraints.
+		 *	\return SUCCESSFUL_RETURN */
+		returnValue init(	int n	/**< Number of constraints. */
+							);
+
+
+		/** Initially adds number of a new (i.e. not yet in the list) constraint to
+		 *  a given index set.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_SETUP_CONSTRAINT_FAILED \n
+					RET_INDEX_OUT_OF_BOUNDS \n
+					RET_INVALID_ARGUMENTS */
+		returnValue setupConstraint(	int _number,				/**< Number of new constraint. */
+										SubjectToStatus _status		/**< Status of new constraint. */
+										);
+
+		/** Initially adds all enabled numbers of new (i.e. not yet in the list) constraints to
+		 *  to the index set of inactive constraints; the order depends on the SujectToType
+		 *  of each index. Only disabled constraints are added to index set of disabled constraints!
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_SETUP_CONSTRAINT_FAILED */
+		returnValue setupAllInactive( );
+
+
+		/** Moves index of a constraint from index list of active to that of inactive constraints.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_MOVING_CONSTRAINT_FAILED */
+		returnValue moveActiveToInactive(	int _number				/**< Number of constraint to become inactive. */
+											);
+
+		/** Moves index of a constraint from index list of inactive to that of active constraints.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_MOVING_CONSTRAINT_FAILED */
+		returnValue moveInactiveToActive(	int _number,			/**< Number of constraint to become active. */
+											SubjectToStatus _status	/**< Status of constraint to become active. */
+											);
+
+
+		/** Returns the number of constraints.
+		 *	\return Number of constraints. */
+		inline int getNC( ) const;
+
+		/** Returns the number of implicit equality constraints.
+		 *	\return Number of implicit equality constraints. */
+		inline int getNEC( ) const;
+
+		/** Returns the number of "real" inequality constraints.
+		 *	\return Number of "real" inequality constraints. */
+		inline int getNIC( ) const;
+
+		/** Returns the number of unbounded constraints (i.e. without any bounds).
+		 *	\return Number of unbounded constraints (i.e. without any bounds). */
+		inline int getNUC( ) const;
+
+
+		/** Sets number of implicit equality constraints.
+		 *	\return SUCCESSFUL_RETURN */
+		inline returnValue setNEC(	int n	/**< Number of implicit equality constraints. */
+							);
+
+		/** Sets number of "real" inequality constraints.
+		 *	\return SUCCESSFUL_RETURN */
+		inline returnValue setNIC(	int n	/**< Number of "real" inequality constraints. */
+									);
+
+		/** Sets number of unbounded constraints (i.e. without any bounds).
+		 *	\return SUCCESSFUL_RETURN */
+		inline returnValue setNUC(	int n	/**< Number of unbounded constraints (i.e. without any bounds). */
+									);
+
+
+		/** Returns the number of active constraints.
+		 *	\return Number of constraints. */
+		inline int getNAC( );
+
+		/** Returns the number of inactive constraints.
+		 *	\return Number of constraints. */
+		inline int getNIAC( );
+
+
+		/** Returns a pointer to active constraints index list.
+		 *	\return Pointer to active constraints index list. */
+		inline Indexlist* getActive( );
+
+		/** Returns a pointer to inactive constraints index list.
+		 *	\return Pointer to inactive constraints index list. */
+		inline Indexlist* getInactive( );
+
+
+	/*
+	 *	PROTECTED MEMBER VARIABLES
+	 */
+	protected:
+		int nC;					/**< Number of constraints (nC = nEC + nIC + nUC). */
+		int nEC;				/**< Number of implicit equality constraints. */
+		int	nIC;				/**< Number of "real" inequality constraints. */
+		int nUC;				/**< Number of unbounded constraints (i.e. without any bounds). */
+
+		Indexlist active;		/**< Index list of active constraints. */
+		Indexlist inactive;		/**< Index list of inactive constraints. */
+};
+
+
+#include <Constraints.ipp>
+
+#endif	/* QPOASES_CONSTRAINTS_HPP */
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/CyclingManager.hpp b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/CyclingManager.hpp
new file mode 100644
index 0000000..b4410b1
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/CyclingManager.hpp
@@ -0,0 +1,126 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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/CyclingManager.hpp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Declaration of the CyclingManager class designed to detect
+ *	and handle possible cycling during QP iterations.
+ */
+
+
+#ifndef QPOASES_CYCLINGMANAGER_HPP
+#define QPOASES_CYCLINGMANAGER_HPP
+
+
+#include <Utils.hpp>
+
+
+
+/** This class is intended to detect and handle possible cycling during QP iterations.
+ *	As cycling seems to occur quite rarely, this class is NOT FULLY IMPLEMENTED YET!
+ *
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ */
+class CyclingManager
+{
+	/*
+	 *	PUBLIC MEMBER FUNCTIONS
+	 */
+	public:
+		/** Default constructor. */
+		CyclingManager( );
+
+		/** Copy constructor (deep copy). */
+		CyclingManager(	const CyclingManager& rhs	/**< Rhs object. */
+						);
+
+		/** Destructor. */
+		~CyclingManager( );
+
+		/** Copy asingment operator (deep copy). */
+		CyclingManager& operator=(	const CyclingManager& rhs	/**< Rhs object. */
+									);
+
+
+		/** Pseudo-constructor which takes the number of bounds/constraints.
+		 *	\return SUCCESSFUL_RETURN */
+		returnValue init(	int _nV,	/**< Number of bounds to be managed. */
+							int _nC		/**< Number of constraints to be managed. */
+							);
+
+
+		/** Stores index of a bound/constraint that might cause cycling.
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_INDEX_OUT_OF_BOUNDS */
+		returnValue setCyclingStatus(	int number,				/**< Number of bound/constraint. */
+										BooleanType isBound,	/**< Flag that indicates if given number corresponds to a
+																 *   bound (BT_TRUE) or a constraint (BT_FALSE). */
+										CyclingStatus _status	/**< Cycling status of bound/constraint. */
+										);
+
+		/** Returns if bound/constraint might cause cycling.
+		 *	\return BT_TRUE: bound/constraint might cause cycling \n
+		 			BT_FALSE: otherwise */
+		CyclingStatus getCyclingStatus(	int number,			/**< Number of bound/constraint. */
+										BooleanType isBound	/**< Flag that indicates if given number corresponds to
+															 *   a bound (BT_TRUE) or a constraint (BT_FALSE). */
+										) const;
+
+
+		/** Clears all previous cycling information.
+		 *	\return SUCCESSFUL_RETURN */
+		returnValue clearCyclingData( );
+
+
+		/** Returns if cycling was detected.
+		 *	\return BT_TRUE iff cycling was detected. */
+		inline BooleanType isCyclingDetected( ) const;
+
+
+	/*
+	 *	PROTECTED MEMBER VARIABLES
+	 */
+	protected:
+		int	nV;									/**< Number of managed bounds. */
+		int	nC;									/**< Number of managed constraints. */
+
+		CyclingStatus status[NVMAX+NCMAX];		/**< Array to store cycling status of all bounds/constraints. */
+
+		BooleanType cyclingDetected;			/**< Flag if cycling was detected. */
+};
+
+
+#include <CyclingManager.ipp>
+
+#endif	/* QPOASES_CYCLINGMANAGER_HPP */
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/EXTRAS/SolutionAnalysis.hpp b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/EXTRAS/SolutionAnalysis.hpp
new file mode 100644
index 0000000..056bb26
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/EXTRAS/SolutionAnalysis.hpp
@@ -0,0 +1,107 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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/EXTRAS/SolutionAnalysis.hpp
+ *	\author Milan Vukov, Boris Houska, Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2012
+ *
+ *	Solution analysis class, based on a class in the standard version of the qpOASES
+ */
+
+
+//
+
+#ifndef QPOASES_SOLUTIONANALYSIS_HPP
+#define QPOASES_SOLUTIONANALYSIS_HPP
+
+#include <QProblem.hpp>
+
+/** Enables the computation of variance as is in the standard version of qpOASES */
+#define QPOASES_USE_OLD_VERSION 0
+
+#if QPOASES_USE_OLD_VERSION
+#define KKT_DIM (2 * NVMAX + NCMAX)
+#endif
+
+class SolutionAnalysis
+{
+public:
+	
+	/** Default constructor. */
+	SolutionAnalysis( );
+	
+	/** Copy constructor (deep copy). */
+	SolutionAnalysis( 	const SolutionAnalysis& rhs	/**< Rhs object. */
+						);
+	
+	/** Destructor. */
+	~SolutionAnalysis( );
+	
+	/** Copy asingment operator (deep copy). */
+	SolutionAnalysis& operator=(	const SolutionAnalysis& rhs	/**< Rhs object. */
+									);
+	
+	/** A routine for computation of inverse of the Hessian matrix. */
+	returnValue getHessianInverse(
+									QProblem* qp,			/** QP */
+									real_t* hessianInverse	/** Inverse of the Hessian matrix*/
+									);
+	
+	/** A routine for computation of inverse of the Hessian matrix. */
+	returnValue getHessianInverse(	QProblemB* qp,			/** QP */
+									real_t* hessianInverse	/** Inverse of the Hessian matrix*/
+									);
+
+#if QPOASES_USE_OLD_VERSION
+	returnValue getVarianceCovariance(
+										QProblem* qp,
+										real_t* g_b_bA_VAR,
+										real_t* Primal_Dual_VAR
+										);
+#endif
+	
+private:
+	
+	real_t delta_g_cov[ NVMAX ];		/** A covariance-vector of g */
+	real_t delta_lb_cov[ NVMAX ];		/** A covariance-vector of lb */
+	real_t delta_ub_cov[ NVMAX ];		/** A covariance-vector of ub */
+	real_t delta_lbA_cov[ NCMAX_ALLOC ];		/** A covariance-vector of lbA */
+	real_t delta_ubA_cov[ NCMAX_ALLOC ];		/** A covariance-vector of ubA */
+	
+#if QPOASES_USE_OLD_VERSION
+	real_t K[KKT_DIM * KKT_DIM];		/** A matrix to store an intermediate result */
+#endif
+	
+	int FR_idx[ NVMAX ];				/** Index array for free variables */
+	int FX_idx[ NVMAX ];				/** Index array for fixed variables */
+	int AC_idx[ NCMAX_ALLOC ];				/** Index array for active constraints */
+	
+	real_t delta_xFR[ NVMAX ];			/** QP reaction, primal, w.r.t. free */
+	real_t delta_xFX[ NVMAX ];			/** QP reaction, primal, w.r.t. fixed */
+	real_t delta_yAC[ NVMAX ];			/** QP reaction, dual, w.r.t. active */
+	real_t delta_yFX[ NVMAX ];			/** QP reaction, dual, w.r.t. fixed*/
+};
+
+#endif // QPOASES_SOLUTIONANALYSIS_HPP
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/Indexlist.hpp b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/Indexlist.hpp
new file mode 100644
index 0000000..21c31dd
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/Indexlist.hpp
@@ -0,0 +1,154 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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/Indexlist.hpp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Declaration of the Indexlist class designed to manage index lists of
+ *	constraints and bounds within a SubjectTo object.
+ */
+
+
+#ifndef QPOASES_INDEXLIST_HPP
+#define QPOASES_INDEXLIST_HPP
+
+
+#include <Utils.hpp>
+
+
+/** This class manages index lists.
+ *
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ */
+class Indexlist
+{
+	/*
+	 *	PUBLIC MEMBER FUNCTIONS
+	 */
+	public:
+		/** Default constructor. */
+		Indexlist( );
+
+		/** Copy constructor (deep copy). */
+		Indexlist(	const Indexlist& rhs	/**< Rhs object. */
+					);
+
+		/** Destructor. */
+		~Indexlist( );
+
+		/** Assingment operator (deep copy). */
+		Indexlist& operator=(	const Indexlist& rhs	/**< Rhs object. */
+								);
+
+		/** Pseudo-constructor.
+		 *	\return SUCCESSFUL_RETURN */
+		returnValue init( );
+
+
+		/** Creates an array of all numbers within the index set in correct order.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_INDEXLIST_CORRUPTED */
+		returnValue	getNumberArray(	int* const numberarray	/**< Output: Array of numbers (NULL on error). */
+									) const;
+
+
+		/** Determines the index within the index list at with a given number is stored.
+		 *	\return >= 0: Index of given number. \n
+		 			-1: Number not found. */
+		int	getIndex(	int givennumber	/**< Number whose index shall be determined. */
+						) const;
+
+		/** Determines the physical index within the index list at with a given number is stored.
+		 *	\return >= 0: Index of given number. \n
+		 			-1: Number not found. */
+		int	getPhysicalIndex(	int givennumber	/**< Number whose physical index shall be determined. */
+								) const;
+
+		/** Returns the number stored at a given physical index.
+		 *	\return >= 0: Number stored at given physical index. \n
+		 			-RET_INDEXLIST_OUTOFBOUNDS */
+		int	getNumber(	int physicalindex	/**< Physical index of the number to be returned. */
+						) const;
+
+
+		/** Returns the current length of the index list.
+		 *	\return Current length of the index list. */
+		inline int getLength( );
+
+		/** Returns last number within the index list.
+		 *	\return Last number within the index list. */
+		inline int getLastNumber( ) const;
+
+
+		/** Adds number to index list.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_INDEXLIST_MUST_BE_REORDERD \n
+		 			RET_INDEXLIST_EXCEEDS_MAX_LENGTH */
+		returnValue addNumber(	int addnumber	/**< Number to be added. */
+								);
+
+		/** Removes number from index list.
+		 *	\return SUCCESSFUL_RETURN */
+		returnValue removeNumber(	int removenumber	/**< Number to be removed. */
+									);
+
+		/** Swaps two numbers within index list.
+		 *	\return SUCCESSFUL_RETURN */
+		returnValue swapNumbers(	int number1,/**< First number for swapping. */
+									int number2	/**< Second number for swapping. */
+									);
+
+		/** Determines if a given number is contained in the index set.
+		 *	\return BT_TRUE iff number is contain in the index set */
+		inline BooleanType isMember(	int _number	/**< Number to be tested for membership. */
+										) const;
+
+
+	/*
+	 *	PROTECTED MEMBER VARIABLES
+	 */
+	protected:
+		int number[INDEXLISTFACTOR*(NVMAX+NCMAX)];		/**< Array to store numbers of constraints or bounds. */
+		int next[INDEXLISTFACTOR*(NVMAX+NCMAX)];		/**< Array to store physical index of successor. */
+		int previous[INDEXLISTFACTOR*(NVMAX+NCMAX)];	/**< Array to store physical index of predecossor. */
+		int	length;										/**< Length of index list. */
+		int	first;										/**< Physical index of first element. */
+		int	last;										/**< Physical index of last element. */
+		int	lastusedindex;								/**< Physical index of last entry in index list. */
+		int	physicallength;								/**< Physical length of index list. */
+};
+
+
+#include <Indexlist.ipp>
+
+#endif	/* QPOASES_INDEXLIST_HPP */
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/MessageHandling.hpp b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/MessageHandling.hpp
new file mode 100644
index 0000000..3d17498
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/MessageHandling.hpp
@@ -0,0 +1,415 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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/MessageHandling.hpp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Declaration of the MessageHandling class including global return values.
+ */
+
+
+#ifndef QPOASES_MESSAGEHANDLING_HPP
+#define QPOASES_MESSAGEHANDLING_HPP
+
+// #define PC_DEBUG
+
+#ifdef PC_DEBUG
+  #include <stdio.h>
+
+  /** Defines an alias for  FILE  from stdio.h. */
+  #define myFILE FILE
+  /** Defines an alias for  stderr  from stdio.h. */
+  #define myStderr stderr
+  /** Defines an alias for  stdout  from stdio.h. */
+  #define myStdout stdout
+#else
+  /** Defines an alias for  FILE  from stdio.h. */
+  #define myFILE int
+  /** Defines an alias for  stderr  from stdio.h. */
+  #define myStderr 0
+  /** Defines an alias for  stdout  from stdio.h. */
+  #define myStdout 0
+#endif
+
+
+#include <Types.hpp>
+#include <Constants.hpp>
+
+
+/** Defines symbols for global return values. \n
+ *  Important: All return values are assumed to be nonnegative! */
+enum returnValue
+{
+TERMINAL_LIST_ELEMENT = -1,						/**< Terminal list element, internal usage only! */
+/* miscellaneous */
+SUCCESSFUL_RETURN = 0,							/**< Successful return. */
+RET_DIV_BY_ZERO,		   						/**< Division by zero. */
+RET_INDEX_OUT_OF_BOUNDS,						/**< Index out of bounds. */
+RET_INVALID_ARGUMENTS,							/**< At least one of the arguments is invalid. */
+RET_ERROR_UNDEFINED,							/**< Error number undefined. */
+RET_WARNING_UNDEFINED,							/**< Warning number undefined. */
+RET_INFO_UNDEFINED,								/**< Info number undefined. */
+RET_EWI_UNDEFINED,								/**< Error/warning/info number undefined. */
+RET_AVAILABLE_WITH_LINUX_ONLY,					/**< This function is available under Linux only. */
+RET_UNKNOWN_BUG,								/**< The error occured is not yet known. */
+RET_PRINTLEVEL_CHANGED,							/**< 10 Print level changed. */
+RET_NOT_YET_IMPLEMENTED,						/**< Requested function is not yet implemented in this version of qpOASES. */
+/* Indexlist */
+RET_INDEXLIST_MUST_BE_REORDERD,					/**< Index list has to be reordered. */
+RET_INDEXLIST_EXCEEDS_MAX_LENGTH,				/**< Index list exceeds its maximal physical length. */
+RET_INDEXLIST_CORRUPTED,						/**< Index list corrupted. */
+RET_INDEXLIST_OUTOFBOUNDS,						/**< Physical index is out of bounds. */
+RET_INDEXLIST_ADD_FAILED,						/**< Adding indices from another index set failed. */
+RET_INDEXLIST_INTERSECT_FAILED,					/**< Intersection with another index set failed. */
+/* SubjectTo / Bounds / Constraints */
+RET_INDEX_ALREADY_OF_DESIRED_STATUS,			/**< Index is already of desired status. */
+RET_ADDINDEX_FAILED,							/**< Cannot swap between different indexsets. */
+RET_SWAPINDEX_FAILED,							/**< 20 Adding index to index set failed. */
+RET_NOTHING_TO_DO,								/**< Nothing to do. */
+RET_SETUP_BOUND_FAILED,							/**< Setting up bound index failed. */
+RET_SETUP_CONSTRAINT_FAILED,					/**< Setting up constraint index failed. */
+RET_MOVING_BOUND_FAILED,						/**< Moving bound between index sets failed. */
+RET_MOVING_CONSTRAINT_FAILED,					/**< Moving constraint between index sets failed. */
+/* QProblem */
+RET_QP_ALREADY_INITIALISED,						/**< QProblem has already been initialised. */
+RET_NO_INIT_WITH_STANDARD_SOLVER,				/**< Initialisation via extern QP solver is not yet implemented. */
+RET_RESET_FAILED,								/**< Reset failed. */
+RET_INIT_FAILED,								/**< Initialisation failed. */
+RET_INIT_FAILED_TQ,								/**< 30 Initialisation failed due to TQ factorisation. */
+RET_INIT_FAILED_CHOLESKY,						/**< Initialisation failed due to Cholesky decomposition. */
+RET_INIT_FAILED_HOTSTART,						/**< Initialisation failed! QP could not be solved! */
+RET_INIT_FAILED_INFEASIBILITY,					/**< Initial QP could not be solved due to infeasibility! */
+RET_INIT_FAILED_UNBOUNDEDNESS,					/**< Initial QP could not be solved due to unboundedness! */
+RET_INIT_SUCCESSFUL,							/**< Initialisation done. */
+RET_OBTAINING_WORKINGSET_FAILED,				/**< Failed to obtain working set for auxiliary QP. */
+RET_SETUP_WORKINGSET_FAILED,					/**< Failed to setup working set for auxiliary QP. */
+RET_SETUP_AUXILIARYQP_FAILED,					/**< Failed to setup auxiliary QP for initialised homotopy. */
+RET_NO_EXTERN_SOLVER,							/**< No extern QP solver available. */
+RET_QP_UNBOUNDED,								/**< 40 QP is unbounded. */
+RET_QP_INFEASIBLE,								/**< QP is infeasible. */
+RET_QP_NOT_SOLVED,								/**< Problems occured while solving QP with standard solver. */
+RET_QP_SOLVED,									/**< QP successfully solved. */
+RET_UNABLE_TO_SOLVE_QP,							/**< Problems occured while solving QP. */
+RET_INITIALISATION_STARTED,						/**< Starting problem initialisation. */
+RET_HOTSTART_FAILED,							/**< Unable to perform homotopy due to internal error. */
+RET_HOTSTART_FAILED_TO_INIT,					/**< Unable to initialise problem. */
+RET_HOTSTART_FAILED_AS_QP_NOT_INITIALISED,		/**< Unable to perform homotopy as previous QP is not solved. */
+RET_ITERATION_STARTED,							/**< Iteration... */
+RET_SHIFT_DETERMINATION_FAILED,					/**< 50 Determination of shift of the QP data failed. */
+RET_STEPDIRECTION_DETERMINATION_FAILED,			/**< Determination of step direction failed. */
+RET_STEPLENGTH_DETERMINATION_FAILED,			/**< Determination of step direction failed. */
+RET_OPTIMAL_SOLUTION_FOUND,						/**< Optimal solution of neighbouring QP found. */
+RET_HOMOTOPY_STEP_FAILED,						/**< Unable to perform homotopy step. */
+RET_HOTSTART_STOPPED_INFEASIBILITY,				/**< Premature homotopy termination because QP is infeasible. */
+RET_HOTSTART_STOPPED_UNBOUNDEDNESS,				/**< Premature homotopy termination because QP is unbounded. */
+RET_WORKINGSET_UPDATE_FAILED,					/**< Unable to update working sets according to initial guesses. */
+RET_MAX_NWSR_REACHED,							/**< Maximum number of working set recalculations performed. */
+RET_CONSTRAINTS_NOT_SPECIFIED,					/**< Problem does comprise constraints! You also have to specify new constraints' bounds. */
+RET_INVALID_FACTORISATION_FLAG,					/**< 60 Invalid factorisation flag. */
+RET_UNABLE_TO_SAVE_QPDATA,						/**< Unable to save QP data. */
+RET_STEPDIRECTION_FAILED_TQ,					/**< Abnormal termination due to TQ factorisation. */
+RET_STEPDIRECTION_FAILED_CHOLESKY,				/**< Abnormal termination due to Cholesky factorisation. */
+RET_CYCLING_DETECTED,							/**< Cycling detected. */
+RET_CYCLING_NOT_RESOLVED,						/**< Cycling cannot be resolved, QP probably infeasible. */
+RET_CYCLING_RESOLVED,							/**< Cycling probably resolved. */
+RET_STEPSIZE,									/**< For displaying performed stepsize. */
+RET_STEPSIZE_NONPOSITIVE,						/**< For displaying non-positive stepsize. */
+RET_SETUPSUBJECTTOTYPE_FAILED,					/**< Setup of SubjectToTypes failed. */
+RET_ADDCONSTRAINT_FAILED,						/**< 70 Addition of constraint to working set failed. */
+RET_ADDCONSTRAINT_FAILED_INFEASIBILITY,			/**< Addition of constraint to working set failed (due to QP infeasibility). */
+RET_ADDBOUND_FAILED,							/**< Addition of bound to working set failed. */
+RET_ADDBOUND_FAILED_INFEASIBILITY,				/**< Addition of bound to working set failed (due to QP infeasibility). */
+RET_REMOVECONSTRAINT_FAILED,					/**< Removal of constraint from working set failed. */
+RET_REMOVEBOUND_FAILED,							/**< Removal of bound from working set failed. */
+RET_REMOVE_FROM_ACTIVESET,						/**< Removing from active set... */
+RET_ADD_TO_ACTIVESET,							/**< Adding to active set... */
+RET_REMOVE_FROM_ACTIVESET_FAILED,				/**< Removing from active set failed. */
+RET_ADD_TO_ACTIVESET_FAILED,					/**< Adding to active set failed. */
+RET_CONSTRAINT_ALREADY_ACTIVE,					/**< 80 Constraint is already active. */
+RET_ALL_CONSTRAINTS_ACTIVE,						/**< All constraints are active, no further constraint can be added. */
+RET_LINEARLY_DEPENDENT,							/**< New bound/constraint is linearly dependent. */
+RET_LINEARLY_INDEPENDENT,						/**< New bound/constraint is linearly independent. */
+RET_LI_RESOLVED,								/**< Linear independence of active contraint matrix successfully resolved. */
+RET_ENSURELI_FAILED,							/**< Failed to ensure linear indepence of active contraint matrix. */
+RET_ENSURELI_FAILED_TQ,							/**< Abnormal termination due to TQ factorisation. */
+RET_ENSURELI_FAILED_NOINDEX,					/**< No index found, QP probably infeasible. */
+RET_ENSURELI_FAILED_CYCLING,					/**< Cycling detected, QP probably infeasible. */
+RET_BOUND_ALREADY_ACTIVE,						/**< Bound is already active. */
+RET_ALL_BOUNDS_ACTIVE,							/**< 90 All bounds are active, no further bound can be added. */
+RET_CONSTRAINT_NOT_ACTIVE,						/**< Constraint is not active. */
+RET_BOUND_NOT_ACTIVE,							/**< Bound is not active. */
+RET_HESSIAN_NOT_SPD,							/**< Projected Hessian matrix not positive definite. */
+RET_MATRIX_SHIFT_FAILED,						/**< Unable to update matrices or to transform vectors. */
+RET_MATRIX_FACTORISATION_FAILED,				/**< Unable to calculate new matrix factorisations. */
+RET_PRINT_ITERATION_FAILED,						/**< Unable to print information on current iteration. */
+RET_NO_GLOBAL_MESSAGE_OUTPUTFILE,				/**< No global message output file initialised. */
+/* Utils */
+RET_UNABLE_TO_OPEN_FILE,						/**< Unable to open file. */
+RET_UNABLE_TO_WRITE_FILE,						/**< Unable to write into file. */
+RET_UNABLE_TO_READ_FILE,						/**< 100 Unable to read from file. */
+RET_FILEDATA_INCONSISTENT,						/**< File contains inconsistent data. */
+/* SolutionAnalysis */
+RET_NO_SOLUTION, 								/**< QP solution does not satisfy KKT optimality conditions. */
+RET_INACCURATE_SOLUTION							/**< KKT optimality conditions not satisfied to sufficient accuracy. */
+};
+
+
+
+/** This class handles all kinds of messages (errors, warnings, infos) initiated
+ *  by qpOASES modules and stores the correspoding global preferences.
+ *
+ *	\author Hans Joachim Ferreau (special thanks to Leonard Wirsching)
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ */
+class MessageHandling
+{
+	/*
+	 *	INTERNAL DATA STRUCTURES
+	 */
+	public:
+		/** Data structure for entries in global message list. */
+		typedef struct {
+			returnValue key;							/**< Global return value. */
+			const char* data;							/**< Corresponding message. */
+			VisibilityStatus globalVisibilityStatus; 	/**< Determines if message can be printed.
+														* 	 If this value is set to VS_HIDDEN, no message is printed! */
+		} ReturnValueList;
+
+
+	/*
+	 *	PUBLIC MEMBER FUNCTIONS
+	 */
+	public:
+		/** Default constructor. */
+		MessageHandling( );
+
+		/** Constructor which takes the desired output file. */
+		MessageHandling(  myFILE* _outputFile					/**< Output file. */
+						  );
+
+		/** Constructor which takes the desired visibility states. */
+		MessageHandling(	VisibilityStatus _errorVisibility,	/**< Visibility status for error messages. */
+							VisibilityStatus _warningVisibility,/**< Visibility status for warning messages. */
+							VisibilityStatus _infoVisibility	/**< Visibility status for info messages. */
+							);
+
+		/** Constructor which takes the desired output file and desired visibility states. */
+		MessageHandling(	myFILE* _outputFile,				/**< Output file. */
+							VisibilityStatus _errorVisibility,	/**< Visibility status for error messages. */
+							VisibilityStatus _warningVisibility,/**< Visibility status for warning messages. */
+							VisibilityStatus _infoVisibility	/**< Visibility status for info messages. */
+							);
+
+		/** Copy constructor (deep copy). */
+		MessageHandling(	const MessageHandling& rhs	/**< Rhs object. */
+							);
+
+		/** Destructor. */
+		~MessageHandling( );
+
+		/** Assignment operator (deep copy). */
+		MessageHandling& operator=(	const MessageHandling& rhs	/**< Rhs object. */
+									);
+
+
+		/** Prints an error message(a simplified macro THROWERROR is also provided). \n
+		 *  Errors are definied as abnormal events which cause an immediate termination of the current (sub) function.
+		 *  Errors of a sub function should be commented by the calling function by means of a warning message
+		 *  (if this error does not cause an error of the calling function, either)!
+		 *  \return Error number returned by sub function call
+		 */
+		returnValue throwError(
+			returnValue Enumber,					/**< Error number returned by sub function call. */
+			const char* additionaltext,				/**< Additional error text (0, if none). */
+			const char* functionname,				/**< Name of function which caused the error. */
+			const char* filename,					/**< Name of file which caused the error. */
+			const unsigned long linenumber,			/**< Number of line which caused the error.incompatible binary file */
+			VisibilityStatus localVisibilityStatus	/**< Determines (locally) if error message can be printed to myStderr.
+			   									 *   If GLOBAL visibility status of the message is set to VS_HIDDEN,
+	   			 								 *   no message is printed, anyway! */
+		);
+
+		/** Prints a warning message (a simplified macro THROWWARNING is also provided).
+		 *  Warnings are definied as abnormal events which does NOT cause an immediate termination of the current (sub) function.
+		 *  \return Warning number returned by sub function call
+		 */
+		returnValue throwWarning(
+			returnValue Wnumber,	 				/**< Warning number returned by sub function call. */
+			const char* additionaltext,				/**< Additional warning text (0, if none). */
+			const char* functionname,				/**< Name of function which caused the warning. */
+			const char* filename,   				/**< Name of file which caused the warning. */
+			const unsigned long linenumber,	 		/**< Number of line which caused the warning. */
+			VisibilityStatus localVisibilityStatus	/**< Determines (locally) if warning message can be printed to myStderr.
+		   		  									 *   If GLOBAL visibility status of the message is set to VS_HIDDEN,
+					 								 *   no message is printed, anyway! */
+			);
+
+	   /** Prints a info message (a simplified macro THROWINFO is also provided).
+		 *  \return Info number returned by sub function call
+		 */
+		returnValue throwInfo(
+			returnValue Inumber,	 				/**< Info number returned by sub function call. */
+			const char* additionaltext,	 			/**< Additional warning text (0, if none). */
+			const char* functionname,				/**< Name of function which submitted the info. */
+			const char* filename,   				/**< Name of file which submitted the info. */
+			const unsigned long linenumber,			/**< Number of line which submitted the info. */
+			VisibilityStatus localVisibilityStatus	/**< Determines (locally) if info message can be printed to myStderr.
+				  									 *   If GLOBAL visibility status of the message is set to VS_HIDDEN,
+				   									 *   no message is printed, anyway! */
+			);
+
+
+		/** Resets all preferences to default values.
+		 *	\return SUCCESSFUL_RETURN */
+		returnValue reset( );
+
+
+		/** Prints a complete list of all messages to output file.
+		 *	\return SUCCESSFUL_RETURN */
+		returnValue listAllMessages( );
+
+
+		/** Returns visibility status for error messages.
+		 *	\return Visibility status for error messages. */
+		inline VisibilityStatus getErrorVisibilityStatus( ) const;
+
+		/** Returns visibility status for warning messages.
+		 *	\return Visibility status for warning messages. */
+		inline VisibilityStatus getWarningVisibilityStatus( ) const;
+
+		/** Returns visibility status for info messages.
+		 *	\return Visibility status for info messages. */
+		inline VisibilityStatus getInfoVisibilityStatus( ) const;
+
+		/** Returns pointer to output file.
+		 *	\return Pointer to output file. */
+		inline myFILE* getOutputFile( ) const;
+
+		/** Returns error count value.
+		 *	\return Error count value. */
+		inline int getErrorCount( ) const;
+
+
+		/** Changes visibility status for error messages. */
+		inline void setErrorVisibilityStatus(	VisibilityStatus _errorVisibility	/**< New visibility status for error messages. */
+												);
+
+		/** Changes visibility status for warning messages. */
+		inline void setWarningVisibilityStatus(	VisibilityStatus _warningVisibility	/**< New visibility status for warning messages. */
+												);
+
+		/** Changes visibility status for info messages. */
+		inline void setInfoVisibilityStatus(	VisibilityStatus _infoVisibility	/**< New visibility status for info messages. */
+												);
+
+		/** Changes output file for messages. */
+		inline void setOutputFile(	myFILE* _outputFile	/**< New output file for messages. */
+									);
+
+		/** Changes error count.
+		 * \return SUCCESSFUL_RETURN \n
+		 *		   RET_INVALID_ARGUMENT */
+		inline returnValue setErrorCount(	int _errorCount	/**< New error count value. */
+											);
+
+		/** Return the error code string. */
+		static const char* getErrorString(int error);
+
+	/*
+	 *	PROTECTED MEMBER FUNCTIONS
+	 */
+	protected:
+		/** Prints a info message to myStderr (auxiliary function).
+		 *  \return Error/warning/info number returned by sub function call
+		 */
+		returnValue throwMessage(
+			returnValue RETnumber,	 				/**< Error/warning/info number returned by sub function call. */
+			const char* additionaltext,				/**< Additional warning text (0, if none). */
+			const char* functionname,				/**< Name of function which caused the error/warning/info. */
+			const char* filename,   				/**< Name of file which caused the error/warning/info. */
+			const unsigned long linenumber,			/**< Number of line which caused the error/warning/info. */
+			VisibilityStatus localVisibilityStatus,	/**< Determines (locally) if info message can be printed to myStderr.
+					  								 *   If GLOBAL visibility status of the message is set to VS_HIDDEN,
+				   									 *   no message is printed, anyway! */
+			const char* RETstring					/**< Leading string of error/warning/info message. */
+			);
+
+
+	/*
+	 *	PROTECTED MEMBER VARIABLES
+	 */
+	protected:
+		VisibilityStatus errorVisibility;		/**< Error messages visible? */
+		VisibilityStatus warningVisibility;		/**< Warning messages visible? */
+		VisibilityStatus infoVisibility;		/**< Info messages visible? */
+
+		myFILE* outputFile;						/**< Output file for messages. */
+
+		int errorCount; 						/**< Counts number of errors (for nicer output only). */
+};
+
+
+#ifndef __FUNCTION__
+  /** Ensures that __FUNCTION__ macro is defined. */
+  #define __FUNCTION__ 0
+#endif
+
+#ifndef __FILE__
+  /** Ensures that __FILE__ macro is defined. */
+  #define __FILE__ 0
+#endif
+
+#ifndef __LINE__
+  /** Ensures that __LINE__ macro is defined. */
+  #define __LINE__ 0
+#endif
+
+
+/** Short version of throwError with default values, only returnValue is needed */
+#define THROWERROR(retval) ( getGlobalMessageHandler( )->throwError((retval),0,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE) )
+
+/** Short version of throwWarning with default values, only returnValue is needed */
+#define THROWWARNING(retval) ( getGlobalMessageHandler( )->throwWarning((retval),0,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE) )
+
+/** Short version of throwInfo with default values, only returnValue is needed */
+#define THROWINFO(retval) ( getGlobalMessageHandler( )->throwInfo((retval),0,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE) )
+
+
+/** Returns a pointer to global message handler.
+ *  \return Pointer to global message handler.
+ */
+MessageHandling* getGlobalMessageHandler( );
+
+
+#include <MessageHandling.ipp>
+
+#endif /* QPOASES_MESSAGEHANDLING_HPP */
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/QProblem.hpp b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/QProblem.hpp
new file mode 100644
index 0000000..91dc434
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/QProblem.hpp
@@ -0,0 +1,666 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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/QProblem.hpp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Declaration of the QProblem class which is able to use the newly
+ *	developed online active set strategy for parametric quadratic programming.
+ */
+
+
+
+#ifndef QPOASES_QPROBLEM_HPP
+#define QPOASES_QPROBLEM_HPP
+
+
+#include <QProblemB.hpp>
+#include <Constraints.hpp>
+#include <CyclingManager.hpp>
+
+
+/** A class for setting up and solving quadratic programs. The main feature is
+ *	the possibily to use the newly developed online active set strategy for
+ * 	parametric quadratic programming.
+ *
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ */
+class QProblem : public QProblemB
+{
+	/* allow SolutionAnalysis class to access private members */
+	friend class SolutionAnalysis;
+	
+	/*
+	 *	PUBLIC MEMBER FUNCTIONS
+	 */
+	public:
+		/** Default constructor. */
+		QProblem( );
+
+		/** Constructor which takes the QP dimensions only. */
+		QProblem(	int _nV,	  				/**< Number of variables. */
+					int _nC  					/**< Number of constraints. */
+					);
+
+		/** Copy constructor (deep copy). */
+		QProblem(	const QProblem& rhs	/**< Rhs object. */
+					);
+
+		/** Destructor. */
+		~QProblem( );
+
+		/** Assignment operator (deep copy). */
+		QProblem& operator=(	const QProblem& rhs		/**< Rhs object. */
+								);
+
+
+		/** Clears all data structures of QProblemB except for QP data.
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_RESET_FAILED */
+		returnValue reset( );
+
+
+		/** Initialises a QProblem with given QP data and solves it
+		 *	using an initial homotopy with empty working set (at most nWSR iterations).
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_INIT_FAILED \n
+					RET_INIT_FAILED_CHOLESKY \n
+					RET_INIT_FAILED_TQ \n
+					RET_INIT_FAILED_HOTSTART \n
+					RET_INIT_FAILED_INFEASIBILITY \n
+					RET_INIT_FAILED_UNBOUNDEDNESS \n
+					RET_MAX_NWSR_REACHED \n
+					RET_INVALID_ARGUMENTS \n
+					RET_INACCURATE_SOLUTION \n
+		 			RET_NO_SOLUTION */
+		returnValue init(	const real_t* const _H, 		/**< Hessian matrix. */
+							const real_t* const _g, 		/**< Gradient vector. */
+							const real_t* const _A,  		/**< Constraint matrix. */
+							const real_t* const _lb,		/**< Lower bound vector (on variables). \n
+																If no lower bounds exist, a NULL pointer can be passed. */
+							const real_t* const _ub,		/**< Upper bound vector (on variables). \n
+																If no upper bounds exist, a NULL pointer can be passed. */
+							const real_t* const _lbA,		/**< Lower constraints' bound vector. \n
+																If no lower constraints' bounds exist, a NULL pointer can be passed. */
+							const real_t* const _ubA,		/**< Upper constraints' bound vector. \n
+																If no lower constraints' bounds exist, a NULL pointer can be passed. */
+							int& nWSR,						/**< Input: Maximum number of working set recalculations when using initial homotopy.
+																Output: Number of performed working set recalculations. */
+							const real_t* const yOpt = 0,	/**< Initial guess for dual solution vector. */
+							real_t* const cputime = 0		/**< Output: CPU time required to initialise QP. */
+							);
+
+
+		/** Initialises a QProblem with given QP data and solves it
+		 *	using an initial homotopy with empty working set (at most nWSR iterations).
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_INIT_FAILED \n
+					RET_INIT_FAILED_CHOLESKY \n
+					RET_INIT_FAILED_TQ \n
+					RET_INIT_FAILED_HOTSTART \n
+					RET_INIT_FAILED_INFEASIBILITY \n
+					RET_INIT_FAILED_UNBOUNDEDNESS \n
+					RET_MAX_NWSR_REACHED \n
+					RET_INVALID_ARGUMENTS \n
+					RET_INACCURATE_SOLUTION \n
+		 			RET_NO_SOLUTION */
+		returnValue init(	const real_t* const _H, 		/**< Hessian matrix. */
+							const real_t* const _R, 		/**< Cholesky factorization of the Hessian matrix. */
+							const real_t* const _g, 		/**< Gradient vector. */
+							const real_t* const _A,  		/**< Constraint matrix. */
+							const real_t* const _lb,		/**< Lower bound vector (on variables). \n
+																If no lower bounds exist, a NULL pointer can be passed. */
+							const real_t* const _ub,		/**< Upper bound vector (on variables). \n
+																If no upper bounds exist, a NULL pointer can be passed. */
+							const real_t* const _lbA,		/**< Lower constraints' bound vector. \n
+																If no lower constraints' bounds exist, a NULL pointer can be passed. */
+							const real_t* const _ubA,		/**< Upper constraints' bound vector. \n
+																If no lower constraints' bounds exist, a NULL pointer can be passed. */
+							int& nWSR,						/**< Input: Maximum number of working set recalculations when using initial homotopy.
+																Output: Number of performed working set recalculations. */
+							const real_t* const yOpt = 0,	/**< Initial guess for dual solution vector. */
+							real_t* const cputime = 0		/**< Output: CPU time required to initialise QP. */
+							);
+
+
+		/** Solves QProblem using online active set strategy.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_MAX_NWSR_REACHED \n
+		 			RET_HOTSTART_FAILED_AS_QP_NOT_INITIALISED \n
+					RET_HOTSTART_FAILED \n
+					RET_SHIFT_DETERMINATION_FAILED \n
+					RET_STEPDIRECTION_DETERMINATION_FAILED \n
+					RET_STEPLENGTH_DETERMINATION_FAILED \n
+					RET_HOMOTOPY_STEP_FAILED \n
+					RET_HOTSTART_STOPPED_INFEASIBILITY \n
+					RET_HOTSTART_STOPPED_UNBOUNDEDNESS \n
+					RET_INACCURATE_SOLUTION \n
+		 			RET_NO_SOLUTION */
+		returnValue hotstart(	const real_t* const g_new,		/**< Gradient of neighbouring QP to be solved. */
+								const real_t* const lb_new,		/**< Lower bounds of neighbouring QP to be solved. \n
+													 			 	 If no lower bounds exist, a NULL pointer can be passed. */
+								const real_t* const ub_new,		/**< Upper bounds of neighbouring QP to be solved. \n
+													 			 	 If no upper bounds exist, a NULL pointer can be passed. */
+								const real_t* const lbA_new,	/**< Lower constraints' bounds of neighbouring QP to be solved. \n
+													 			 	 If no lower constraints' bounds exist, a NULL pointer can be passed. */
+								const real_t* const ubA_new,	/**< Upper constraints' bounds of neighbouring QP to be solved. \n
+													 			 	 If no upper constraints' bounds exist, a NULL pointer can be passed. */
+								int& nWSR,						/**< Input: Maximum number of working set recalculations; \n
+															 		 Output: Number of performed working set recalculations. */
+								real_t* const cputime			/**< Output: CPU time required to solve QP (or to perform nWSR iterations). */
+								);
+
+
+		/** Returns constraint matrix of the QP (deep copy).
+		  *	\return SUCCESSFUL_RETURN */
+		inline returnValue getA(	real_t* const _A	/**< Array of appropriate dimension for copying constraint matrix.*/
+									) const;
+
+		/** Returns a single row of constraint matrix of the QP (deep copy).
+		  *	\return SUCCESSFUL_RETURN \n
+					RET_INDEX_OUT_OF_BOUNDS */
+		inline returnValue getA(	int number,			/**< Number of entry to be returned. */
+									real_t* const row	/**< Array of appropriate dimension for copying (number)th constraint. */
+									) const;
+
+		/** Returns lower constraints' bound vector of the QP (deep copy).
+		  *	\return SUCCESSFUL_RETURN */
+		inline returnValue getLBA(	real_t* const _lbA	/**< Array of appropriate dimension for copying lower constraints' bound vector.*/
+									) const;
+
+		/** Returns single entry of lower constraints' bound vector of the QP.
+		  *	\return SUCCESSFUL_RETURN \n
+					RET_INDEX_OUT_OF_BOUNDS */
+		inline returnValue getLBA(	int number,		/**< Number of entry to be returned. */
+									real_t& value	/**< Output: lbA[number].*/
+									) const;
+
+		/** Returns upper constraints' bound vector of the QP (deep copy).
+		  *	\return SUCCESSFUL_RETURN */
+		inline returnValue getUBA(	real_t* const _ubA	/**< Array of appropriate dimension for copying upper constraints' bound vector.*/
+									) const;
+
+		/** Returns single entry of upper constraints' bound vector of the QP.
+		  *	\return SUCCESSFUL_RETURN \n
+					RET_INDEX_OUT_OF_BOUNDS */
+		inline returnValue getUBA(	int number,		/**< Number of entry to be returned. */
+									real_t& value	/**< Output: ubA[number].*/
+									) const;
+
+
+		/** Returns current constraints object of the QP (deep copy).
+		  *	\return SUCCESSFUL_RETURN */
+		inline returnValue getConstraints(	Constraints* const _constraints	/** Output: Constraints object. */
+											) const;
+
+
+		/** Returns the number of constraints.
+		 *	\return Number of constraints. */
+		inline int getNC( ) const;
+
+		/** Returns the number of (implicitly defined) equality constraints.
+		 *	\return Number of (implicitly defined) equality constraints. */
+		inline int getNEC( ) const;
+
+		/** Returns the number of active constraints.
+		 *	\return Number of active constraints. */
+		inline int getNAC( );
+
+		/** Returns the number of inactive constraints.
+		 *	\return Number of inactive constraints. */
+		inline int getNIAC( );
+
+		/** Returns the dimension of null space.
+		 *	\return Dimension of null space. */
+		int getNZ( );
+
+
+		/** Returns the dual solution vector (deep copy).
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_QP_NOT_SOLVED */
+		returnValue getDualSolution(	real_t* const yOpt	/**< Output: Dual solution vector (if QP has been solved). */
+										) const;
+
+
+	/*
+	 *	PROTECTED MEMBER FUNCTIONS
+	 */
+	protected:
+		/** Determines type of constraints and bounds (i.e. implicitly fixed, unbounded etc.).
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_SETUPSUBJECTTOTYPE_FAILED */
+		returnValue setupSubjectToType( );
+
+		/** Computes the Cholesky decomposition R of the projected Hessian (i.e. R^T*R = Z^T*H*Z).
+		 *	\return SUCCESSFUL_RETURN \n
+		 *			RET_INDEXLIST_CORRUPTED */
+		returnValue setupCholeskyDecompositionProjected( );
+
+		/** Initialises TQ factorisation of A (i.e. A*Q = [0 T]) if NO constraint is active.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_INDEXLIST_CORRUPTED */
+		returnValue setupTQfactorisation( );
+
+
+		/** Solves a QProblem whose QP data is assumed to be stored in the member variables.
+		 *  A guess for its primal/dual optimal solution vectors and the corresponding
+		 *  working sets of bounds and constraints can be provided.
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_INIT_FAILED \n
+					RET_INIT_FAILED_CHOLESKY \n
+					RET_INIT_FAILED_TQ \n
+					RET_INIT_FAILED_HOTSTART \n
+					RET_INIT_FAILED_INFEASIBILITY \n
+					RET_INIT_FAILED_UNBOUNDEDNESS \n
+					RET_MAX_NWSR_REACHED */
+		returnValue solveInitialQP(	const real_t* const xOpt,						/**< Optimal primal solution vector.
+																					 *	 A NULL pointer can be passed. */
+									const real_t* const yOpt,						/**< Optimal dual solution vector.
+																					 *	 A NULL pointer can be passed. */
+									const Bounds* const guessedBounds,				/**< Guessed working set of bounds for solution (xOpt,yOpt).
+																		 			 *	 A NULL pointer can be passed. */
+									const Constraints* const guessedConstraints,	/**< Optimal working set of constraints for solution (xOpt,yOpt).
+																		 			 *	 A NULL pointer can be passed. */
+									int& nWSR, 										/**< Input: Maximum number of working set recalculations; \n
+																 					 *	 Output: Number of performed working set recalculations. */
+									real_t* const cputime							/**< Output: CPU time required to solve QP (or to perform nWSR iterations). */
+									);
+
+		/** Obtains the desired working set for the auxiliary initial QP in
+		 *  accordance with the user specifications
+		 *  (assumes that member AX has already been initialised!)
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_OBTAINING_WORKINGSET_FAILED \n
+					RET_INVALID_ARGUMENTS */
+		returnValue obtainAuxiliaryWorkingSet(	const real_t* const xOpt,						/**< Optimal primal solution vector.
+																								 *	 If a NULL pointer is passed, all entries are assumed to be zero. */
+												const real_t* const yOpt,						/**< Optimal dual solution vector.
+																								 *	 If a NULL pointer is passed, all entries are assumed to be zero. */
+												const Bounds* const guessedBounds,				/**< Guessed working set of bounds for solution (xOpt,yOpt). */
+												const Constraints* const guessedConstraints,	/**< Guessed working set for solution (xOpt,yOpt). */
+												Bounds* auxiliaryBounds,						/**< Input: Allocated bound object. \n
+																								 *	 Ouput: Working set of constraints for auxiliary QP. */
+												Constraints* auxiliaryConstraints				/**< Input: Allocated bound object. \n
+																								 *	 Ouput: Working set for auxiliary QP. */
+												) const;
+
+		/** Setups bound and constraints data structures according to auxiliaryBounds/Constraints.
+		 *  (If the working set shall be setup afresh, make sure that
+		 *  bounds and constraints data structure have been resetted
+		 *  and the TQ factorisation has been initialised!)
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_SETUP_WORKINGSET_FAILED \n
+					RET_INVALID_ARGUMENTS \n
+					RET_UNKNOWN BUG */
+		returnValue setupAuxiliaryWorkingSet(	const Bounds* const auxiliaryBounds,			/**< Working set of bounds for auxiliary QP. */
+												const Constraints* const auxiliaryConstraints,	/**< Working set of constraints for auxiliary QP. */
+												BooleanType setupAfresh							/**< Flag indicating if given working set shall be
+																								 *    setup afresh or by updating the current one. */
+												);
+
+		/** Setups the optimal primal/dual solution of the auxiliary initial QP.
+		 *	\return SUCCESSFUL_RETURN */
+		returnValue setupAuxiliaryQPsolution(	const real_t* const xOpt,			/**< Optimal primal solution vector.
+																				 	*	 If a NULL pointer is passed, all entries are set to zero. */
+												const real_t* const yOpt			/**< Optimal dual solution vector.
+																					 *	 If a NULL pointer is passed, all entries are set to zero. */
+												);
+
+		/** Setups gradient of the auxiliary initial QP for given
+		 *  optimal primal/dual solution and given initial working set
+		 *  (assumes that members X, Y and BOUNDS, CONSTRAINTS have already been initialised!).
+		 *	\return SUCCESSFUL_RETURN */
+		returnValue setupAuxiliaryQPgradient( );
+
+		/** Setups (constraints') bounds of the auxiliary initial QP for given
+		 *  optimal primal/dual solution and given initial working set
+		 *  (assumes that members X, Y and BOUNDS, CONSTRAINTS have already been initialised!).
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_UNKNOWN BUG */
+		returnValue setupAuxiliaryQPbounds(	const Bounds* const auxiliaryBounds,			/**< Working set of bounds for auxiliary QP. */
+											const Constraints* const auxiliaryConstraints,	/**< Working set of constraints for auxiliary QP. */
+											BooleanType useRelaxation						/**< Flag indicating if inactive (constraints') bounds shall be relaxed. */
+											);
+
+
+		/** Adds a constraint to active set.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_ADDCONSTRAINT_FAILED \n
+					RET_ADDCONSTRAINT_FAILED_INFEASIBILITY \n
+					RET_ENSURELI_FAILED */
+		returnValue addConstraint(	int number,					/**< Number of constraint to be added to active set. */
+									SubjectToStatus C_status,	/**< Status of new active constraint. */
+									BooleanType updateCholesky	/**< Flag indicating if Cholesky decomposition shall be updated. */
+									);
+
+		/** Checks if new active constraint to be added is linearly dependent from
+		 *	from row of the active constraints matrix.
+		 *	\return	 RET_LINEARLY_DEPENDENT \n
+		 			 RET_LINEARLY_INDEPENDENT \n
+					 RET_INDEXLIST_CORRUPTED */
+		returnValue addConstraint_checkLI(	int number			/**< Number of constraint to be added to active set. */
+											);
+
+		/** Ensures linear independence of constraint matrix when a new constraint is added.
+		 * 	To this end a bound or constraint is removed simultaneously if necessary.
+		 *	\return	 SUCCESSFUL_RETURN \n
+		 			 RET_LI_RESOLVED \n
+					 RET_ENSURELI_FAILED \n
+					 RET_ENSURELI_FAILED_TQ \n
+					 RET_ENSURELI_FAILED_NOINDEX \n
+					 RET_REMOVE_FROM_ACTIVESET */
+		returnValue addConstraint_ensureLI(	int number,					/**< Number of constraint to be added to active set. */
+											SubjectToStatus C_status	/**< Status of new active bound. */
+											);
+
+		/** Adds a bound to active set.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_ADDBOUND_FAILED \n
+					RET_ADDBOUND_FAILED_INFEASIBILITY \n
+					RET_ENSURELI_FAILED */
+		returnValue addBound(	int number,					/**< Number of bound to be added to active set. */
+								SubjectToStatus B_status,	/**< Status of new active bound. */
+								BooleanType updateCholesky	/**< Flag indicating if Cholesky decomposition shall be updated. */
+								);
+
+		/** Checks if new active bound to be added is linearly dependent from
+		 *	from row of the active constraints matrix.
+		 *	\return	 RET_LINEARLY_DEPENDENT \n
+		 			 RET_LINEARLY_INDEPENDENT */
+		returnValue addBound_checkLI(	int number			/**< Number of bound to be added to active set. */
+										);
+
+		/** Ensures linear independence of constraint matrix when a new bound is added.
+		 *	To this end a bound or constraint is removed simultaneously if necessary.
+		 *	\return	 SUCCESSFUL_RETURN \n
+		 			 RET_LI_RESOLVED \n
+					 RET_ENSURELI_FAILED \n
+					 RET_ENSURELI_FAILED_TQ \n
+					 RET_ENSURELI_FAILED_NOINDEX \n
+					 RET_REMOVE_FROM_ACTIVESET */
+		returnValue addBound_ensureLI(	int number,					/**< Number of bound to be added to active set. */
+										SubjectToStatus B_status	/**< Status of new active bound. */
+										);
+
+		/** Removes a constraint from active set.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_CONSTRAINT_NOT_ACTIVE \n
+					RET_REMOVECONSTRAINT_FAILED \n
+					RET_HESSIAN_NOT_SPD */
+		returnValue removeConstraint(	int number,					/**< Number of constraint to be removed from active set. */
+										BooleanType updateCholesky	/**< Flag indicating if Cholesky decomposition shall be updated. */
+										);
+
+		/** Removes a bounds from active set.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_BOUND_NOT_ACTIVE \n
+					RET_HESSIAN_NOT_SPD \n
+					RET_REMOVEBOUND_FAILED */
+		returnValue removeBound(	int number,					/**< Number of bound to be removed from active set. */
+									BooleanType updateCholesky	/**< Flag indicating if Cholesky decomposition shall be updated. */
+									);
+
+
+		/** Solves the system Ra = b or R^Ta = b where R is an upper triangular matrix.
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_DIV_BY_ZERO */
+		returnValue backsolveR(	const real_t* const b,	/**< Right hand side vector. */
+								BooleanType transposed,	/**< Indicates if the transposed system shall be solved. */
+								real_t* const a 		/**< Output: Solution vector */
+								);
+
+		/** Solves the system Ra = b or R^Ta = b where R is an upper triangular matrix. \n
+		 *  Special variant for the case that this function is called from within "removeBound()".
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_DIV_BY_ZERO */
+		returnValue backsolveR(	const real_t* const b,		/**< Right hand side vector. */
+								BooleanType transposed,		/**< Indicates if the transposed system shall be solved. */
+								BooleanType removingBound,	/**< Indicates if function is called from "removeBound()". */
+								real_t* const a 			/**< Output: Solution vector */
+								);
+
+
+		/** Solves the system Ta = b or T^Ta = b where T is a reverse upper triangular matrix.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_DIV_BY_ZERO */
+		returnValue backsolveT(	const real_t* const b,	/**< Right hand side vector. */
+								BooleanType transposed,	/**< Indicates if the transposed system shall be solved. */
+								real_t* const a 		/**< Output: Solution vector */
+								);
+
+
+		/** Determines step direction of the shift of the QP data.
+		 *	\return SUCCESSFUL_RETURN */
+		returnValue hotstart_determineDataShift(const int* const FX_idx, 	/**< Index array of fixed variables. */
+												const int* const AC_idx, 	/**< Index array of active constraints. */
+												const real_t* const g_new,	/**< New gradient vector. */
+												const real_t* const lbA_new,/**< New lower constraints' bounds. */
+												const real_t* const ubA_new,/**< New upper constraints' bounds. */
+												const real_t* const lb_new,	/**< New lower bounds. */
+												const real_t* const ub_new,	/**< New upper bounds. */
+												real_t* const delta_g,	 	/**< Output: Step direction of gradient vector. */
+												real_t* const delta_lbA,	/**< Output: Step direction of lower constraints' bounds. */
+												real_t* const delta_ubA,	/**< Output: Step direction of upper constraints' bounds. */
+												real_t* const delta_lb,	 	/**< Output: Step direction of lower bounds. */
+												real_t* const delta_ub,	 	/**< Output: Step direction of upper bounds. */
+												BooleanType& Delta_bC_isZero,/**< Output: Indicates if active constraints' bounds are to be shifted. */
+												BooleanType& Delta_bB_isZero/**< Output: Indicates if active bounds are to be shifted. */
+												);
+
+		/** Determines step direction of the homotopy path.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_STEPDIRECTION_FAILED_TQ \n
+					RET_STEPDIRECTION_FAILED_CHOLESKY */
+		returnValue hotstart_determineStepDirection(const int* const FR_idx, 		/**< Index array of free variables. */
+													const int* const FX_idx, 		/**< Index array of fixed variables. */
+													const int* const AC_idx, 		/**< Index array of active constraints. */
+													const real_t* const delta_g,	/**< Step direction of gradient vector. */
+													const real_t* const delta_lbA,	/**< Step direction of lower constraints' bounds. */
+													const real_t* const delta_ubA,	/**< Step direction of upper constraints' bounds. */
+													const real_t* const delta_lb,	/**< Step direction of lower bounds. */
+													const real_t* const delta_ub,	/**< Step direction of upper bounds. */
+													BooleanType Delta_bC_isZero, 	/**< Indicates if active constraints' bounds are to be shifted. */
+													BooleanType Delta_bB_isZero,	/**< Indicates if active bounds are to be shifted. */
+													real_t* const delta_xFX, 		/**< Output: Primal homotopy step direction of fixed variables. */
+													real_t* const delta_xFR,	 	/**< Output: Primal homotopy step direction of free variables. */
+													real_t* const delta_yAC, 		/**< Output: Dual homotopy step direction of active constraints' multiplier. */
+													real_t* const delta_yFX 		/**< Output: Dual homotopy step direction of fixed variables' multiplier. */
+													);
+
+		/** Determines the maximum possible step length along the homotopy path.
+		 *	\return SUCCESSFUL_RETURN */
+		returnValue hotstart_determineStepLength(	const int* const FR_idx, 			/**< Index array of free variables. */
+													const int* const FX_idx, 			/**< Index array of fixed variables. */
+													const int* const AC_idx, 			/**< Index array of active constraints. */
+													const int* const IAC_idx, 			/**< Index array of inactive constraints. */
+													const real_t* const delta_lbA,		/**< Step direction of lower constraints' bounds. */
+													const real_t* const delta_ubA,		/**< Step direction of upper constraints' bounds. */
+													const real_t* const delta_lb,	 	/**< Step direction of lower bounds. */
+													const real_t* const delta_ub,	 	/**< Step direction of upper bounds. */
+													const real_t* const delta_xFX, 		/**< Primal homotopy step direction of fixed variables. */
+													const real_t* const delta_xFR,		/**< Primal homotopy step direction of free variables. */
+													const real_t* const delta_yAC,		/**< Dual homotopy step direction of active constraints' multiplier. */
+													const real_t* const delta_yFX,		/**< Dual homotopy step direction of fixed variables' multiplier. */
+													real_t* const delta_Ax,				/**< Output: Step in vector Ax. */
+													int& BC_idx, 						/**< Output: Index of blocking constraint. */
+													SubjectToStatus& BC_status,			/**< Output: Status of blocking constraint. */
+													BooleanType& BC_isBound 			/**< Output: Indicates if blocking constraint is a bound. */
+													);
+
+		/** Performs a step along the homotopy path (and updates active set).
+		 *	\return  SUCCESSFUL_RETURN \n
+		 			 RET_OPTIMAL_SOLUTION_FOUND \n
+		 			 RET_REMOVE_FROM_ACTIVESET_FAILED \n
+					 RET_ADD_TO_ACTIVESET_FAILED \n
+					 RET_QP_INFEASIBLE */
+		returnValue hotstart_performStep(	const int* const FR_idx, 			/**< Index array of free variables. */
+											const int* const FX_idx, 			/**< Index array of fixed variables. */
+											const int* const AC_idx, 			/**< Index array of active constraints. */
+											const int* const IAC_idx, 			/**< Index array of inactive constraints. */
+											const real_t* const delta_g,	 	/**< Step direction of gradient vector. */
+											const real_t* const delta_lbA,	 	/**< Step direction of lower constraints' bounds. */
+											const real_t* const delta_ubA,	 	/**< Step direction of upper constraints' bounds. */
+											const real_t* const delta_lb,	 	/**< Step direction of lower bounds. */
+											const real_t* const delta_ub,	 	/**< Step direction of upper bounds. */
+											const real_t* const delta_xFX, 		/**< Primal homotopy step direction of fixed variables. */
+											const real_t* const delta_xFR,	 	/**< Primal homotopy step direction of free variables. */
+											const real_t* const delta_yAC,	 	/**< Dual homotopy step direction of active constraints' multiplier. */
+											const real_t* const delta_yFX, 		/**< Dual homotopy step direction of fixed variables' multiplier. */
+											const real_t* const delta_Ax, 		/**< Step in vector Ax. */
+											int BC_idx, 						/**< Index of blocking constraint. */
+											SubjectToStatus BC_status,			/**< Status of blocking constraint. */
+											BooleanType BC_isBound 				/**< Indicates if blocking constraint is a bound. */
+											);
+
+
+		/** Checks if lower/upper (constraints') bounds remain consistent
+		 *  (i.e. if lb <= ub and lbA <= ubA ) during the current step.
+		 *	\return BT_TRUE iff (constraints") bounds remain consistent
+		 */
+		BooleanType areBoundsConsistent(	const real_t* const delta_lb,	/**< Step direction of lower bounds. */
+											const real_t* const delta_ub,	/**< Step direction of upper bounds. */
+											const real_t* const delta_lbA,	/**< Step direction of lower constraints' bounds. */
+											const real_t* const delta_ubA	/**< Step direction of upper constraints' bounds. */
+											) const;
+
+
+		/** Setups internal QP data.
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_INVALID_ARGUMENTS */
+		returnValue setupQPdata(	const real_t* const _H, 	/**< Hessian matrix. */
+									const real_t* const _R, 	/**< Cholesky factorization of the Hessian matrix. */
+									const real_t* const _g, 	/**< Gradient vector. */
+									const real_t* const _A,  	/**< Constraint matrix. */
+									const real_t* const _lb,	/**< Lower bound vector (on variables). \n
+																	 If no lower bounds exist, a NULL pointer can be passed. */
+									const real_t* const _ub,	/**< Upper bound vector (on variables). \n
+																	 If no upper bounds exist, a NULL pointer can be passed. */
+									const real_t* const _lbA,	/**< Lower constraints' bound vector. \n
+																	 If no lower constraints' bounds exist, a NULL pointer can be passed. */
+									const real_t* const _ubA	/**< Upper constraints' bound vector. \n
+																	 If no lower constraints' bounds exist, a NULL pointer can be passed. */
+									);
+
+
+		#ifdef PC_DEBUG  /* Define print functions only for debugging! */
+
+		/** Prints concise information on the current iteration.
+		 *	\return  SUCCESSFUL_RETURN \n */
+		returnValue printIteration(	int iteration,				/**< Number of current iteration. */
+									int BC_idx, 				/**< Index of blocking constraint. */
+									SubjectToStatus BC_status,	/**< Status of blocking constraint. */
+									BooleanType BC_isBound 		/**< Indicates if blocking constraint is a bound. */
+									);
+
+		/** Prints concise information on the current iteration.
+		 *  NOTE: ONLY DEFINED FOR SUPPRESSING A COMPILER WARNING!!
+		 *	\return  SUCCESSFUL_RETURN \n */
+		returnValue printIteration(	int iteration,				/**< Number of current iteration. */
+									int BC_idx, 				/**< Index of blocking bound. */
+									SubjectToStatus BC_status	/**< Status of blocking bound. */
+									);
+
+		#endif  /* PC_DEBUG */
+
+
+		/** Determines the maximum violation of the KKT optimality conditions
+		 *  of the current iterate within the QProblem object.
+		 *	\return SUCCESSFUL_RETURN \n
+		 * 			RET_INACCURATE_SOLUTION \n
+		 * 			RET_NO_SOLUTION */
+		returnValue checkKKTconditions( );
+
+
+		/** Sets constraint matrix of the QP. \n
+			(Remark: Also internal vector Ax is recomputed!)
+		 *	\return SUCCESSFUL_RETURN */
+		inline returnValue setA(	const real_t* const A_new	/**< New constraint matrix (with correct dimension!). */
+									);
+
+		/** Changes single row of constraint matrix of the QP. \n
+			(Remark: Also correponding component of internal vector Ax is recomputed!)
+		 *	\return SUCCESSFUL_RETURN  \n
+					RET_INDEX_OUT_OF_BOUNDS */
+		inline returnValue setA(	int number,					/**< Number of row to be changed. */
+									const real_t* const value	/**< New (number)th constraint (with correct dimension!). */
+									);
+
+
+		/** Sets constraints' lower bound vector of the QP.
+		 *	\return SUCCESSFUL_RETURN */
+		inline returnValue setLBA(	const real_t* const lbA_new	/**< New constraints' lower bound vector (with correct dimension!). */
+									);
+
+		/** Changes single entry of lower constraints' bound vector of the QP.
+		 *	\return SUCCESSFUL_RETURN  \n
+					RET_INDEX_OUT_OF_BOUNDS */
+		inline returnValue setLBA(	int number,		/**< Number of entry to be changed. */
+									real_t value	/**< New value for entry of lower constraints' bound vector (with correct dimension!). */
+									);
+
+		/** Sets constraints' upper bound vector of the QP.
+		 *	\return SUCCESSFUL_RETURN */
+		inline returnValue setUBA(	const real_t* const ubA_new	/**< New constraints' upper bound vector (with correct dimension!). */
+									);
+
+		/** Changes single entry of upper constraints' bound vector of the QP.
+		 *	\return SUCCESSFUL_RETURN  \n
+					RET_INDEX_OUT_OF_BOUNDS */
+		inline returnValue setUBA(	int number,		/**< Number of entry to be changed. */
+									real_t value	/**< New value for entry of upper constraints' bound vector (with correct dimension!). */
+									);
+
+
+	/*
+	 *	PROTECTED MEMBER VARIABLES
+	 */
+	protected:
+		real_t A[NCMAX_ALLOC*NVMAX];		/**< Constraint matrix. */
+		real_t lbA[NCMAX_ALLOC];			/**< Lower constraints' bound vector. */
+		real_t ubA[NCMAX_ALLOC];			/**< Upper constraints' bound vector. */
+
+		Constraints constraints;			/**< Data structure for problem's constraints. */
+
+		real_t T[NVMAX*NVMAX];				/**< Reverse triangular matrix, A = [0 T]*Q'. */
+		real_t Q[NVMAX*NVMAX];				/**< Orthonormal quadratic matrix, A = [0 T]*Q'. */
+		int sizeT;							/**< Matrix T is stored in a (sizeT x sizeT) array. */
+
+		real_t Ax[NCMAX_ALLOC];				/**< Stores the current product A*x (for increased efficiency only). */
+
+		CyclingManager cyclingManager;		/**< Data structure for storing (possible) cycling information (NOT YET IMPLEMENTED!). */
+};
+
+
+#include <QProblem.ipp>
+
+#endif	/* QPOASES_QPROBLEM_HPP */
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/QProblemB.hpp b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/QProblemB.hpp
new file mode 100644
index 0000000..49ace9e
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/QProblemB.hpp
@@ -0,0 +1,628 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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/QProblemB.hpp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Declaration of the QProblemB class which is able to use the newly
+ *	developed online active set strategy for parametric quadratic programming
+ *	for problems with (simple) bounds only.
+ */
+
+
+
+#ifndef QPOASES_QPROBLEMB_HPP
+#define QPOASES_QPROBLEMB_HPP
+
+
+#include <Bounds.hpp>
+
+
+
+class SolutionAnalysis;
+
+/** Class for setting up and solving quadratic programs with (simple) bounds only.
+ *	The main feature is the possibily to use the newly developed online active set strategy
+ *	for parametric quadratic programming.
+ *
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ */
+class QProblemB
+{
+	/* allow SolutionAnalysis class to access private members */
+	friend class SolutionAnalysis;
+	
+	/*
+	 *	PUBLIC MEMBER FUNCTIONS
+	 */
+	public:
+		/** Default constructor. */
+		QProblemB( );
+
+		/** Constructor which takes the QP dimension only. */
+		QProblemB(	int _nV						/**< Number of variables. */
+					);
+
+		/** Copy constructor (deep copy). */
+		QProblemB(	const QProblemB& rhs	/**< Rhs object. */
+					);
+
+		/** Destructor. */
+		~QProblemB( );
+
+		/** Assignment operator (deep copy). */
+		QProblemB& operator=(	const QProblemB& rhs	/**< Rhs object. */
+								);
+
+
+		/** Clears all data structures of QProblemB except for QP data.
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_RESET_FAILED */
+		returnValue reset( );
+
+
+		/** Initialises a QProblemB with given QP data and solves it
+		 *	using an initial homotopy with empty working set (at most nWSR iterations).
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_INIT_FAILED \n
+					RET_INIT_FAILED_CHOLESKY \n
+					RET_INIT_FAILED_HOTSTART \n
+					RET_INIT_FAILED_INFEASIBILITY \n
+					RET_INIT_FAILED_UNBOUNDEDNESS \n
+					RET_MAX_NWSR_REACHED \n
+					RET_INVALID_ARGUMENTS \n
+					RET_INACCURATE_SOLUTION \n
+		 			RET_NO_SOLUTION */
+		returnValue init(	const real_t* const _H, 		/**< Hessian matrix. */
+							const real_t* const _g,			/**< Gradient vector. */
+							const real_t* const _lb,		/**< Lower bounds (on variables). \n
+																If no lower bounds exist, a NULL pointer can be passed. */
+							const real_t* const _ub,		/**< Upper bounds (on variables). \n
+																If no upper bounds exist, a NULL pointer can be passed. */
+							int& nWSR, 						/**< Input: Maximum number of working set recalculations when using initial homotopy. \n
+																Output: Number of performed working set recalculations. */
+							const real_t* const yOpt = 0,	/**< Initial guess for dual solution vector. */
+				 			real_t* const cputime = 0		/**< Output: CPU time required to initialise QP. */
+							);
+
+
+		/** Initialises a QProblemB with given QP data and solves it
+		 *	using an initial homotopy with empty working set (at most nWSR iterations).
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_INIT_FAILED \n
+					RET_INIT_FAILED_CHOLESKY \n
+					RET_INIT_FAILED_HOTSTART \n
+					RET_INIT_FAILED_INFEASIBILITY \n
+					RET_INIT_FAILED_UNBOUNDEDNESS \n
+					RET_MAX_NWSR_REACHED \n
+					RET_INVALID_ARGUMENTS \n
+					RET_INACCURATE_SOLUTION \n
+		 			RET_NO_SOLUTION */
+		returnValue init(	const real_t* const _H, 		/**< Hessian matrix. */
+							const real_t* const _R, 		/**< Cholesky factorization of the Hessian matrix. */
+							const real_t* const _g,			/**< Gradient vector. */
+							const real_t* const _lb,		/**< Lower bounds (on variables). \n
+																If no lower bounds exist, a NULL pointer can be passed. */
+							const real_t* const _ub,		/**< Upper bounds (on variables). \n
+																If no upper bounds exist, a NULL pointer can be passed. */
+							int& nWSR, 						/**< Input: Maximum number of working set recalculations when using initial homotopy. \n
+																Output: Number of performed working set recalculations. */
+							const real_t* const yOpt = 0,	/**< Initial guess for dual solution vector. */
+				 			real_t* const cputime = 0		/**< Output: CPU time required to initialise QP. */
+							);
+
+
+		/** Solves an initialised QProblemB using online active set strategy.
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_MAX_NWSR_REACHED \n
+					RET_HOTSTART_FAILED_AS_QP_NOT_INITIALISED \n
+					RET_HOTSTART_FAILED \n
+					RET_SHIFT_DETERMINATION_FAILED \n
+					RET_STEPDIRECTION_DETERMINATION_FAILED \n
+					RET_STEPLENGTH_DETERMINATION_FAILED \n
+					RET_HOMOTOPY_STEP_FAILED \n
+					RET_HOTSTART_STOPPED_INFEASIBILITY \n
+					RET_HOTSTART_STOPPED_UNBOUNDEDNESS \n
+					RET_INACCURATE_SOLUTION \n
+		 			RET_NO_SOLUTION */
+		returnValue hotstart(	const real_t* const g_new,	/**< Gradient of neighbouring QP to be solved. */
+								const real_t* const lb_new,	/**< Lower bounds of neighbouring QP to be solved. \n
+													 			 If no lower bounds exist, a NULL pointer can be passed. */
+								const real_t* const ub_new,	/**< Upper bounds of neighbouring QP to be solved. \n
+													 			 If no upper bounds exist, a NULL pointer can be passed. */
+								int& nWSR,					/**< Input: Maximum number of working set recalculations; \n
+																 Output: Number of performed working set recalculations. */
+								real_t* const cputime		/**< Output: CPU time required to solve QP (or to perform nWSR iterations). */
+								);
+
+
+		/** Returns Hessian matrix of the QP (deep copy).
+		  *	\return SUCCESSFUL_RETURN */
+		inline returnValue getH(	real_t* const _H	/**< Array of appropriate dimension for copying Hessian matrix.*/
+									) const;
+
+		/** Returns gradient vector of the QP (deep copy).
+		  *	\return SUCCESSFUL_RETURN */
+		inline returnValue getG(	real_t* const _g	/**< Array of appropriate dimension for copying gradient vector.*/
+									) const;
+
+		/** Returns lower bound vector of the QP (deep copy).
+		  *	\return SUCCESSFUL_RETURN */
+		inline returnValue getLB(	real_t* const _lb	/**< Array of appropriate dimension for copying lower bound vector.*/
+									) const;
+
+		/** Returns single entry of lower bound vector of the QP.
+		  *	\return SUCCESSFUL_RETURN \n
+					RET_INDEX_OUT_OF_BOUNDS */
+		inline returnValue getLB(	int number,		/**< Number of entry to be returned. */
+									real_t& value	/**< Output: lb[number].*/
+									) const;
+
+		/** Returns upper bound vector of the QP (deep copy).
+		  *	\return SUCCESSFUL_RETURN */
+		inline returnValue getUB(	real_t* const _ub	/**< Array of appropriate dimension for copying upper bound vector.*/
+									) const;
+
+		/** Returns single entry of upper bound vector of the QP.
+		  *	\return SUCCESSFUL_RETURN \n
+					RET_INDEX_OUT_OF_BOUNDS */
+		inline returnValue getUB(	int number,		/**< Number of entry to be returned. */
+									real_t& value	/**< Output: ub[number].*/
+									) const;
+
+
+		/** Returns current bounds object of the QP (deep copy).
+		  *	\return SUCCESSFUL_RETURN */
+		inline returnValue getBounds(	Bounds* const _bounds	/** Output: Bounds object. */
+										) const;
+
+
+		/** Returns the number of variables.
+		 *	\return Number of variables. */
+		inline int getNV( ) const;
+
+		/** Returns the number of free variables.
+		 *	\return Number of free variables. */
+		inline int getNFR( );
+
+		/** Returns the number of fixed variables.
+		 *	\return Number of fixed variables. */
+		inline int getNFX( );
+
+		/** Returns the number of implicitly fixed variables.
+		 *	\return Number of implicitly fixed variables. */
+		inline int getNFV( ) const;
+
+		/** Returns the dimension of null space.
+		 *	\return Dimension of null space. */
+		int getNZ( );
+
+
+		/** Returns the optimal objective function value.
+		 *	\return finite value: Optimal objective function value (QP was solved) \n
+		 			+infinity:	  QP was not yet solved */
+		real_t getObjVal( ) const;
+
+		/** Returns the objective function value at an arbitrary point x.
+		 *	\return Objective function value at point x */
+		real_t getObjVal(	const real_t* const _x	/**< Point at which the objective function shall be evaluated. */
+							) const;
+
+		/** Returns the primal solution vector.
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_QP_NOT_SOLVED */
+		returnValue getPrimalSolution(	real_t* const xOpt			/**< Output: Primal solution vector (if QP has been solved). */
+										) const;
+
+		/** Returns the dual solution vector.
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_QP_NOT_SOLVED */
+		returnValue getDualSolution(	real_t* const yOpt	/**< Output: Dual solution vector (if QP has been solved). */
+										) const;
+
+
+		/** Returns status of the solution process.
+		 *	\return Status of solution process. */
+		inline QProblemStatus getStatus( ) const;
+
+
+		/** Returns if the QProblem object is initialised.
+		 *	\return BT_TRUE:  QProblemB initialised \n
+		 			BT_FALSE: QProblemB not initialised */
+		inline BooleanType isInitialised( ) const;
+
+		/** Returns if the QP has been solved.
+		 *	\return BT_TRUE:  QProblemB solved \n
+		 			BT_FALSE: QProblemB not solved */
+		inline BooleanType isSolved( ) const;
+
+		/** Returns if the QP is infeasible.
+		 *	\return BT_TRUE:  QP infeasible \n
+		 			BT_FALSE: QP feasible (or not known to be infeasible!) */
+		inline BooleanType isInfeasible( ) const;
+
+		/** Returns if the QP is unbounded.
+		 *	\return BT_TRUE:  QP unbounded \n
+		 			BT_FALSE: QP unbounded (or not known to be unbounded!) */
+		inline BooleanType isUnbounded( ) const;
+
+
+		/** Returns the print level.
+		 *	\return Print level. */
+		inline PrintLevel getPrintLevel( ) const;
+
+		/** Changes the print level.
+ 		 *	\return SUCCESSFUL_RETURN */
+		returnValue setPrintLevel(	PrintLevel _printlevel	/**< New print level. */
+									);
+
+
+		/** Returns Hessian type flag (type is not determined due to this call!).
+		 *	\return Hessian type. */
+		inline HessianType getHessianType( ) const;
+
+		/** Changes the print level.
+ 		 *	\return SUCCESSFUL_RETURN */
+		inline returnValue setHessianType(	HessianType _hessianType /**< New Hessian type. */
+											);
+
+
+	/*
+	 *	PROTECTED MEMBER FUNCTIONS
+	 */
+	protected:
+		/** Checks if Hessian happens to be the identity matrix,
+		 *  and sets corresponding status flag (otherwise the flag remains unaltered!).
+		 *	\return SUCCESSFUL_RETURN */
+		returnValue checkForIdentityHessian( );
+
+		/** Determines type of constraints and bounds (i.e. implicitly fixed, unbounded etc.).
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_SETUPSUBJECTTOTYPE_FAILED */
+		returnValue setupSubjectToType( );
+
+		/** Computes the Cholesky decomposition R of the (simply projected) Hessian (i.e. R^T*R = Z^T*H*Z).
+		 *  It only works in the case where Z is a simple projection matrix!
+		 *	\return SUCCESSFUL_RETURN \n
+		 *			RET_INDEXLIST_CORRUPTED */
+		returnValue setupCholeskyDecomposition( );
+
+
+		/** Solves a QProblemB whose QP data is assumed to be stored in the member variables.
+		 *  A guess for its primal/dual optimal solution vectors and the corresponding
+		 *  optimal working set can be provided.
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_INIT_FAILED \n
+					RET_INIT_FAILED_CHOLESKY \n
+					RET_INIT_FAILED_HOTSTART \n
+					RET_INIT_FAILED_INFEASIBILITY \n
+					RET_INIT_FAILED_UNBOUNDEDNESS \n
+					RET_MAX_NWSR_REACHED */
+		returnValue solveInitialQP(	const real_t* const xOpt,			/**< Optimal primal solution vector.
+																		 *	 A NULL pointer can be passed. */
+									const real_t* const yOpt,			/**< Optimal dual solution vector.
+																		 *	 A NULL pointer can be passed. */
+									const Bounds* const guessedBounds,	/**< Guessed working set for solution (xOpt,yOpt).
+																		 *	 A NULL pointer can be passed. */
+									int& nWSR, 							/**< Input: Maximum number of working set recalculations; \n
+																 		 *	 Output: Number of performed working set recalculations. */
+									real_t* const cputime				/**< Output: CPU time required to solve QP (or to perform nWSR iterations). */
+									);
+
+
+		/** Obtains the desired working set for the auxiliary initial QP in
+		 *  accordance with the user specifications
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_OBTAINING_WORKINGSET_FAILED \n
+					RET_INVALID_ARGUMENTS */
+		returnValue obtainAuxiliaryWorkingSet(	const real_t* const xOpt,			/**< Optimal primal solution vector.
+																					 *	 If a NULL pointer is passed, all entries are assumed to be zero. */
+												const real_t* const yOpt,			/**< Optimal dual solution vector.
+																					 *	 If a NULL pointer is passed, all entries are assumed to be zero. */
+												const Bounds* const guessedBounds,	/**< Guessed working set for solution (xOpt,yOpt). */
+												Bounds* auxiliaryBounds				/**< Input: Allocated bound object. \n
+																					 *	 Ouput: Working set for auxiliary QP. */
+												) const;
+
+		/** Setups bound data structure according to auxiliaryBounds.
+		 *  (If the working set shall be setup afresh, make sure that
+		 *  bounds data structure has been resetted!)
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_SETUP_WORKINGSET_FAILED \n
+					RET_INVALID_ARGUMENTS \n
+					RET_UNKNOWN BUG */
+		returnValue setupAuxiliaryWorkingSet(	const Bounds* const auxiliaryBounds,	/**< Working set for auxiliary QP. */
+												BooleanType setupAfresh					/**< Flag indicating if given working set shall be
+																						 *    setup afresh or by updating the current one. */
+												);
+
+		/** Setups the optimal primal/dual solution of the auxiliary initial QP.
+		 *	\return SUCCESSFUL_RETURN */
+		returnValue setupAuxiliaryQPsolution(	const real_t* const xOpt,			/**< Optimal primal solution vector.
+																				 	*	 If a NULL pointer is passed, all entries are set to zero. */
+												const real_t* const yOpt			/**< Optimal dual solution vector.
+																					 *	 If a NULL pointer is passed, all entries are set to zero. */
+												);
+
+		/** Setups gradient of the auxiliary initial QP for given
+		 *  optimal primal/dual solution and given initial working set
+		 *  (assumes that members X, Y and BOUNDS have already been initialised!).
+		 *	\return SUCCESSFUL_RETURN */
+		returnValue setupAuxiliaryQPgradient( );
+
+		/** Setups bounds of the auxiliary initial QP for given
+		 *  optimal primal/dual solution and given initial working set
+		 *  (assumes that members X, Y and BOUNDS have already been initialised!).
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_UNKNOWN BUG */
+		returnValue setupAuxiliaryQPbounds( BooleanType useRelaxation	/**< Flag indicating if inactive bounds shall be relaxed. */
+											);
+
+
+		/** Adds a bound to active set (specialised version for the case where no constraints exist).
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_ADDBOUND_FAILED */
+		returnValue addBound(	int number,					/**< Number of bound to be added to active set. */
+								SubjectToStatus B_status,	/**< Status of new active bound. */
+								BooleanType updateCholesky	/**< Flag indicating if Cholesky decomposition shall be updated. */
+								);
+
+		/** Removes a bounds from active set (specialised version for the case where no constraints exist).
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_HESSIAN_NOT_SPD \n
+					RET_REMOVEBOUND_FAILED */
+		returnValue removeBound(	int number,					/**< Number of bound to be removed from active set. */
+									BooleanType updateCholesky	/**< Flag indicating if Cholesky decomposition shall be updated. */
+									);
+
+
+		/** Solves the system Ra = b or R^Ta = b where R is an upper triangular matrix.
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_DIV_BY_ZERO */
+		returnValue backsolveR(	const real_t* const b,	/**< Right hand side vector. */
+								BooleanType transposed,	/**< Indicates if the transposed system shall be solved. */
+								real_t* const a 		/**< Output: Solution vector */
+								);
+
+		/** Solves the system Ra = b or R^Ta = b where R is an upper triangular matrix. \n
+		 *  Special variant for the case that this function is called from within "removeBound()".
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_DIV_BY_ZERO */
+		returnValue backsolveR(	const real_t* const b,		/**< Right hand side vector. */
+								BooleanType transposed,		/**< Indicates if the transposed system shall be solved. */
+								BooleanType removingBound,	/**< Indicates if function is called from "removeBound()". */
+								real_t* const a 			/**< Output: Solution vector */
+								);
+
+
+		/** Determines step direction of the shift of the QP data.
+		 *	\return SUCCESSFUL_RETURN */
+		returnValue hotstart_determineDataShift(const int* const FX_idx, 	/**< Index array of fixed variables. */
+												const real_t* const g_new,	/**< New gradient vector. */
+												const real_t* const lb_new,	/**< New lower bounds. */
+												const real_t* const ub_new,	/**< New upper bounds. */
+												real_t* const delta_g,	 	/**< Output: Step direction of gradient vector. */
+												real_t* const delta_lb,	 	/**< Output: Step direction of lower bounds. */
+												real_t* const delta_ub,	 	/**< Output: Step direction of upper bounds. */
+												BooleanType& Delta_bB_isZero/**< Output: Indicates if active bounds are to be shifted. */
+												);
+
+
+		/** Checks if lower/upper bounds remain consistent
+		 *  (i.e. if lb <= ub) during the current step.
+		 *	\return BT_TRUE iff bounds remain consistent
+		 */
+		BooleanType areBoundsConsistent(	const real_t* const delta_lb,		/**< Step direction of lower bounds. */
+											const real_t* const delta_ub		/**< Step direction of upper bounds. */
+											) const;
+
+
+		/** Setups internal QP data.
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_INVALID_ARGUMENTS */
+		returnValue setupQPdata(	const real_t* const _H, 	/**< Hessian matrix. */
+									const real_t* const _R, 	/**< Cholesky factorization of the Hessian matrix. */
+									const real_t* const _g,		/**< Gradient vector. */
+									const real_t* const _lb,	/**< Lower bounds (on variables). \n
+																	 If no lower bounds exist, a NULL pointer can be passed. */
+									const real_t* const _ub		/**< Upper bounds (on variables). \n
+																	 If no upper bounds exist, a NULL pointer can be passed. */
+									);
+
+
+		/** Sets Hessian matrix of the QP.
+		 *	\return SUCCESSFUL_RETURN */
+		inline returnValue setH(	const real_t* const H_new	/**< New Hessian matrix (with correct dimension!). */
+									);
+
+		/** Changes gradient vector of the QP.
+		 *	\return SUCCESSFUL_RETURN */
+		inline returnValue setG(	const real_t* const g_new	/**< New gradient vector (with correct dimension!). */
+									);
+
+		/** Changes lower bound vector of the QP.
+		 *	\return SUCCESSFUL_RETURN */
+		inline returnValue setLB(	const real_t* const lb_new	/**< New lower bound vector (with correct dimension!). */
+									);
+
+		/** Changes single entry of lower bound vector of the QP.
+		 *	\return SUCCESSFUL_RETURN  \n
+					RET_INDEX_OUT_OF_BOUNDS */
+		inline returnValue setLB(	int number,		/**< Number of entry to be changed. */
+									real_t value	/**< New value for entry of lower bound vector. */
+									);
+
+		/** Changes upper bound vector of the QP.
+		 *	\return SUCCESSFUL_RETURN */
+		inline returnValue setUB(	const real_t* const ub_new	/**< New upper bound vector (with correct dimension!). */
+									);
+
+		/** Changes single entry of upper bound vector of the QP.
+		 *	\return SUCCESSFUL_RETURN  \n
+					RET_INDEX_OUT_OF_BOUNDS */
+		inline returnValue setUB(	int number,		/**< Number of entry to be changed. */
+									real_t value	/**< New value for entry of upper bound vector. */
+									);
+
+
+		/** Computes parameters for the Givens matrix G for which [x,y]*G = [z,0]
+		 *	\return SUCCESSFUL_RETURN */
+		inline void computeGivens(	real_t xold,	/**< Matrix entry to be normalised. */
+									real_t yold,	/**< Matrix entry to be annihilated. */
+									real_t& xnew,	/**< Output: Normalised matrix entry. */
+									real_t& ynew,	/**< Output: Annihilated matrix entry. */
+									real_t& c,		/**< Output: Cosine entry of Givens matrix. */
+									real_t& s 		/**< Output: Sine entry of Givens matrix. */
+									) const;
+
+		/** Applies Givens matrix determined by c and s (cf. computeGivens).
+		 *	\return SUCCESSFUL_RETURN */
+		inline void applyGivens(	real_t c,		/**< Cosine entry of Givens matrix. */
+									real_t s,		/**< Sine entry of Givens matrix. */
+									real_t xold,	/**< Matrix entry to be transformed corresponding to
+													 *	 the normalised entry of the original matrix. */
+									real_t yold, 	/**< Matrix entry to be transformed corresponding to
+													 *	 the annihilated entry of the original matrix. */
+									real_t& xnew,	/**< Output: Transformed matrix entry corresponding to
+													 *	 the normalised entry of the original matrix. */
+									real_t& ynew	/**< Output: Transformed matrix entry corresponding to
+													 *	 the annihilated entry of the original matrix. */
+									) const;
+
+
+	/*
+	 *	PRIVATE MEMBER FUNCTIONS
+	 */
+	private:
+		/** Determines step direction of the homotopy path.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_STEPDIRECTION_FAILED_CHOLESKY */
+		returnValue hotstart_determineStepDirection(const int* const FR_idx, 		/**< Index array of free variables. */
+													const int* const FX_idx, 		/**< Index array of fixed variables. */
+													const real_t* const delta_g,	/**< Step direction of gradient vector. */
+													const real_t* const delta_lb,	/**< Step direction of lower bounds. */
+													const real_t* const delta_ub,	/**< Step direction of upper bounds. */
+													BooleanType Delta_bB_isZero,	/**< Indicates if active bounds are to be shifted. */
+													real_t* const delta_xFX, 		/**< Output: Primal homotopy step direction of fixed variables. */
+													real_t* const delta_xFR,	 	/**< Output: Primal homotopy step direction of free variables. */
+													real_t* const delta_yFX 		/**< Output: Dual homotopy step direction of fixed variables' multiplier. */
+													);
+
+		/** Determines the maximum possible step length along the homotopy path.
+		 *	\return SUCCESSFUL_RETURN */
+		returnValue hotstart_determineStepLength(	const int* const FR_idx, 		/**< Index array of free variables. */
+													const int* const FX_idx, 		/**< Index array of fixed variables. */
+													const real_t* const delta_lb,	/**< Step direction of lower bounds. */
+													const real_t* const delta_ub,	/**< Step direction of upper bounds. */
+													const real_t* const delta_xFR,	/**< Primal homotopy step direction of free variables. */
+													const real_t* const delta_yFX,	/**< Dual homotopy step direction of fixed variables' multiplier. */
+													int& BC_idx, 					/**< Output: Index of blocking constraint. */
+													SubjectToStatus& BC_status		/**< Output: Status of blocking constraint. */
+													);
+
+		/** Performs a step along the homotopy path (and updates active set).
+		 *	\return  SUCCESSFUL_RETURN \n
+		 			 RET_OPTIMAL_SOLUTION_FOUND \n
+		 			 RET_REMOVE_FROM_ACTIVESET_FAILED \n
+					 RET_ADD_TO_ACTIVESET_FAILED \n
+					 RET_QP_INFEASIBLE */
+		returnValue hotstart_performStep(	const int* const FR_idx, 			/**< Index array of free variables. */
+											const int* const FX_idx, 			/**< Index array of fixed variables. */
+											const real_t* const delta_g,	 	/**< Step direction of gradient vector. */
+											const real_t* const delta_lb,	 	/**< Step direction of lower bounds. */
+											const real_t* const delta_ub,	 	/**< Step direction of upper bounds. */
+											const real_t* const delta_xFX, 		/**< Primal homotopy step direction of fixed variables. */
+											const real_t* const delta_xFR,	 	/**< Primal homotopy step direction of free variables. */
+											const real_t* const delta_yFX, 		/**< Dual homotopy step direction of fixed variables' multiplier. */
+											int BC_idx, 						/**< Index of blocking constraint. */
+											SubjectToStatus BC_status 			/**< Status of blocking constraint. */
+											);
+
+
+		#ifdef PC_DEBUG  /* Define print functions only for debugging! */
+
+		/** Prints concise information on the current iteration.
+		 *	\return  SUCCESSFUL_RETURN \n */
+		returnValue printIteration(	int iteration,				/**< Number of current iteration. */
+									int BC_idx, 				/**< Index of blocking bound. */
+									SubjectToStatus BC_status	/**< Status of blocking bound. */
+									);
+
+		#endif  /* PC_DEBUG */
+
+
+		/** Determines the maximum violation of the KKT optimality conditions
+		 *  of the current iterate within the QProblemB object.
+		 *	\return SUCCESSFUL_RETURN \n
+		 * 			RET_INACCURATE_SOLUTION \n
+		 * 			RET_NO_SOLUTION */
+		returnValue checkKKTconditions( );
+
+
+	/*
+	 *	PROTECTED MEMBER VARIABLES
+	 */
+	protected:
+		real_t H[NVMAX*NVMAX];		/**< Hessian matrix. */
+		BooleanType hasHessian;		/**< Flag indicating whether H contains Hessian or corresponding Cholesky factor R; \sa init. */
+
+		real_t g[NVMAX];			/**< Gradient. */
+		real_t lb[NVMAX];			/**< Lower bound vector (on variables). */
+		real_t ub[NVMAX];			/**< Upper bound vector (on variables). */
+
+		Bounds bounds;				/**< Data structure for problem's bounds. */
+
+		real_t R[NVMAX*NVMAX];		/**< Cholesky decomposition of H (i.e. H = R^T*R). */
+		BooleanType hasCholesky;	/**< Flag indicating whether Cholesky decomposition has already been setup. */
+
+		real_t x[NVMAX];			/**< Primal solution vector. */
+		real_t y[NVMAX+NCMAX];		/**< Dual solution vector. */
+
+		real_t tau;					/**< Last homotopy step length. */
+
+		QProblemStatus status;		/**< Current status of the solution process. */
+
+		BooleanType infeasible;		/**< QP infeasible? */
+		BooleanType unbounded;		/**< QP unbounded? */
+
+		HessianType hessianType;	/**< Type of Hessian matrix. */
+
+		PrintLevel printlevel;		/**< Print level. */
+
+		int count;					/**< Counts the number of hotstart function calls (internal usage only!). */
+};
+
+
+#include <QProblemB.ipp>
+
+#endif	/* QPOASES_QPROBLEMB_HPP */
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/SubjectTo.hpp b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/SubjectTo.hpp
new file mode 100644
index 0000000..e07bf04
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/SubjectTo.hpp
@@ -0,0 +1,178 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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/SubjectTo.hpp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Declaration of the SubjectTo class designed to manage working sets of
+ *	constraints and bounds within a QProblem.
+ */
+
+
+#ifndef QPOASES_SUBJECTTO_HPP
+#define QPOASES_SUBJECTTO_HPP
+
+
+#include <Indexlist.hpp>
+
+
+
+/** This class manages working sets of constraints and bounds by storing
+ *	index sets and other status information.
+ *
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ */
+class SubjectTo
+{
+	/*
+	 *	PUBLIC MEMBER FUNCTIONS
+	 */
+	public:
+		/** Default constructor. */
+		SubjectTo( );
+
+		/** Copy constructor (deep copy). */
+		SubjectTo(	const SubjectTo& rhs	/**< Rhs object. */
+					);
+
+		/** Destructor. */
+		~SubjectTo( );
+
+		/** Assignment operator (deep copy). */
+		SubjectTo& operator=(	const SubjectTo& rhs	/**< Rhs object. */
+								);
+
+
+		/** Pseudo-constructor takes the number of constraints or bounds.
+		 *	\return SUCCESSFUL_RETURN */
+		returnValue init(	int n 	/**< Number of constraints or bounds. */
+							);
+
+
+		/** Returns type of (constraints') bound.
+		 *	\return Type of (constraints') bound \n
+		 			RET_INDEX_OUT_OF_BOUNDS */
+		inline SubjectToType getType(	int i		/**< Number of (constraints') bound. */
+										) const ;
+
+		/** Returns status of (constraints') bound.
+		 *	\return Status of (constraints') bound \n
+		 			ST_UNDEFINED */
+		inline SubjectToStatus getStatus(	int i		/**< Number of (constraints') bound. */
+											) const;
+
+
+		/** Sets type of (constraints') bound.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_INDEX_OUT_OF_BOUNDS */
+		inline returnValue setType(	int i,				/**< Number of (constraints') bound. */
+									SubjectToType value	/**< Type of (constraints') bound. */
+									);
+
+		/** Sets status of (constraints') bound.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_INDEX_OUT_OF_BOUNDS */
+		inline returnValue setStatus(	int i,					/**< Number of (constraints') bound. */
+										SubjectToStatus value	/**< Status of (constraints') bound. */
+										);
+
+
+		/** Sets status of lower (constraints') bounds. */
+		inline void setNoLower(	BooleanType _status		/**< Status of lower (constraints') bounds. */
+								);
+
+		/** Sets status of upper (constraints') bounds. */
+		inline void setNoUpper(	BooleanType _status		/**< Status of upper (constraints') bounds. */
+								);
+
+
+		/** Returns status of lower (constraints') bounds.
+		 *	\return BT_TRUE if there is no lower (constraints') bound on any variable. */
+		inline BooleanType isNoLower( ) const;
+
+		/** Returns status of upper bounds.
+		 *	\return BT_TRUE if there is no upper (constraints') bound on any variable. */
+		inline BooleanType isNoUpper( ) const;
+
+
+	/*
+	 *	PROTECTED MEMBER FUNCTIONS
+	 */
+	protected:
+		/** Adds the index of a new constraint or bound to index set.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_ADDINDEX_FAILED */
+		returnValue addIndex(	Indexlist* const indexlist,	/**< Index list to which the new index shall be added. */
+								int newnumber,				/**< Number of new constraint or bound. */
+								SubjectToStatus newstatus	/**< Status of new constraint or bound. */
+								);
+
+		/** Removes the index of a constraint or bound from index set.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_UNKNOWN_BUG */
+		returnValue removeIndex(	Indexlist* const indexlist,	/**< Index list from which the new index shall be removed. */
+									int removenumber			/**< Number of constraint or bound to be removed. */
+									);
+
+		/** Swaps the indices of two constraints or bounds within the index set.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_SWAPINDEX_FAILED */
+		returnValue swapIndex(	Indexlist* const indexlist,	/**< Index list in which the indices shold be swapped. */
+								int number1,				/**< Number of first constraint or bound. */
+								int number2					/**< Number of second constraint or bound. */
+								);
+
+
+	/*
+	 *	PROTECTED MEMBER VARIABLES
+	 */
+	protected:
+		SubjectToType type[NVMAX+NCMAX]; 		/**< Type of constraints/bounds. */
+		SubjectToStatus status[NVMAX+NCMAX];	/**< Status of constraints/bounds. */
+
+		BooleanType noLower;				 	/**< This flag indicates if there is no lower bound on any variable. */
+		BooleanType noUpper;	 				/**< This flag indicates if there is no upper bound on any variable. */
+
+
+	/*
+	 *	PRIVATE MEMBER VARIABLES
+	 */
+	private:
+		int size;
+};
+
+
+
+#include <SubjectTo.ipp>
+
+#endif	/* QPOASES_SUBJECTTO_HPP */
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/Types.hpp b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/Types.hpp
new file mode 100644
index 0000000..5b873ad
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/Types.hpp
@@ -0,0 +1,131 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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/Types.hpp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2008
+ *
+ *	Declaration of all non-built-in types (except for classes).
+ */
+
+
+#ifndef QPOASES_TYPES_HPP
+#define QPOASES_TYPES_HPP
+
+
+
+/** Define real_t for facilitating switching between double and float. */
+// typedef double real_t;
+
+
+/** Summarises all possible logical values. */
+enum BooleanType
+{
+	BT_FALSE,					/**< Logical value for "false". */
+	BT_TRUE						/**< Logical value for "true". */
+};
+
+
+/** Summarises all possible print levels. Print levels are used to describe
+ *	the desired amount of output during runtime of qpOASES. */
+enum PrintLevel
+{
+	PL_NONE,					/**< No output. */
+	PL_LOW,						/**< Print error messages only. */
+	PL_MEDIUM,					/**< Print error and warning messages as well as concise info messages. */
+	PL_HIGH						/**< Print all messages with full details. */
+};
+
+
+/** Defines visibility status of a message. */
+enum VisibilityStatus
+{
+	VS_VISIBLE,					/**< Message visible. */
+	VS_HIDDEN					/**< Message not visible. */
+};
+
+
+/** Summarises all possible states of the (S)QProblem(B) object during the
+solution process of a QP sequence. */
+enum QProblemStatus
+{
+	QPS_NOTINITIALISED,			/**< QProblem object is freshly instantiated or reset. */
+	QPS_PREPARINGAUXILIARYQP,	/**< An auxiliary problem is currently setup, either at the very beginning
+								 *   via an initial homotopy or after changing the QP matrices. */
+	QPS_AUXILIARYQPSOLVED,		/**< An auxilary problem was solved, either at the very beginning
+								 *   via an initial homotopy or after changing the QP matrices. */
+	QPS_PERFORMINGHOMOTOPY,		/**< A homotopy according to the main idea of the online active
+								 *   set strategy is performed. */
+	QPS_HOMOTOPYQPSOLVED,		/**< An intermediate QP along the homotopy path was solved. */
+	QPS_SOLVED					/**< The solution of the actual QP was found. */
+};
+
+
+/** Summarises all possible types of bounds and constraints. */
+enum SubjectToType
+{
+	ST_UNBOUNDED,				/**< Bound/constraint is unbounded. */
+	ST_BOUNDED,					/**< Bound/constraint is bounded but not fixed. */
+	ST_EQUALITY,				/**< Bound/constraint is fixed (implicit equality bound/constraint). */
+	ST_UNKNOWN					/**< Type of bound/constraint unknown. */
+};
+
+
+/** Summarises all possible states of bounds and constraints. */
+enum SubjectToStatus
+{
+	ST_INACTIVE,				/**< Bound/constraint is inactive. */
+	ST_LOWER,					/**< Bound/constraint is at its lower bound. */
+	ST_UPPER,					/**< Bound/constraint is at its upper bound. */
+	ST_UNDEFINED				/**< Status of bound/constraint undefined. */
+};
+
+
+/** Summarises all possible cycling states of bounds and constraints. */
+enum CyclingStatus
+{
+	CYC_NOT_INVOLVED,			/**< Bound/constraint is not involved in current cycling. */
+	CYC_PREV_ADDED,				/**< Bound/constraint has previously been added during the current cycling. */
+	CYC_PREV_REMOVED			/**< Bound/constraint has previously been removed during the current cycling. */
+};
+
+
+/** Summarises all possible types of the QP's Hessian matrix. */
+enum HessianType
+{
+	HST_SEMIDEF,				/**< Hessian is positive semi-definite. */
+	HST_POSDEF_NULLSPACE,		/**< Hessian is positive definite on null space of active bounds/constraints. */
+	HST_POSDEF,					/**< Hessian is (strictly) positive definite. */
+	HST_IDENTITY				/**< Hessian is identity matrix. */
+};
+
+
+
+#endif	/* QPOASES_TYPES_HPP */
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/Utils.hpp b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/Utils.hpp
new file mode 100644
index 0000000..a91ee78
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/INCLUDE/Utils.hpp
@@ -0,0 +1,197 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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/Utils.hpp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Declaration of global utility functions for working with qpOASES.
+ */
+
+
+#ifndef QPOASES_UTILS_HPP
+#define QPOASES_UTILS_HPP
+
+
+#include <MessageHandling.hpp>
+
+
+#ifdef PC_DEBUG  /* Define print functions only for debugging! */
+
+/** Prints a vector.
+ * \return SUCCESSFUL_RETURN */
+returnValue print(	const real_t* const v,	/**< Vector to be printed. */
+					int n					/**< Length of vector. */
+					);
+
+/** Prints a permuted vector.
+ * \return SUCCESSFUL_RETURN */
+returnValue print(	const real_t* const v,		/**< Vector to be printed. */
+					int n,						/**< Length of vector. */
+					const int* const V_idx		/**< Pemutation vector. */
+					);
+
+/** Prints a named vector.
+ * \return SUCCESSFUL_RETURN */
+returnValue print(	const real_t* const v,	/**< Vector to be printed. */
+					int n,					/**< Length of vector. */
+					const char* name		/** Name of vector. */
+					);
+
+/** Prints a matrix.
+ * \return SUCCESSFUL_RETURN */
+returnValue print(	const real_t* const M,	/**< Matrix to be printed. */
+					int nrow,				/**< Row number of matrix. */
+					int ncol				/**< Column number of matrix. */
+					);
+
+/** Prints a permuted matrix.
+ * \return SUCCESSFUL_RETURN */
+returnValue print(	const real_t* const M,		/**< Matrix to be printed. */
+					int nrow,					/**< Row number of matrix. */
+					int ncol	,				/**< Column number of matrix. */
+					const int* const ROW_idx,	/**< Row pemutation vector. */
+					const int* const COL_idx	/**< Column pemutation vector. */
+					);
+
+/** Prints a named matrix.
+ * \return SUCCESSFUL_RETURN */
+returnValue print(	const real_t* const M,	/**< Matrix to be printed. */
+					int nrow,				/**< Row number of matrix. */
+					int ncol,				/**< Column number of matrix. */
+					const char* name		/** Name of matrix. */
+					);
+
+/** Prints an index array.
+ * \return SUCCESSFUL_RETURN */
+returnValue print(	const int* const index,	/**< Index array to be printed. */
+					int n					/**< Length of index array. */
+					);
+
+/** Prints a named index array.
+ * \return SUCCESSFUL_RETURN */
+returnValue print(	const int* const index,	/**< Index array to be printed. */
+					int n,					/**< Length of index array. */
+					const char* name		/**< Name of index array. */
+					);
+
+
+/** Prints a string to desired output target (useful also for MATLAB output!).
+ * \return SUCCESSFUL_RETURN */
+returnValue myPrintf(	const char* s	/**< String to be written. */
+						);
+
+
+/** Prints qpOASES copyright notice.
+ * \return SUCCESSFUL_RETURN */
+returnValue printCopyrightNotice( );
+
+
+/** Reads a real_t matrix from file.
+ * \return SUCCESSFUL_RETURN \n
+ 		   RET_UNABLE_TO_OPEN_FILE \n
+		   RET_UNABLE_TO_READ_FILE */
+returnValue readFromFile(	real_t* data,				/**< Matrix to be read from file. */
+							int nrow,					/**< Row number of matrix. */
+							int ncol,					/**< Column number of matrix. */
+							const char* datafilename	/**< Data file name. */
+							);
+
+/** Reads a real_t vector from file.
+ * \return SUCCESSFUL_RETURN \n
+ 		   RET_UNABLE_TO_OPEN_FILE \n
+		   RET_UNABLE_TO_READ_FILE */
+returnValue readFromFile(	real_t* data,				/**< Vector to be read from file. */
+							int n,						/**< Length of vector. */
+							const char* datafilename	/**< Data file name. */
+							);
+
+/** Reads an integer (column) vector from file.
+ * \return SUCCESSFUL_RETURN \n
+ 		   RET_UNABLE_TO_OPEN_FILE \n
+		   RET_UNABLE_TO_READ_FILE */
+returnValue readFromFile(	int* data,					/**< Vector to be read from file. */
+							int n,						/**< Length of vector. */
+							const char* datafilename	/**< Data file name. */
+							);
+
+
+/** Writes a real_t matrix into a file.
+ * \return SUCCESSFUL_RETURN \n
+ 		   RET_UNABLE_TO_OPEN_FILE  */
+returnValue writeIntoFile(	const real_t* const data,	/**< Matrix to be written into file. */
+							int nrow,					/**< Row number of matrix. */
+							int ncol,					/**< Column number of matrix. */
+							const char* datafilename,	/**< Data file name. */
+							BooleanType append			/**< Indicates if data shall be appended if the file already exists (otherwise it is overwritten). */
+							);
+
+/** Writes a real_t vector into a file.
+ * \return SUCCESSFUL_RETURN \n
+ 		   RET_UNABLE_TO_OPEN_FILE  */
+returnValue writeIntoFile(	const real_t* const data,	/**< Vector to be written into file. */
+							int n,						/**< Length of vector. */
+							const char* datafilename,	/**< Data file name. */
+							BooleanType append			/**< Indicates if data shall be appended if the file already exists (otherwise it is overwritten). */
+							);
+
+/** Writes an integer (column) vector into a file.
+ * \return SUCCESSFUL_RETURN \n
+ 		   RET_UNABLE_TO_OPEN_FILE */
+returnValue writeIntoFile(	const int* const integer,	/**< Integer vector to be written into file. */
+							int n,						/**< Length of vector. */
+							const char* datafilename,	/**< Data file name. */
+							BooleanType append			/**< Indicates if integer shall be appended if the file already exists (otherwise it is overwritten). */
+							);
+
+#endif  /* PC_DEBUG */
+
+
+/** Returns the current system time.
+ * \return current system time */
+real_t getCPUtime( );
+
+
+/** Returns the Euclidean norm of a vector.
+ * \return 0: successful */
+real_t getNorm(	const real_t* const v,	/**< Vector. */
+				int n					/**< Vector's dimension. */
+				);
+
+/** Returns the absolute value of a real_t.
+ * \return Absolute value of a real_t */
+inline real_t getAbs(	real_t x		/**< Input argument. */
+						);
+
+
+
+#include <Utils.ipp>
+
+#endif	/* QPOASES_UTILS_HPP */
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/LICENSE.txt b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/LICENSE.txt
new file mode 100644
index 0000000..5ab7695
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/LICENSE.txt
@@ -0,0 +1,504 @@
+		  GNU LESSER GENERAL PUBLIC LICENSE
+		       Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+		  GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+  
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+			    NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+           How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library 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.
+
+    This library 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 this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
+
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/README.txt b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/README.txt
new file mode 100644
index 0000000..53fc2ab
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/README.txt
@@ -0,0 +1,92 @@
+##
+##	qpOASES -- An Implementation of the Online Active Set Strategy.
+##	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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
+##
+
+
+
+INTRODUCTION
+=============
+
+qpOASES is an open-source C++ implementation of the recently proposed 
+online active set strategy (see [1], [2]), which was inspired by important 
+observations from the field of parametric quadratic programming. It has 
+several theoretical features that make it particularly suited for model 
+predictive control (MPC) applications.
+
+The software package qpOASES implements these ideas and has already been 
+successfully used for closed-loop control of a real-world Diesel engine [3].
+
+
+References:
+
+[1] H.J. Ferreau. An Online Active Set Strategy for Fast Solution of 
+Parametric Quadratic Programs with Applications to Predictive Engine Control. 
+Diplom thesis, University of Heidelberg, 2006.
+
+[2] H.J. Ferreau, H.G. Bock, M. Diehl. An online active set strategy to 
+overcome the limitations of explicit MPC. International Journal of Robust 
+and Nonlinear Control, 18 (8), pp. 816-830, 2008.
+
+[3] H.J. Ferreau, P. Ortner, P. Langthaler, L. del Re, M. Diehl. Predictive 
+Control of a Real-World Diesel Engine using an Extended Online Active Set 
+Strategy. Annual Reviews in Control, 31 (2), pp. 293-301, 2007.
+
+
+
+GETTING STARTED
+================
+
+1. For installation, usage and additional information on this software package 
+   see the qpOASES User's Manual located at ./DOC/manual.pdf!
+
+
+2. The file ./LICENSE.txt contains a copy of the GNU Lesser General Public 
+   License. Please read it carefully before using qpOASES!
+
+
+3. The whole software package can be downloaded from 
+
+        http://homes.esat.kuleuven.be/~optec/software/qpOASES/ 
+
+   On this webpage you will also find a list of frequently asked questions.
+
+
+
+CONTACT THE AUTHORS
+====================
+
+If you have got questions, remarks or comments on qpOASES 
+please contact the main author:
+
+        Hans Joachim Ferreau
+        Katholieke Universiteit Leuven
+        Department of Electrical Engineering (ESAT)
+        Kasteelpark Arenberg 10, bus 2446
+        B-3001 Leuven-Heverlee, Belgium
+
+        Phone: +32 16 32 03 63
+        E-mail: joachim.ferreau@esat.kuleuven.be
+                qpOASES@esat.kuleuven.be
+
+Also bug reports and source code extensions are most welcome!
+
+
+
+##
+##	end of file
+##
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Bounds.cpp b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Bounds.cpp
new file mode 100644
index 0000000..cf8ed69
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Bounds.cpp
@@ -0,0 +1,252 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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 SRC/Bounds.cpp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Implementation of the Bounds class designed to manage working sets of
+ *	bounds within a QProblem.
+ */
+
+
+#include <Bounds.hpp>
+
+
+
+/*****************************************************************************
+ *  P U B L I C                                                              *
+ *****************************************************************************/
+
+
+/*
+ *	B o u n d s
+ */
+Bounds::Bounds( ) :	SubjectTo( ),
+					nV( 0 ),
+					nFV( 0 ),
+					nBV( 0 ),
+					nUV( 0 )
+{
+}
+
+
+/*
+ *	B o u n d s
+ */
+Bounds::Bounds( const Bounds& rhs ) :	SubjectTo( rhs ),
+										nV( rhs.nV ),
+										nFV( rhs.nFV ),
+										nBV( rhs.nBV ),
+										nUV( rhs.nUV )
+{
+	free  = rhs.free;
+	fixed = rhs.fixed;
+}
+
+
+/*
+ *	~ B o u n d s
+ */
+Bounds::~Bounds( )
+{
+}
+
+
+/*
+ *	o p e r a t o r =
+ */
+Bounds& Bounds::operator=( const Bounds& rhs )
+{
+	if ( this != &rhs )
+	{
+		SubjectTo::operator=( rhs );
+
+		nV  = rhs.nV;
+		nFV = rhs.nFV;
+		nBV = rhs.nBV;
+		nUV = rhs.nUV;
+
+		free  = rhs.free;
+		fixed = rhs.fixed;
+	}
+
+	return *this;
+}
+
+
+/*
+ *	i n i t
+ */
+returnValue Bounds::init( int n )
+{
+	nV = n;
+	nFV = 0;
+	nBV = 0;
+	nUV = 0;
+
+	free.init( );
+	fixed.init( );
+
+	return SubjectTo::init( n );
+}
+
+
+/*
+ *	s e t u p B o u n d
+ */
+returnValue Bounds::setupBound(	int _number, SubjectToStatus _status
+								)
+{
+	/* consistency check */
+	if ( ( _number < 0 ) || ( _number >= getNV( ) ) )
+		return THROWERROR( RET_INDEX_OUT_OF_BOUNDS );
+	
+	/* Add bound index to respective index list. */
+	switch ( _status )
+	{
+		case ST_INACTIVE:
+			if ( this->addIndex( this->getFree( ),_number,_status ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_SETUP_BOUND_FAILED );
+			break;
+
+		case ST_LOWER:
+			if ( this->addIndex( this->getFixed( ),_number,_status ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_SETUP_BOUND_FAILED );
+			break;
+
+		case ST_UPPER:
+			if ( this->addIndex( this->getFixed( ),_number,_status ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_SETUP_BOUND_FAILED );
+			break;
+
+		default:
+			return THROWERROR( RET_INVALID_ARGUMENTS );
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s e t u p A l l F r e e
+ */
+returnValue Bounds::setupAllFree( )
+{
+	int i;
+
+	/* 1) Place unbounded variables at the beginning of the index list of free variables. */
+	for( i=0; i<nV; ++i )
+	{
+		if ( getType( i ) == ST_UNBOUNDED )
+		{
+			if ( setupBound( i,ST_INACTIVE ) != SUCCESSFUL_RETURN )
+					return THROWERROR( RET_SETUP_BOUND_FAILED );
+		}
+	}
+
+	/* 2) Add remaining (i.e. bounded but possibly free) variables to the index list of free variables. */
+	for( i=0; i<nV; ++i )
+	{
+		if ( getType( i ) == ST_BOUNDED )
+		{
+			if ( setupBound( i,ST_INACTIVE ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_SETUP_BOUND_FAILED );
+		}
+	}
+
+	/* 3) Place implicitly fixed variables at the end of the index list of free variables. */
+	for( i=0; i<nV; ++i )
+	{
+		if ( getType( i ) == ST_EQUALITY )
+		{
+			if ( setupBound( i,ST_INACTIVE ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_SETUP_BOUND_FAILED );
+		}
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	m o v e F i x e d T o F r e e
+ */
+returnValue Bounds::moveFixedToFree( int _number )
+{
+	/* consistency check */
+	if ( ( _number < 0 ) || ( _number >= getNV( ) ) )
+		return THROWERROR( RET_INDEX_OUT_OF_BOUNDS );
+
+	/* Move index from indexlist of fixed variables to that of free ones. */
+	if ( this->removeIndex( this->getFixed( ),_number ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_MOVING_BOUND_FAILED );
+
+	if ( this->addIndex( this->getFree( ),_number,ST_INACTIVE ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_MOVING_BOUND_FAILED );
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	m o v e F r e e T o F i x e d
+ */
+returnValue Bounds::moveFreeToFixed(	int _number, SubjectToStatus _status
+										)
+{
+	/* consistency check */
+	if ( ( _number < 0 ) || ( _number >= getNV( ) ) )
+		return THROWERROR( RET_INDEX_OUT_OF_BOUNDS );
+
+	/* Move index from indexlist of free variables to that of fixed ones. */
+	if ( this->removeIndex( this->getFree( ),_number ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_MOVING_BOUND_FAILED );
+
+	if ( this->addIndex( this->getFixed( ),_number,_status ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_MOVING_BOUND_FAILED );
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s w a p F r e e
+ */
+returnValue Bounds::swapFree(	int number1, int number2
+								)
+{
+	/* consistency check */
+	if ( ( number1 < 0 ) || ( number1 >= getNV( ) ) || ( number2 < 0 ) || ( number2 >= getNV( ) ) )
+		return THROWERROR( RET_INDEX_OUT_OF_BOUNDS );
+
+	/* Swap index within indexlist of free variables. */
+	return this->swapIndex( this->getFree( ),number1,number2 );
+}
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Bounds.ipp b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Bounds.ipp
new file mode 100644
index 0000000..d2ab1ba
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Bounds.ipp
@@ -0,0 +1,144 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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 SRC/Bounds.ipp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Implementation of inlined member functions of the Bounds class designed 
+ *	to manage working sets of bounds within a QProblem.
+ */
+
+
+/*****************************************************************************
+ *  P U B L I C                                                              *
+ *****************************************************************************/
+
+/*
+ *	g e t N V
+ */
+inline int Bounds::getNV( ) const
+{
+ 	return nV;
+}
+
+
+/*
+ *	g e t N F X
+ */
+inline int Bounds::getNFV( ) const
+{
+ 	return nFV;
+}
+
+
+/*
+ *	g e t N B V
+ */
+inline int Bounds::getNBV( ) const
+{
+ 	return nBV;
+}
+ 
+
+/*
+ *	g e t N U V
+ */
+inline int Bounds::getNUV( ) const
+{
+	return nUV;
+}
+
+
+
+/*
+ *	s e t N F X
+ */
+inline returnValue Bounds::setNFV( int n )
+{
+ 	nFV = n;
+	return SUCCESSFUL_RETURN;	
+}
+ 
+ 
+/*
+ *	s e t N B V
+ */
+inline returnValue Bounds::setNBV( int n )
+{
+ 	nBV = n;
+	return SUCCESSFUL_RETURN;
+}
+ 
+
+/*
+ *	s e t N U V
+ */
+inline returnValue Bounds::setNUV( int n )
+{
+	nUV = n;
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	g e t N F R
+ */
+inline int Bounds::getNFR( )
+{
+ 	return free.getLength( );
+}
+
+
+/*
+ *	g e t N F X
+ */
+inline int Bounds::getNFX( )
+{
+ 	return fixed.getLength( );
+}
+
+
+/*
+ *	g e t F r e e
+ */
+inline Indexlist* Bounds::getFree( )
+{
+	return &free;
+}
+
+
+/*
+ *	g e t F i x e d
+ */
+inline Indexlist* Bounds::getFixed( )
+{
+	return &fixed;
+}
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Constraints.cpp b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Constraints.cpp
new file mode 100644
index 0000000..b2ad5bd
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Constraints.cpp
@@ -0,0 +1,248 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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 SRC/Constraints.cpp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Implementation of the Constraints class designed to manage working sets of
+ *	constraints within a QProblem.
+ */
+
+
+#include <Constraints.hpp>
+
+
+/*****************************************************************************
+ *  P U B L I C                                                              *
+ *****************************************************************************/
+
+
+/*
+ *	C o n s t r a i n t s
+ */
+Constraints::Constraints( ) :	SubjectTo( ),
+								nC( 0 ),
+								nEC( 0 ),
+								nIC( 0 ),
+								nUC( 0 )
+{
+}
+
+
+/*
+ *	C o n s t r a i n t s
+ */
+Constraints::Constraints( const Constraints& rhs ) :	SubjectTo( rhs ),
+														nC( rhs.nC ),
+														nEC( rhs.nEC ),
+														nIC( rhs.nIC ),
+														nUC( rhs.nUC )
+{
+	active =   rhs.active;
+	inactive = rhs.inactive;
+}
+
+
+/*
+ *	~ C o n s t r a i n t s
+ */
+Constraints::~Constraints( )
+{
+}
+
+
+/*
+ *	o p e r a t o r =
+ */
+Constraints& Constraints::operator=( const Constraints& rhs )
+{
+	if ( this != &rhs )
+	{
+		SubjectTo::operator=( rhs );
+
+		nC  = rhs.nC;
+		nEC = rhs.nEC;
+		nIC = rhs.nIC;
+		nUC = rhs.nUC;
+
+		active =   rhs.active;
+		inactive = rhs.inactive;
+	}
+
+	return *this;
+}
+
+
+/*
+ *	i n i t
+ */
+returnValue Constraints::init( int n )
+{
+	nC = n;
+	nEC = 0;
+	nIC = 0;
+	nUC = 0;
+
+	active.init( );
+	inactive.init( );
+
+	return SubjectTo::init( n );
+}
+
+
+/*
+ *	s e t u p C o n s t r a i n t
+ */
+returnValue Constraints::setupConstraint(	int _number, SubjectToStatus _status
+											)
+{
+	/* consistency check */
+	if ( ( _number < 0 ) || ( _number >= getNC( ) ) )
+		return THROWERROR( RET_INDEX_OUT_OF_BOUNDS );
+	
+	/* Add constraint index to respective index list. */
+	switch ( _status )
+	{
+		case ST_INACTIVE:
+			if ( this->addIndex( this->getInactive( ),_number,_status ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_SETUP_CONSTRAINT_FAILED );
+			break;
+
+		case ST_LOWER:
+			if ( this->addIndex( this->getActive( ),_number,_status ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_SETUP_CONSTRAINT_FAILED );
+			break;
+
+		case ST_UPPER:
+			if ( this->addIndex( this->getActive( ),_number,_status ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_SETUP_CONSTRAINT_FAILED );
+			break;
+
+		default:
+			return THROWERROR( RET_INVALID_ARGUMENTS );
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s e t u p A l l I n a c t i v e
+ */
+returnValue Constraints::setupAllInactive( )
+{
+	int i;
+
+
+	/* 1) Place unbounded constraints at the beginning of the index list of inactive constraints. */
+	for( i=0; i<nC; ++i )
+	{
+		if ( getType( i ) == ST_UNBOUNDED )
+		{
+			if ( setupConstraint( i,ST_INACTIVE ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_SETUP_CONSTRAINT_FAILED );
+		}
+	}
+
+	/* 2) Add remaining (i.e. "real" inequality) constraints to the index list of inactive constraints. */
+	for( i=0; i<nC; ++i )
+	{
+		if ( getType( i ) == ST_BOUNDED )
+		{
+			if ( setupConstraint( i,ST_INACTIVE ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_SETUP_CONSTRAINT_FAILED );
+		}
+	}
+
+	/* 3) Place implicit equality constraints at the end of the index list of inactive constraints. */
+	for( i=0; i<nC; ++i )
+	{
+		if ( getType( i ) == ST_EQUALITY )
+		{
+			if ( setupConstraint( i,ST_INACTIVE ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_SETUP_CONSTRAINT_FAILED );
+		}
+	}
+
+	/* 4) Moreover, add all constraints of unknown type. */
+	for( i=0; i<nC; ++i )
+	{
+		if ( getType( i ) == ST_UNKNOWN )
+		{
+			if ( setupConstraint( i,ST_INACTIVE ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_SETUP_CONSTRAINT_FAILED );
+		}
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	m o v e A c t i v e T o I n a c t i v e
+ */
+returnValue Constraints::moveActiveToInactive( int _number )
+{
+	/* consistency check */
+	if ( ( _number < 0 ) || ( _number >= getNC( ) ) )
+		return THROWERROR( RET_INDEX_OUT_OF_BOUNDS );
+
+	/* Move index from indexlist of active constraints to that of inactive ones. */
+	if ( this->removeIndex( this->getActive( ),_number ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_MOVING_BOUND_FAILED );
+
+	if ( this->addIndex( this->getInactive( ),_number,ST_INACTIVE ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_MOVING_BOUND_FAILED );
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	m o v e I n a c t i v e T o A c t i v e
+ */
+returnValue Constraints::moveInactiveToActive(	int _number, SubjectToStatus _status
+												)
+{
+	/* consistency check */
+	if ( ( _number < 0 ) || ( _number >= getNC( ) ) )
+		return THROWERROR( RET_INDEX_OUT_OF_BOUNDS );
+
+	/* Move index from indexlist of inactive constraints to that of active ones. */
+	if ( this->removeIndex( this->getInactive( ),_number ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_MOVING_BOUND_FAILED );
+
+	if ( this->addIndex( this->getActive( ),_number,_status ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_MOVING_BOUND_FAILED );
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Constraints.ipp b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Constraints.ipp
new file mode 100644
index 0000000..1b874ef
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Constraints.ipp
@@ -0,0 +1,144 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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 SRC/Constraints.ipp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Declaration of inlined member functions of the Constraints class designed 
+ *	to manage working sets of constraints within a QProblem.
+ */
+
+
+
+/*****************************************************************************
+ *  P U B L I C                                                              *
+ *****************************************************************************/
+
+/*
+ *	g e t N C
+ */
+inline int Constraints::getNC( ) const
+{
+ 	return nC;
+}
+ 
+
+/*
+ *	g e t N E C
+ */
+inline int Constraints::getNEC( ) const
+{
+ 	return nEC;
+}
+ 
+
+/*
+ *	g e t N I C
+ */
+inline int Constraints::getNIC( ) const
+{
+ 	return nIC;
+}
+ 
+
+/*
+ *	g e t N U C
+ */
+inline int Constraints::getNUC( ) const
+{
+ 	return nUC;
+}
+
+
+/*
+ *	s e t N E C
+ */
+inline returnValue Constraints::setNEC( int n )
+{
+ 	nEC = n;
+	return SUCCESSFUL_RETURN;
+}
+ 
+
+/*
+ *	s e t N I C
+ */
+inline returnValue Constraints::setNIC( int n )
+{
+ 	nIC = n;
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s e t N U C
+ */
+inline returnValue Constraints::setNUC( int n )
+{
+ 	nUC = n;
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	g e t N A C
+ */
+inline int Constraints::getNAC( )
+{
+ 	return active.getLength( );
+}
+
+
+/*
+ *	g e t N I A C
+ */
+inline int Constraints::getNIAC( )
+{
+ 	return inactive.getLength( );
+}
+
+
+/*
+ *	g e t A c t i v e
+ */
+inline Indexlist* Constraints::getActive( )
+{
+	return &active;
+}
+
+
+/*
+ *	g e t I n a c t i v e
+ */
+inline Indexlist* Constraints::getInactive( )
+{
+	return &inactive;
+}
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/CyclingManager.cpp b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/CyclingManager.cpp
new file mode 100644
index 0000000..27c2996
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/CyclingManager.cpp
@@ -0,0 +1,188 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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 SRC/CyclingManager.cpp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Implementation of the CyclingManager class designed to detect
+ *	and handle possible cycling during QP iterations.
+ *
+ */
+
+
+#include <CyclingManager.hpp>
+
+
+/*****************************************************************************
+ *  P U B L I C                                                              *
+ *****************************************************************************/
+
+
+/*
+ *	C y c l i n g M a n a g e r
+ */
+CyclingManager::CyclingManager( ) :	nV( 0 ),
+									nC( 0 )
+{
+	cyclingDetected = BT_FALSE;
+}
+
+
+/*
+ *	C y c l i n g M a n a g e r
+ */
+CyclingManager::CyclingManager( const CyclingManager& rhs ) :	nV( rhs.nV ),
+																nC( rhs.nC ),
+																cyclingDetected( rhs.cyclingDetected )
+{
+	int i;
+
+	for( i=0; i<nV+nC; ++i )
+		status[i] = rhs.status[i];
+}
+
+
+/*
+ *	~ C y c l i n g M a n a g e r
+ */
+CyclingManager::~CyclingManager( )
+{
+}
+
+
+/*
+ *	o p e r a t o r =
+ */
+CyclingManager& CyclingManager::operator=( const CyclingManager& rhs )
+{
+	int i;
+
+	if ( this != &rhs )
+	{
+		nV = rhs.nV;
+		nC = rhs.nC;
+
+		for( i=0; i<nV+nC; ++i )
+			status[i] = rhs.status[i];
+
+		cyclingDetected = rhs.cyclingDetected;
+	}
+
+	return *this;
+}
+
+
+
+/*
+ *	i n i t
+ */
+returnValue CyclingManager::init( int _nV, int _nC )
+{
+	nV = _nV;
+	nC = _nC;
+
+	cyclingDetected = BT_FALSE;
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+
+/*
+ *	s e t C y c l i n g S t a t u s
+ */
+returnValue CyclingManager::setCyclingStatus(	int number,
+												BooleanType isBound, CyclingStatus _status
+												)
+{
+	if ( isBound == BT_TRUE )
+	{
+		/* Set cycling status of a bound. */
+		if ( ( number >= 0 ) && ( number < nV ) )
+		{
+			status[number] = _status;
+			return SUCCESSFUL_RETURN;
+		}
+		else
+			return THROWERROR( RET_INDEX_OUT_OF_BOUNDS );
+	}
+	else
+	{
+		/* Set cycling status of a constraint. */
+		if ( ( number >= 0 ) && ( number < nC ) )
+		{
+			status[nV+number] = _status;
+			return SUCCESSFUL_RETURN;
+		}
+		else
+			return THROWERROR( RET_INDEX_OUT_OF_BOUNDS );
+	}
+}
+
+
+/*
+ *	g e t C y c l i n g S t a t u s
+ */
+CyclingStatus CyclingManager::getCyclingStatus( int number, BooleanType isBound ) const
+{
+	if ( isBound == BT_TRUE )
+	{
+		/* Return cycling status of a bound. */
+		if ( ( number >= 0 ) && ( number < nV ) )
+			return status[number];
+	}
+	else
+	{
+		/* Return cycling status of a constraint. */
+		if ( ( number >= 0 ) && ( number < nC ) )
+			return status[nV+number];
+	}
+
+	return CYC_NOT_INVOLVED;
+}
+
+
+/*
+ *	c l e a r C y c l i n g D a t a
+ */
+returnValue CyclingManager::clearCyclingData( )
+{
+	int i;
+
+	/* Reset all status values ... */
+	for( i=0; i<nV+nC; ++i )
+		status[i] = CYC_NOT_INVOLVED;
+
+	/* ... and the main cycling flag. */
+	cyclingDetected = BT_FALSE;
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/CyclingManager.ipp b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/CyclingManager.ipp
new file mode 100644
index 0000000..386409a
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/CyclingManager.ipp
@@ -0,0 +1,51 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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 SRC/CyclingManager.ipp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Implementation of inlined member functions of the CyclingManager class 
+ *	designed to detect and handle possible cycling during QP iterations.
+ *	
+ */
+
+
+/*****************************************************************************
+ *  P U B L I C                                                              *
+ *****************************************************************************/
+
+/*
+ *	i s C y c l i n g D e t e c t e d
+ */
+inline BooleanType CyclingManager::isCyclingDetected( ) const
+{
+	return cyclingDetected;
+}
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp
new file mode 100644
index 0000000..c744adc
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp
@@ -0,0 +1,434 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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 SRC/EXTRAS/SolutionAnalysis.cpp
+ *	\author Milan Vukov, Boris Houska, Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2012
+ *
+ *	Solution analysis class, based on a class in the standard version of the qpOASES
+ */
+
+#include <EXTRAS/SolutionAnalysis.hpp>
+
+/*
+ *	S o l u t i o n A n a l y s i s
+ */
+SolutionAnalysis::SolutionAnalysis( )
+{
+	
+}
+
+/*
+ *	S o l u t i o n A n a l y s i s
+ */
+SolutionAnalysis::SolutionAnalysis( const SolutionAnalysis& rhs )
+{
+	
+}
+
+/*
+ *	~ S o l u t i o n A n a l y s i s
+ */
+SolutionAnalysis::~SolutionAnalysis( )
+{
+	
+}
+
+/*
+ *	o p e r a t o r =
+ */
+SolutionAnalysis& SolutionAnalysis::operator=( const SolutionAnalysis& rhs )
+{
+	if ( this != &rhs )
+	{
+		
+	}
+	
+	return *this;
+}
+
+/*
+ * g e t H e s s i a n I n v e r s e
+ */
+returnValue SolutionAnalysis::getHessianInverse( QProblem* qp, real_t* hessianInverse )
+{
+	returnValue returnvalue; /* the return value */
+	BooleanType Delta_bC_isZero = BT_FALSE; /* (just use FALSE here) */
+	BooleanType Delta_bB_isZero = BT_FALSE; /* (just use FALSE here) */
+	
+	register int run1, run2, run3;
+	
+	register int nFR, nFX;
+	
+	/* Ask for the number of free and fixed variables, assumes that active set
+	 * is constant for the covariance evaluation */
+	nFR = qp->getNFR( );
+	nFX = qp->getNFX( );
+	
+	/* Ask for the corresponding index arrays: */
+	if ( qp->bounds.getFree( )->getNumberArray( FR_idx ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_HOTSTART_FAILED );
+	
+	if ( qp->bounds.getFixed( )->getNumberArray( FX_idx ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_HOTSTART_FAILED );
+	
+	if ( qp->constraints.getActive( )->getNumberArray( AC_idx ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_HOTSTART_FAILED );
+	
+	/* Initialization: */
+	for( run1 = 0; run1 < NVMAX; run1++ )
+		delta_g_cov[ run1 ] = 0.0;
+	
+	for( run1 = 0; run1 < NVMAX; run1++ )
+		delta_lb_cov[ run1 ] = 0.0;
+	
+	for( run1 = 0; run1 < NVMAX; run1++ )
+		delta_ub_cov[ run1 ] = 0.0;
+	
+	for( run1 = 0; run1 < NCMAX; run1++ )
+		delta_lbA_cov[ run1 ] = 0.0;
+	
+	for( run1 = 0; run1 < NCMAX; run1++ )
+		delta_ubA_cov[ run1 ] = 0.0;
+	
+	/* The following loop solves the following:
+	 *
+	 * KKT * x =
+	 *   [delta_g_cov', delta_lbA_cov', delta_ubA_cov', delta_lb_cov', delta_ub_cov]'
+	 *
+	 * for the first NVMAX (negative) elementary vectors in order to get
+	 * transposed inverse of the Hessian. Assuming that the Hessian is
+	 * symmetric, the function will return transposed inverse, instead of the
+	 * true inverse.
+	 *
+	 * Note, that we use negative elementary vectors due because internal
+	 * implementation of the function hotstart_determineStepDirection requires
+	 * so.
+	 *
+	 * */
+	
+	for( run3 = 0; run3 < NVMAX; run3++ )
+	{
+		/* Line wise loading of the corresponding (negative) elementary vector: */
+		delta_g_cov[ run3 ] = -1.0;
+		
+		/* Evaluation of the step: */
+		returnvalue = qp->hotstart_determineStepDirection(
+			FR_idx, FX_idx, AC_idx,
+			delta_g_cov, delta_lbA_cov, delta_ubA_cov, delta_lb_cov, delta_ub_cov,
+			Delta_bC_isZero, Delta_bB_isZero,
+			delta_xFX, delta_xFR, delta_yAC, delta_yFX
+			);
+		if ( returnvalue != SUCCESSFUL_RETURN )
+		{
+			return returnvalue;
+		}
+		
+		/* Line wise storage of the QP reaction: */
+		for( run1 = 0; run1 < nFR; run1++ )
+		{
+			run2 = FR_idx[ run1 ];
+			
+			hessianInverse[run3 * NVMAX + run2] = delta_xFR[ run1 ];
+		} 
+		
+		for( run1 = 0; run1 < nFX; run1++ )
+		{ 
+			run2 = FX_idx[ run1 ];
+			
+			hessianInverse[run3 * NVMAX + run2] = delta_xFX[ run1 ];
+		}
+		
+		/* Prepare for the next iteration */
+		delta_g_cov[ run3 ] = 0.0;
+	}
+	
+	// TODO: Perform the transpose of the inverse of the Hessian matrix
+	
+	return SUCCESSFUL_RETURN; 
+}
+
+/*
+ * g e t H e s s i a n I n v e r s e
+ */
+returnValue SolutionAnalysis::getHessianInverse( QProblemB* qp, real_t* hessianInverse )
+{
+	returnValue returnvalue; /* the return value */
+	BooleanType Delta_bB_isZero = BT_FALSE; /* (just use FALSE here) */
+	
+	register int run1, run2, run3;
+	
+	register int nFR, nFX;
+	
+	/* Ask for the number of free and fixed variables, assumes that active set
+	 * is constant for the covariance evaluation */
+	nFR = qp->getNFR( );
+	nFX = qp->getNFX( );
+	
+	/* Ask for the corresponding index arrays: */
+	if ( qp->bounds.getFree( )->getNumberArray( FR_idx ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_HOTSTART_FAILED );
+	
+	if ( qp->bounds.getFixed( )->getNumberArray( FX_idx ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_HOTSTART_FAILED );
+	
+	/* Initialization: */
+	for( run1 = 0; run1 < NVMAX; run1++ )
+		delta_g_cov[ run1 ] = 0.0;
+	
+	for( run1 = 0; run1 < NVMAX; run1++ )
+		delta_lb_cov[ run1 ] = 0.0;
+	
+	for( run1 = 0; run1 < NVMAX; run1++ )
+		delta_ub_cov[ run1 ] = 0.0;
+	
+	/* The following loop solves the following:
+	 *
+	 * KKT * x =
+	 *   [delta_g_cov', delta_lb_cov', delta_ub_cov']'
+	 *
+	 * for the first NVMAX (negative) elementary vectors in order to get
+	 * transposed inverse of the Hessian. Assuming that the Hessian is
+	 * symmetric, the function will return transposed inverse, instead of the
+	 * true inverse.
+	 *
+	 * Note, that we use negative elementary vectors due because internal
+	 * implementation of the function hotstart_determineStepDirection requires
+	 * so.
+	 *
+	 * */
+	
+	for( run3 = 0; run3 < NVMAX; run3++ )
+	{
+		/* Line wise loading of the corresponding (negative) elementary vector: */
+		delta_g_cov[ run3 ] = -1.0;
+		
+		/* Evaluation of the step: */
+		returnvalue = qp->hotstart_determineStepDirection(
+			FR_idx, FX_idx,
+			delta_g_cov, delta_lb_cov, delta_ub_cov,
+			Delta_bB_isZero,
+			delta_xFX, delta_xFR, delta_yFX
+			);
+		if ( returnvalue != SUCCESSFUL_RETURN )
+		{
+			return returnvalue;
+		}
+				
+		/* Line wise storage of the QP reaction: */
+		for( run1 = 0; run1 < nFR; run1++ )
+		{
+			run2 = FR_idx[ run1 ];
+			
+			hessianInverse[run3 * NVMAX + run2] = delta_xFR[ run1 ];
+		} 
+		
+		for( run1 = 0; run1 < nFX; run1++ )
+		{ 
+			run2 = FX_idx[ run1 ];
+			
+			hessianInverse[run3 * NVMAX + run2] = delta_xFX[ run1 ];
+		}
+		
+		/* Prepare for the next iteration */
+		delta_g_cov[ run3 ] = 0.0;
+	}
+	
+	// TODO: Perform the transpose of the inverse of the Hessian matrix
+	
+	return SUCCESSFUL_RETURN; 
+}
+
+/*
+ * g e t V a r i a n c e C o v a r i a n c e
+ */
+
+#if QPOASES_USE_OLD_VERSION
+
+returnValue SolutionAnalysis::getVarianceCovariance( QProblem* qp, real_t* g_b_bA_VAR, real_t* Primal_Dual_VAR )
+{
+	int run1, run2, run3; /* simple run variables (for loops). */
+	
+	returnValue returnvalue; /* the return value */
+	BooleanType Delta_bC_isZero = BT_FALSE; /* (just use FALSE here) */
+	BooleanType Delta_bB_isZero = BT_FALSE; /* (just use FALSE here) */
+	
+	/* ASK FOR THE NUMBER OF FREE AND FIXED VARIABLES:
+	 * (ASSUMES THAT ACTIVE SET IS CONSTANT FOR THE
+	 *  VARIANCE-COVARIANCE EVALUATION)
+	 * ----------------------------------------------- */
+	int nFR, nFX, nAC;
+	
+	nFR = qp->getNFR( );
+	nFX = qp->getNFX( );
+	nAC = qp->getNAC( );
+	
+	if ( qp->bounds.getFree( )->getNumberArray( FR_idx ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_HOTSTART_FAILED );
+	
+	if ( qp->bounds.getFixed( )->getNumberArray( FX_idx ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_HOTSTART_FAILED );
+	
+	if ( qp->constraints.getActive( )->getNumberArray( AC_idx ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_HOTSTART_FAILED );
+	
+	/* SOME INITIALIZATIONS:
+	 * --------------------- */
+	for( run1 = 0; run1 < KKT_DIM * KKT_DIM; run1++ )
+	{
+		K [run1] = 0.0;
+		Primal_Dual_VAR[run1] = 0.0;
+	}
+	
+	/* ================================================================= */
+	
+	/* FIRST MATRIX MULTIPLICATION (OBTAINS THE INTERMEDIATE RESULT
+	 *  K := [ ("ACTIVE" KKT-MATRIX OF THE QP)^(-1) * g_b_bA_VAR ]^T )
+	 * THE EVALUATION OF THE INVERSE OF THE KKT-MATRIX OF THE QP
+	 * WITH RESPECT TO THE CURRENT ACTIVE SET
+	 * USES THE EXISTING CHOLESKY AND TQ-DECOMPOSITIONS. FOR DETAILS
+	 * cf. THE (protected) FUNCTION determineStepDirection. */
+	
+	for( run3 = 0; run3 < KKT_DIM; run3++ )
+	{
+		
+		for( run1 = 0; run1 < NVMAX; run1++ )
+		{
+			delta_g_cov [run1] = g_b_bA_VAR[run3*KKT_DIM+run1];
+			delta_lb_cov [run1] = g_b_bA_VAR[run3*KKT_DIM+NVMAX+run1]; /*  LINE-WISE LOADING OF THE INPUT */
+			delta_ub_cov [run1] = g_b_bA_VAR[run3*KKT_DIM+NVMAX+run1]; /*  VARIANCE-COVARIANCE            */
+		}
+		for( run1 = 0; run1 < NCMAX; run1++ )
+		{
+			delta_lbA_cov [run1] = g_b_bA_VAR[run3*KKT_DIM+2*NVMAX+run1];
+			delta_ubA_cov [run1] = g_b_bA_VAR[run3*KKT_DIM+2*NVMAX+run1];
+		}
+		
+		/* EVALUATION OF THE STEP:
+		 * ------------------------------------------------------------------------------ */
+		
+		returnvalue = qp->hotstart_determineStepDirection(
+			FR_idx, FX_idx, AC_idx,
+			delta_g_cov, delta_lbA_cov, delta_ubA_cov, delta_lb_cov, delta_ub_cov,
+			Delta_bC_isZero, Delta_bB_isZero, delta_xFX,delta_xFR,
+			delta_yAC,delta_yFX );
+		
+		/* ------------------------------------------------------------------------------ */
+		
+		/* STOP THE ALGORITHM IN THE CASE OF NO SUCCESFUL RETURN:
+		 * ------------------------------------------------------ */
+		if ( returnvalue != SUCCESSFUL_RETURN )
+		{
+			return returnvalue;
+		}
+		
+		/*  LINE WISE                  */
+		/*  STORAGE OF THE QP-REACTION */
+		/*  (uses the index list)      */
+		
+		for( run1=0; run1<nFR; run1++ )
+		{
+			run2 = FR_idx[run1];
+			K[run3*KKT_DIM+run2] = delta_xFR[run1];
+		} 
+		for( run1=0; run1<nFX; run1++ )
+		{ 
+			run2 = FX_idx[run1]; 
+			K[run3*KKT_DIM+run2] = delta_xFX[run1];
+			K[run3*KKT_DIM+NVMAX+run2] = delta_yFX[run1];
+		}
+		for( run1=0; run1<nAC; run1++ )
+		{
+			run2 = AC_idx[run1];
+			K[run3*KKT_DIM+2*NVMAX+run2] = delta_yAC[run1];
+		}
+	}
+	
+	/* ================================================================= */
+	
+	/* SECOND MATRIX MULTIPLICATION (OBTAINS THE FINAL RESULT
+	 * Primal_Dual_VAR := ("ACTIVE" KKT-MATRIX OF THE QP)^(-1) * K )
+	 * THE APPLICATION OF THE KKT-INVERSE IS AGAIN REALIZED
+	 * BY USING THE PROTECTED FUNCTION
+	 * determineStepDirection */
+	
+	for( run3 = 0; run3 < KKT_DIM; run3++ )
+	{
+		
+		for( run1 = 0; run1 < NVMAX; run1++ )
+		{
+			delta_g_cov [run1] = K[run3+ run1*KKT_DIM];
+			delta_lb_cov [run1] = K[run3+(NVMAX+run1)*KKT_DIM]; /*  ROW WISE LOADING OF THE */
+			delta_ub_cov [run1] = K[run3+(NVMAX+run1)*KKT_DIM]; /*  INTERMEDIATE RESULT K   */
+		}
+		for( run1 = 0; run1 < NCMAX; run1++ )
+		{
+			delta_lbA_cov [run1] = K[run3+(2*NVMAX+run1)*KKT_DIM];
+			delta_ubA_cov [run1] = K[run3+(2*NVMAX+run1)*KKT_DIM];
+		}
+		
+		/* EVALUATION OF THE STEP:
+		 * ------------------------------------------------------------------------------ */
+		
+		returnvalue = qp->hotstart_determineStepDirection(
+			FR_idx, FX_idx, AC_idx,
+			delta_g_cov, delta_lbA_cov, delta_ubA_cov, delta_lb_cov, delta_ub_cov,
+			Delta_bC_isZero, Delta_bB_isZero, delta_xFX,delta_xFR,
+			delta_yAC,delta_yFX );
+		
+		/* ------------------------------------------------------------------------------ */
+		
+		/* STOP THE ALGORITHM IN THE CASE OF NO SUCCESFUL RETURN:
+		 * ------------------------------------------------------ */
+		if ( returnvalue != SUCCESSFUL_RETURN )
+		{
+			return returnvalue;
+		}
+		
+		/*  ROW-WISE STORAGE */
+		/*  OF THE RESULT.   */
+		
+		for( run1=0; run1<nFR; run1++ )
+		{
+			run2 = FR_idx[run1];
+			Primal_Dual_VAR[run3+run2*KKT_DIM] = delta_xFR[run1];
+		}
+		for( run1=0; run1<nFX; run1++ )
+		{ 
+			run2 = FX_idx[run1]; 
+			Primal_Dual_VAR[run3+run2*KKT_DIM ] = delta_xFX[run1];
+			Primal_Dual_VAR[run3+(NVMAX+run2)*KKT_DIM] = delta_yFX[run1];
+		}
+		for( run1=0; run1<nAC; run1++ )
+		{
+			run2 = AC_idx[run1];
+			Primal_Dual_VAR[run3+(2*NVMAX+run2)*KKT_DIM] = delta_yAC[run1];
+		}
+	}
+	
+	return SUCCESSFUL_RETURN;
+}
+
+#endif
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Indexlist.cpp b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Indexlist.cpp
new file mode 100644
index 0000000..b512569
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Indexlist.cpp
@@ -0,0 +1,342 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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 SRC/Indexlist.cpp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Implementation of the Indexlist class designed to manage index lists of
+ *	constraints and bounds within a QProblem_SubjectTo.
+ */
+
+
+#include <Indexlist.hpp>
+
+
+/*****************************************************************************
+ *  P U B L I C                                                              *
+ *****************************************************************************/
+
+
+/*
+ *	I n d e x l i s t
+ */
+Indexlist::Indexlist( ) :	length( 0 ),
+							first( -1 ),
+							last( -1 ),
+							lastusedindex( -1 ),
+							physicallength( INDEXLISTFACTOR*(NVMAX+NCMAX) )
+{
+	int i;
+
+	for( i=0; i<physicallength; ++i )
+	{
+		number[i] = -1;
+		next[i] = -1;
+		previous[i] = -1;
+	}
+}
+
+
+/*
+ *	I n d e x l i s t
+ */
+Indexlist::Indexlist( const Indexlist& rhs ) :	length( rhs.length ),
+												first( rhs.first ),
+												last( rhs.last ),
+												lastusedindex( rhs.lastusedindex ),
+												physicallength( rhs.physicallength )
+{
+	int i;
+
+	for( i=0; i<physicallength; ++i )
+	{
+		number[i] = rhs.number[i];
+		next[i] = rhs.next[i];
+		previous[i] = rhs.previous[i];
+	}
+}
+
+
+/*
+ *	~ I n d e x l i s t
+ */
+Indexlist::~Indexlist( )
+{
+}
+
+
+/*
+ *	o p e r a t o r =
+ */
+Indexlist& Indexlist::operator=( const Indexlist& rhs )
+{
+	int i;
+
+	if ( this != &rhs )
+	{
+		length = rhs.length;
+		first = rhs.first;
+		last = rhs.last;
+		lastusedindex = rhs.lastusedindex;
+		physicallength = rhs.physicallength;
+
+		for( i=0; i<physicallength; ++i )
+		{
+			number[i] = rhs.number[i];
+			next[i] = rhs.next[i];
+			previous[i] = rhs.previous[i];
+		}
+	}
+
+	return *this;
+}
+
+
+/*
+ *	i n i t
+ */
+returnValue Indexlist::init( )
+{
+	int i;
+
+	length = 0;
+	first = -1;
+	last = -1;
+	lastusedindex = -1;
+	physicallength = INDEXLISTFACTOR*(NVMAX+NCMAX);
+
+	for( i=0; i<physicallength; ++i )
+	{
+		number[i] = -1;
+		next[i] = -1;
+		previous[i] = -1;
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	g e t N u m b e r A r r a y
+ */
+returnValue Indexlist::getNumberArray( int* const numberarray ) const
+{
+	int i;
+	int n = first;
+
+	/* Run trough indexlist and store numbers in numberarray. */
+	for( i=0; i<length; ++i )
+	{
+		if ( ( n >= 0 ) && ( number[n] >= 0 ) )
+			numberarray[i] = number[n];
+		else
+			return THROWERROR( RET_INDEXLIST_CORRUPTED );
+
+		n = next[n];
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	g e t I n d e x
+ */
+int Indexlist::getIndex( int givennumber ) const
+{
+	int i;
+	int n = first;
+	int index = -1;	/* return -1 by default */
+
+	/* Run trough indexlist until number is found, if so return it index. */
+	for ( i=0; i<length; ++i )
+	{
+		if ( number[n] == givennumber )
+		{
+			index = i;
+			break;
+		}
+
+		n = next[n];
+	}
+
+	return index;
+}
+
+
+/*
+ *	g e t P h y s i c a l I n d e x
+ */
+int Indexlist::getPhysicalIndex( int givennumber ) const
+{
+	int i;
+	int n = first;
+	int index = -1;	/* return -1 by default */
+
+	/* Run trough indexlist until number is found, if so return it physicalindex. */
+	for ( i=0; i<length; ++i )
+	{
+		if ( number[n] == givennumber )
+		{
+			index = n;
+			break;
+		}
+
+		n = next[n];
+	}
+
+	return index;
+}
+
+
+/*
+ *	a d d N u m b e r
+ */
+returnValue Indexlist::addNumber( int addnumber )
+{
+	int i;
+
+	if ( lastusedindex+1 < physicallength )
+	{
+		/* If there is enough storage, add number to indexlist. */
+		++lastusedindex;
+		number[lastusedindex] = addnumber;
+		next[lastusedindex] = 0;
+
+		if ( length == 0 )
+		{
+			first = lastusedindex;
+			previous[lastusedindex] = 0;
+		}
+		else
+		{
+			next[last] = lastusedindex;
+			previous[lastusedindex] = last;
+		}
+
+		last = lastusedindex;
+		++length;
+
+		return SUCCESSFUL_RETURN;
+	}
+	else
+	{
+		/* Rearrangement of index list necessary! */
+		if ( length == physicallength )
+			return THROWERROR( RET_INDEXLIST_EXCEEDS_MAX_LENGTH );
+		else
+		{
+			int numberArray[NVMAX+NCMAX];
+			getNumberArray( numberArray );
+
+			/* copy existing elements */
+			for ( i=0; i<length; ++i )
+			{
+				number[i] = numberArray[i];
+				next[i] = i+1;
+				previous[i] = i-1;
+			}
+
+			/* add new number at end of list */
+			number[length] = addnumber;
+			next[length] = -1;
+			previous[length] = length-1;
+
+			/* and set remaining entries to empty */
+			for ( i=length+1; i<physicallength; ++i )
+			{
+				number[i] = -1;
+				next[i] = -1;
+				previous[i] = -1;
+			}
+
+			first = 0;
+			last = length;
+			lastusedindex = length;
+			++length;
+
+			return THROWWARNING( RET_INDEXLIST_MUST_BE_REORDERD );
+		}
+	}
+}
+
+
+/*
+ *	r e m o v e N u m b e r
+ */
+returnValue Indexlist::removeNumber( int removenumber )
+{
+	int i = getPhysicalIndex( removenumber );
+
+	/* nothing to be done if number is not contained in index set */
+	if ( i < 0 )
+		return SUCCESSFUL_RETURN;
+
+	int p = previous[i];
+	int n = next[i];
+
+	if ( i == last )
+		last = p;
+	else
+		previous[n] = p;
+
+	if ( i == first )
+		first = n;
+	else
+		next[p] = n;
+
+	number[i] = -1;
+	next[i] = -1;
+	previous[i] = -1;
+	--length;
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s w a p N u m b e r s
+ */
+returnValue Indexlist::swapNumbers( int number1, int number2 )
+{
+	int index1 = getPhysicalIndex( number1 );
+	int index2 = getPhysicalIndex( number2 );
+
+	/* consistency check */
+	if ( ( index1 < 0 ) || ( index2 < 0 ) )
+		return THROWERROR( RET_INDEXLIST_CORRUPTED );
+
+	int tmp = number[index1];
+	number[index1] = number[index2];
+	number[index2] = tmp;
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Indexlist.ipp b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Indexlist.ipp
new file mode 100644
index 0000000..b75db81
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Indexlist.ipp
@@ -0,0 +1,85 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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 SRC/Indexlist.ipp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Implementation of inlined member functions of the Indexlist class designed 
+ *	to manage index lists of constraints and bounds within a QProblem_SubjectTo.
+ */
+
+
+
+/*****************************************************************************
+ *  P U B L I C                                                              *
+ *****************************************************************************/
+
+/*
+ *	g e t N u m b e r
+ */
+inline int Indexlist::getNumber( int physicalindex ) const
+{
+	/* consistency check */
+	if ( ( physicalindex < 0 ) || ( physicalindex > length ) )
+		return -RET_INDEXLIST_OUTOFBOUNDS;
+
+	return number[physicalindex];
+}
+
+
+/*
+ *	g e t L e n g t h
+ */
+inline int Indexlist::getLength( )
+{
+	return length;
+}
+
+
+/*
+ *	g e t L a s t N u m b e r
+ */
+inline int Indexlist::getLastNumber( ) const
+{
+	return number[last];
+}
+
+
+/*
+ *	g e t L a s t N u m b e r
+ */
+inline BooleanType Indexlist::isMember( int _number ) const
+{
+	if ( getIndex( _number ) >= 0 )
+		return BT_TRUE;
+	else
+		return BT_FALSE;
+}
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/MessageHandling.cpp b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/MessageHandling.cpp
new file mode 100644
index 0000000..18a7654
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/MessageHandling.cpp
@@ -0,0 +1,529 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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 SRC/MessageHandling.cpp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Implementation of the MessageHandling class including global return values.
+ *
+ */
+
+
+
+#include <MessageHandling.hpp>
+#include <Utils.hpp>
+
+
+
+
+/** Defines pairs of global return values and messages. */
+MessageHandling::ReturnValueList returnValueList[] =
+{
+/* miscellaneous */
+{ SUCCESSFUL_RETURN, "Successful return", VS_VISIBLE },
+{ RET_DIV_BY_ZERO, "Division by zero", VS_VISIBLE },
+{ RET_INDEX_OUT_OF_BOUNDS, "Index out of bounds", VS_VISIBLE },
+{ RET_INVALID_ARGUMENTS, "At least one of the arguments is invalid", VS_VISIBLE },
+{ RET_ERROR_UNDEFINED, "Error number undefined", VS_VISIBLE },
+{ RET_WARNING_UNDEFINED, "Warning number undefined", VS_VISIBLE },
+{ RET_INFO_UNDEFINED, "Info number undefined", VS_VISIBLE },
+{ RET_EWI_UNDEFINED, "Error/warning/info number undefined", VS_VISIBLE },
+{ RET_AVAILABLE_WITH_LINUX_ONLY, "This function is available under Linux only", VS_HIDDEN },
+{ RET_UNKNOWN_BUG, "The error occured is not yet known", VS_VISIBLE },
+{ RET_PRINTLEVEL_CHANGED, "Print level changed", VS_VISIBLE },
+{ RET_NOT_YET_IMPLEMENTED, "Requested function is not yet implemented.", VS_VISIBLE },
+/* Indexlist */
+{ RET_INDEXLIST_MUST_BE_REORDERD, "Index list has to be reordered", VS_VISIBLE },
+{ RET_INDEXLIST_EXCEEDS_MAX_LENGTH, "Index list exceeds its maximal physical length", VS_VISIBLE },
+{ RET_INDEXLIST_CORRUPTED, "Index list corrupted", VS_VISIBLE },
+{ RET_INDEXLIST_OUTOFBOUNDS, "Physical index is out of bounds", VS_VISIBLE },
+{ RET_INDEXLIST_ADD_FAILED, "Adding indices from another index set failed", VS_VISIBLE },
+{ RET_INDEXLIST_INTERSECT_FAILED, "Intersection with another index set failed", VS_VISIBLE },
+/* SubjectTo / Bounds / Constraints */
+{ RET_INDEX_ALREADY_OF_DESIRED_STATUS, "Index is already of desired status", VS_VISIBLE },
+{ RET_SWAPINDEX_FAILED, "Cannot swap between different indexsets", VS_VISIBLE },
+{ RET_ADDINDEX_FAILED, "Adding index to index set failed", VS_VISIBLE },
+{ RET_NOTHING_TO_DO, "Nothing to do", VS_VISIBLE },
+{ RET_SETUP_BOUND_FAILED, "Setting up bound index failed", VS_VISIBLE },
+{ RET_SETUP_CONSTRAINT_FAILED, "Setting up constraint index failed", VS_VISIBLE },
+{ RET_MOVING_BOUND_FAILED, "Moving bound between index sets failed", VS_VISIBLE },
+{ RET_MOVING_CONSTRAINT_FAILED, "Moving constraint between index sets failed", VS_VISIBLE },
+/* QProblem */
+{ RET_QP_ALREADY_INITIALISED, "QProblem has already been initialised", VS_VISIBLE },
+{ RET_NO_INIT_WITH_STANDARD_SOLVER, "Initialisation via extern QP solver is not yet implemented", VS_VISIBLE },
+{ RET_RESET_FAILED, "Reset failed", VS_VISIBLE },
+{ RET_INIT_FAILED, "Initialisation failed", VS_VISIBLE },
+{ RET_INIT_FAILED_TQ, "Initialisation failed due to TQ factorisation", VS_VISIBLE },
+{ RET_INIT_FAILED_CHOLESKY, "Initialisation failed due to Cholesky decomposition", VS_VISIBLE },
+{ RET_INIT_FAILED_HOTSTART, "Initialisation failed! QP could not be solved!", VS_VISIBLE },
+{ RET_INIT_FAILED_INFEASIBILITY, "Initial QP could not be solved due to infeasibility!", VS_VISIBLE },
+{ RET_INIT_FAILED_UNBOUNDEDNESS, "Initial QP could not be solved due to unboundedness!", VS_VISIBLE },
+{ RET_INIT_SUCCESSFUL, "Initialisation done", VS_VISIBLE },
+{ RET_OBTAINING_WORKINGSET_FAILED, "Failed to obtain working set for auxiliary QP", VS_VISIBLE },
+{ RET_SETUP_WORKINGSET_FAILED, "Failed to setup working set for auxiliary QP", VS_VISIBLE },
+{ RET_SETUP_AUXILIARYQP_FAILED, "Failed to setup auxiliary QP for initialised homotopy", VS_VISIBLE },
+{ RET_NO_EXTERN_SOLVER, "No extern QP solver available", VS_VISIBLE },
+{ RET_QP_UNBOUNDED, "QP is unbounded", VS_VISIBLE },
+{ RET_QP_INFEASIBLE, "QP is infeasible", VS_VISIBLE },
+{ RET_QP_NOT_SOLVED, "Problems occured while solving QP with standard solver", VS_VISIBLE },
+{ RET_QP_SOLVED, "QP successfully solved", VS_VISIBLE },
+{ RET_UNABLE_TO_SOLVE_QP, "Problems occured while solving QP", VS_VISIBLE },
+{ RET_INITIALISATION_STARTED, "Starting problem initialisation...", VS_VISIBLE },
+{ RET_HOTSTART_FAILED, "Unable to perform homotopy due to internal error", VS_VISIBLE },
+{ RET_HOTSTART_FAILED_TO_INIT, "Unable to initialise problem", VS_VISIBLE },
+{ RET_HOTSTART_FAILED_AS_QP_NOT_INITIALISED, "Unable to perform homotopy as previous QP is not solved", VS_VISIBLE },
+{ RET_ITERATION_STARTED, "Iteration", VS_VISIBLE },
+{ RET_SHIFT_DETERMINATION_FAILED, "Determination of shift of the QP data failed", VS_VISIBLE },
+{ RET_STEPDIRECTION_DETERMINATION_FAILED, "Determination of step direction failed", VS_VISIBLE },
+{ RET_STEPLENGTH_DETERMINATION_FAILED, "Determination of step direction failed", VS_VISIBLE },
+{ RET_OPTIMAL_SOLUTION_FOUND, "Optimal solution of neighbouring QP found", VS_VISIBLE },
+{ RET_HOMOTOPY_STEP_FAILED, "Unable to perform homotopy step", VS_VISIBLE },
+{ RET_HOTSTART_STOPPED_INFEASIBILITY, "Premature homotopy termination because QP is infeasible", VS_VISIBLE },
+{ RET_HOTSTART_STOPPED_UNBOUNDEDNESS, "Premature homotopy termination because QP is unbounded", VS_VISIBLE },
+{ RET_WORKINGSET_UPDATE_FAILED, "Unable to update working sets according to initial guesses", VS_VISIBLE },
+{ RET_MAX_NWSR_REACHED, "Maximum number of working set recalculations performed", VS_VISIBLE },
+{ RET_CONSTRAINTS_NOT_SPECIFIED, "Problem does comprise constraints! You have to specify new constraints' bounds", VS_VISIBLE },
+{ RET_INVALID_FACTORISATION_FLAG, "Invalid factorisation flag", VS_VISIBLE },
+{ RET_UNABLE_TO_SAVE_QPDATA, "Unable to save QP data", VS_VISIBLE },
+{ RET_STEPDIRECTION_FAILED_TQ, "Abnormal termination due to TQ factorisation", VS_VISIBLE },
+{ RET_STEPDIRECTION_FAILED_CHOLESKY, "Abnormal termination due to Cholesky factorisation", VS_VISIBLE },
+{ RET_CYCLING_DETECTED, "Cycling detected", VS_VISIBLE },
+{ RET_CYCLING_NOT_RESOLVED, "Cycling cannot be resolved, QP is probably infeasible", VS_VISIBLE },
+{ RET_CYCLING_RESOLVED, "Cycling probably resolved", VS_VISIBLE },
+{ RET_STEPSIZE, "", VS_VISIBLE },
+{ RET_STEPSIZE_NONPOSITIVE, "", VS_VISIBLE },
+{ RET_SETUPSUBJECTTOTYPE_FAILED, "Setup of SubjectToTypes failed", VS_VISIBLE },
+{ RET_ADDCONSTRAINT_FAILED, "Addition of constraint to working set failed", VS_VISIBLE },
+{ RET_ADDCONSTRAINT_FAILED_INFEASIBILITY, "Addition of constraint to working set failed", VS_VISIBLE },
+{ RET_ADDBOUND_FAILED, "Addition of bound to working set failed", VS_VISIBLE },
+{ RET_ADDBOUND_FAILED_INFEASIBILITY, "Addition of bound to working set failed", VS_VISIBLE },
+{ RET_REMOVECONSTRAINT_FAILED, "Removal of constraint from working set failed", VS_VISIBLE },
+{ RET_REMOVEBOUND_FAILED, "Removal of bound from working set failed", VS_VISIBLE },
+{ RET_REMOVE_FROM_ACTIVESET, "Removing from active set:", VS_VISIBLE },
+{ RET_ADD_TO_ACTIVESET, "Adding to active set:", VS_VISIBLE },
+{ RET_REMOVE_FROM_ACTIVESET_FAILED, "Removing from active set failed", VS_VISIBLE },
+{ RET_ADD_TO_ACTIVESET_FAILED, "Adding to active set failed", VS_VISIBLE },
+{ RET_CONSTRAINT_ALREADY_ACTIVE, "Constraint is already active", VS_VISIBLE },
+{ RET_ALL_CONSTRAINTS_ACTIVE, "All constraints are active, no further constraint can be added", VS_VISIBLE },
+{ RET_LINEARLY_DEPENDENT, "New bound/constraint is linearly dependent", VS_VISIBLE },
+{ RET_LINEARLY_INDEPENDENT, "New bound/constraint is linearly independent", VS_VISIBLE },
+{ RET_LI_RESOLVED, "Linear independence of active contraint matrix successfully resolved", VS_VISIBLE },
+{ RET_ENSURELI_FAILED, "Failed to ensure linear indepence of active contraint matrix", VS_VISIBLE },
+{ RET_ENSURELI_FAILED_TQ, "Abnormal termination due to TQ factorisation", VS_VISIBLE },
+{ RET_ENSURELI_FAILED_NOINDEX, "No index found, QP is probably infeasible", VS_VISIBLE },
+{ RET_ENSURELI_FAILED_CYCLING, "Cycling detected, QP is probably infeasible", VS_VISIBLE },
+{ RET_BOUND_ALREADY_ACTIVE, "Bound is already active", VS_VISIBLE },
+{ RET_ALL_BOUNDS_ACTIVE, "All bounds are active, no further bound can be added", VS_VISIBLE },
+{ RET_CONSTRAINT_NOT_ACTIVE, "Constraint is not active", VS_VISIBLE },
+{ RET_BOUND_NOT_ACTIVE, "Bound is not active", VS_VISIBLE },
+{ RET_HESSIAN_NOT_SPD, "Projected Hessian matrix not positive definite", VS_VISIBLE },
+{ RET_MATRIX_SHIFT_FAILED, "Unable to update matrices or to transform vectors", VS_VISIBLE },
+{ RET_MATRIX_FACTORISATION_FAILED, "Unable to calculate new matrix factorisations", VS_VISIBLE },
+{ RET_PRINT_ITERATION_FAILED, "Unable to print information on current iteration", VS_VISIBLE },
+{ RET_NO_GLOBAL_MESSAGE_OUTPUTFILE, "No global message output file initialised", VS_VISIBLE },
+/* Utils */
+{ RET_UNABLE_TO_OPEN_FILE, "Unable to open file", VS_VISIBLE },
+{ RET_UNABLE_TO_WRITE_FILE, "Unable to write into file", VS_VISIBLE },
+{ RET_UNABLE_TO_READ_FILE, "Unable to read from file", VS_VISIBLE },
+{ RET_FILEDATA_INCONSISTENT, "File contains inconsistent data", VS_VISIBLE },
+/* SolutionAnalysis */
+{ RET_NO_SOLUTION, "QP solution does not satisfy KKT optimality conditions", VS_VISIBLE },
+{ RET_INACCURATE_SOLUTION, "KKT optimality conditions not satisfied to sufficient accuracy", VS_VISIBLE },
+{ TERMINAL_LIST_ELEMENT, "", VS_HIDDEN } /* IMPORTANT: Terminal list element! */
+};
+
+
+
+/*****************************************************************************
+ *  P U B L I C                                                              *
+ *****************************************************************************/
+
+
+/*
+ *	M e s s a g e H a n d l i n g
+ */
+MessageHandling::MessageHandling( ) :	errorVisibility( VS_VISIBLE ),
+										warningVisibility( VS_VISIBLE ),
+										infoVisibility( VS_VISIBLE ),
+										outputFile( myStdout ),
+										errorCount( 0 )
+{
+}
+
+/*
+ *	M e s s a g e H a n d l i n g
+ */
+MessageHandling::MessageHandling( myFILE* _outputFile ) :
+										errorVisibility( VS_VISIBLE ),
+										warningVisibility( VS_VISIBLE ),
+										infoVisibility( VS_VISIBLE ),
+										outputFile( _outputFile ),
+										errorCount( 0 )
+{
+}
+
+/*
+ *	M e s s a g e H a n d l i n g
+ */
+MessageHandling::MessageHandling(	VisibilityStatus _errorVisibility,
+									VisibilityStatus _warningVisibility,
+		 							VisibilityStatus _infoVisibility
+									) :
+										errorVisibility( _errorVisibility ),
+										warningVisibility( _warningVisibility ),
+										infoVisibility( _infoVisibility ),
+										outputFile( myStderr ),
+										errorCount( 0 )
+{
+}
+
+/*
+ *	M e s s a g e H a n d l i n g
+ */
+MessageHandling::MessageHandling( 	myFILE* _outputFile,
+									VisibilityStatus _errorVisibility,
+									VisibilityStatus _warningVisibility,
+		 							VisibilityStatus _infoVisibility
+									) :
+										errorVisibility( _errorVisibility ),
+										warningVisibility( _warningVisibility ),
+										infoVisibility( _infoVisibility ),
+										outputFile( _outputFile ),
+										errorCount( 0 )
+{
+}
+
+
+
+/*
+ *	M e s s a g e H a n d l i n g
+ */
+MessageHandling::MessageHandling( const MessageHandling& rhs ) :
+										errorVisibility( rhs.errorVisibility ),
+										warningVisibility( rhs.warningVisibility ),
+										infoVisibility( rhs.infoVisibility ),
+										outputFile( rhs.outputFile ),
+										errorCount( rhs.errorCount )
+{
+}
+
+
+/*
+ *	~ M e s s a g e H a n d l i n g
+ */
+MessageHandling::~MessageHandling( )
+{
+	#ifdef PC_DEBUG
+	if ( outputFile != 0 )
+		fclose( outputFile );
+	#endif
+}
+
+
+/*
+ *	o p e r a t o r =
+ */
+MessageHandling& MessageHandling::operator=( const MessageHandling& rhs )
+{
+	if ( this != &rhs )
+	{
+		errorVisibility = rhs.errorVisibility;
+		warningVisibility = rhs.warningVisibility;
+		infoVisibility = rhs.infoVisibility;
+		outputFile = rhs.outputFile;
+		errorCount = rhs.errorCount;
+	}
+
+	return *this;
+}
+
+
+/*
+ *	t h r o w E r r o r
+ */
+returnValue MessageHandling::throwError(
+	returnValue Enumber,
+	const char* additionaltext,
+	const char* functionname,
+	const char* filename,
+	const unsigned long linenumber,
+	VisibilityStatus localVisibilityStatus
+	)
+{
+	/* consistency check */
+	if ( Enumber <= SUCCESSFUL_RETURN )
+		return throwError( RET_ERROR_UNDEFINED,0,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE );
+
+	/* Call to common throwMessage function if error shall be displayed. */
+	if ( errorVisibility == VS_VISIBLE )
+		return throwMessage( Enumber,additionaltext,functionname,filename,linenumber,localVisibilityStatus,"ERROR" );
+	else
+		return Enumber;
+}
+
+
+/*
+ *	t h r o w W a r n i n g
+ */
+returnValue MessageHandling::throwWarning(
+	returnValue Wnumber,
+	const char* additionaltext,
+	const char* functionname,
+	const char* filename,
+	const unsigned long linenumber,
+	VisibilityStatus localVisibilityStatus
+  	)
+{
+	/* consistency check */
+  	if ( Wnumber <= SUCCESSFUL_RETURN )
+		return throwError( RET_WARNING_UNDEFINED,0,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE );
+
+	/* Call to common throwMessage function if warning shall be displayed. */
+	if ( warningVisibility == VS_VISIBLE )
+		return throwMessage( Wnumber,additionaltext,functionname,filename,linenumber,localVisibilityStatus,"WARNING" );
+  	else
+  		return Wnumber;
+}
+
+
+/*
+ *	t h r o w I n f o
+ */
+returnValue MessageHandling::throwInfo(
+  	returnValue Inumber,
+	const char* additionaltext,
+  	const char* functionname,
+	const char* filename,
+	const unsigned long linenumber,
+	VisibilityStatus localVisibilityStatus
+ 	)
+{
+	/* consistency check */
+	if ( Inumber < SUCCESSFUL_RETURN )
+		return throwError( RET_INFO_UNDEFINED,0,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE );
+
+	/* Call to common throwMessage function if info shall be displayed. */
+	if ( infoVisibility == VS_VISIBLE )
+		return throwMessage( Inumber,additionaltext,functionname,filename,linenumber,localVisibilityStatus,"INFO" );
+	else
+		return Inumber;
+}
+
+
+/*
+ *	r e s e t
+ */
+returnValue MessageHandling::reset( )
+{
+	setErrorVisibilityStatus(   VS_VISIBLE );
+	setWarningVisibilityStatus( VS_VISIBLE );
+	setInfoVisibilityStatus(    VS_VISIBLE );
+
+	setOutputFile( myStderr );
+	setErrorCount( 0 );
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	l i s t A l l M e s s a g e s
+ */
+returnValue MessageHandling::listAllMessages( )
+{
+	#ifdef PC_DEBUG
+	int keypos = 0;
+	char myPrintfString[160];
+
+	/* Run through whole returnValueList and print each item. */
+	while ( returnValueList[keypos].key != TERMINAL_LIST_ELEMENT )
+	{
+		sprintf( myPrintfString," %d - %s \n",keypos,returnValueList[keypos].data );
+		myPrintf( myPrintfString );
+
+		++keypos;
+	}
+	#endif
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+
+/*****************************************************************************
+ *  P R O T E C T E D                                                        *
+ *****************************************************************************/
+
+
+#ifdef PC_DEBUG  /* Re-define throwMessage function for embedded code! */
+
+/*
+ *	t h r o w M e s s a g e
+ */
+returnValue MessageHandling::throwMessage(
+	returnValue RETnumber,
+	const char* additionaltext,
+	const char* functionname,
+	const char* filename,
+	const unsigned long linenumber,
+	VisibilityStatus localVisibilityStatus,
+	const char* RETstring
+ 	)
+{
+	int i;
+
+	int keypos = 0;
+	char myPrintfString[160];
+
+	/* 1) Determine number of whitespace for output. */
+	char whitespaces[41];
+	int numberOfWhitespaces = (errorCount-1)*2;
+
+	if ( numberOfWhitespaces < 0 )
+		numberOfWhitespaces = 0;
+
+	if ( numberOfWhitespaces > 40 )
+		numberOfWhitespaces = 40;
+
+	for( i=0; i<numberOfWhitespaces; ++i )
+		whitespaces[i] = ' ';
+	whitespaces[numberOfWhitespaces] = '\0';
+
+	/* 2) Find error/warning/info in list. */
+	while ( returnValueList[keypos].key != TERMINAL_LIST_ELEMENT )
+	{
+		if ( returnValueList[keypos].key == RETnumber )
+			break;
+		else
+			++keypos;
+	}
+
+	if ( returnValueList[keypos].key == TERMINAL_LIST_ELEMENT )
+	{
+		throwError( RET_EWI_UNDEFINED,0,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE );
+		return RETnumber;
+	}
+
+	/* 3) Print error/warning/info. */
+	if ( ( returnValueList[keypos].globalVisibilityStatus == VS_VISIBLE ) && ( localVisibilityStatus == VS_VISIBLE ) )
+	{
+		if ( errorCount > 0 )
+		{
+			sprintf( myPrintfString,"%s->", whitespaces );
+			myPrintf( myPrintfString );
+		}
+
+		if ( additionaltext == 0 )
+		{
+			sprintf(	myPrintfString,"%s (%s, %s:%d): \t%s\n",
+						RETstring,functionname,filename,(int)linenumber,returnValueList[keypos].data
+						);
+			myPrintf( myPrintfString );
+		}
+		else
+		{
+			sprintf(	myPrintfString,"%s (%s, %s:%d): \t%s %s\n",
+						RETstring,functionname,filename,(int)linenumber,returnValueList[keypos].data,additionaltext
+						);
+			myPrintf( myPrintfString );
+		}
+
+		/* take care of proper indention for subsequent error messages */
+		if ( RETstring[0] == 'E' )
+		{
+			++errorCount;
+		}
+		else
+		{
+			if ( errorCount > 0 )
+				myPrintf( "\n" );
+			errorCount = 0;
+		}
+	}
+
+	return RETnumber;
+}
+
+#else  /* = PC_DEBUG not defined */
+
+/*
+ *	t h r o w M e s s a g e
+ */
+returnValue MessageHandling::throwMessage(
+	returnValue RETnumber,
+	const char* additionaltext,
+	const char* functionname,
+	const char* filename,
+	const unsigned long linenumber,
+	VisibilityStatus localVisibilityStatus,
+	const char* RETstring
+ 	)
+{
+	/* DUMMY CODE FOR PRETENDING USE OF ARGUMENTS
+	 * FOR SUPPRESSING COMPILER WARNINGS! */
+	int i = 0;
+	if ( additionaltext == 0 ) i++;
+	if ( functionname == 0 ) i++;
+	if ( filename == 0 ) i++;
+	if ( linenumber == 0 ) i++;
+	if ( localVisibilityStatus == VS_VISIBLE ) i++;
+	if ( RETstring == 0 ) i++;
+	/* END OF DUMMY CODE */
+
+	return RETnumber;
+}
+
+#endif  /* PC_DEBUG */
+
+
+
+/*****************************************************************************
+ *  G L O B A L  M E S S A G E  H A N D L E R                                *
+ *****************************************************************************/
+
+
+/** Global message handler for all qpOASES modules.*/
+MessageHandling globalMessageHandler( myStderr,VS_VISIBLE,VS_VISIBLE,VS_VISIBLE );
+
+
+/*
+ *	g e t G l o b a l M e s s a g e H a n d l e r
+ */
+MessageHandling* getGlobalMessageHandler( )
+{
+	return &globalMessageHandler;
+}
+
+const char* MessageHandling::getErrorString(int error)
+{
+	return returnValueList[ error ].data;
+}
+
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/MessageHandling.ipp b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/MessageHandling.ipp
new file mode 100644
index 0000000..033957b
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/MessageHandling.ipp
@@ -0,0 +1,137 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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 SRC/MessageHandling.ipp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Implementation of inlined member functions of the MessageHandling class. 
+ */
+
+
+
+/*****************************************************************************
+ *  P U B L I C                                                              *
+ *****************************************************************************/
+ 
+/*
+ *	g e t E r r o r V i s i b i l i t y S t a t u s
+ */
+inline VisibilityStatus MessageHandling::getErrorVisibilityStatus( ) const
+{
+ 	return errorVisibility;
+}
+
+
+/*
+ *	g e t W a r n i n g V i s i b i l i t y S t a t u s
+ */
+inline VisibilityStatus MessageHandling::getWarningVisibilityStatus( ) const
+{
+ 	return warningVisibility;
+}
+
+
+/*
+ *	g e t I n f o V i s i b i l i t y S t a t u s
+ */
+inline VisibilityStatus MessageHandling::getInfoVisibilityStatus( ) const
+{
+ 	return infoVisibility;
+}
+
+
+/*
+ *	g e t O u t p u t F i l e
+ */
+inline myFILE* MessageHandling::getOutputFile( ) const
+{
+ 	return outputFile;
+}
+
+
+/*
+ *	g e t E r r o r C o u n t
+ */
+inline int MessageHandling::getErrorCount( ) const
+{
+ 	return errorCount;
+}
+
+
+/*
+ *	s e t E r r o r V i s i b i l i t y S t a t u s
+ */
+inline void MessageHandling::setErrorVisibilityStatus( VisibilityStatus _errorVisibility ) 
+{
+ 	errorVisibility = _errorVisibility;
+}
+
+
+/*
+ *	s e t W a r n i n g V i s i b i l i t y S t a t u s
+ */
+inline void MessageHandling::setWarningVisibilityStatus( VisibilityStatus _warningVisibility ) 
+{
+ 	warningVisibility = _warningVisibility;
+}
+
+
+/*
+ *	s e t I n f o V i s i b i l i t y S t a t u s
+ */
+inline void MessageHandling::setInfoVisibilityStatus( VisibilityStatus _infoVisibility ) 
+{
+ 	infoVisibility = _infoVisibility;
+}
+
+
+/*
+ *	s e t O u t p u t F i l e
+ */
+inline void MessageHandling::setOutputFile( myFILE* _outputFile ) 
+{
+ 	outputFile = _outputFile;
+}
+
+
+/*
+ *	s e t E r r o r C o u n t
+ */
+inline returnValue MessageHandling::setErrorCount( int _errorCount )
+{
+	if ( _errorCount >= 0 ) 	
+	{
+		errorCount = _errorCount;
+		return SUCCESSFUL_RETURN;
+	}
+	else
+		return RET_INVALID_ARGUMENTS;
+}
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/QProblem.cpp b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/QProblem.cpp
new file mode 100644
index 0000000..75e2f32
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/QProblem.cpp
@@ -0,0 +1,3867 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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 SRC/QProblem.cpp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Implementation of the QProblem class which is able to use the newly
+ *	developed online active set strategy for parametric quadratic programming.
+ */
+
+
+#include <QProblem.hpp>
+
+#include <stdio.h>
+
+void printmatrix2(char *name, double *A, int m, int n) {
+  int i, j;
+
+  printf("%s = [...\n", name);
+  for (i = 0; i < m; i++) {
+    for (j = 0; j < n; j++)
+        printf("  % 9.4f", A[i*n+j]);
+    printf(",\n");
+  }
+  printf("];\n");
+}
+
+//#define __PERFORM_KKT_TEST__
+
+
+/*****************************************************************************
+ *  P U B L I C                                                              *
+ *****************************************************************************/
+
+
+/*
+ *	Q P r o b l e m
+ */
+QProblem::QProblem( ) : QProblemB( )
+{
+	constraints.init( 0 );
+
+	sizeT = 0;
+
+	cyclingManager.init( 0,0 );
+}
+
+
+/*
+ *	Q P r o b l e m
+ */
+QProblem::QProblem( int _nV, int _nC ) : QProblemB( _nV )
+{
+	/* consistency checks */
+	if ( _nV <= 0 )
+		_nV = 1;
+
+	if ( _nC < 0 )
+	{
+		_nC = 0;
+		THROWERROR( RET_INVALID_ARGUMENTS );
+	}
+
+	constraints.init( _nC );
+
+
+	sizeT = _nC;
+	if ( _nC > _nV )
+		sizeT = _nV;
+
+	cyclingManager.init( _nV,_nC );
+}
+
+
+/*
+ *	Q P r o b l e m
+ */
+QProblem::QProblem( const QProblem& rhs ) :	QProblemB( rhs )
+{
+	int i, j;
+
+	int _nV = rhs.bounds.getNV( );
+	int _nC = rhs.constraints.getNC( );
+
+	for( i=0; i<_nC; ++i )
+		for( j=0; j<_nV; ++j )
+			A[i*NVMAX + j] = rhs.A[i*NVMAX + j];
+
+	for( i=0; i<_nC; ++i )
+		lbA[i] = rhs.lbA[i];
+
+	for( i=0; i<_nC; ++i )
+			ubA[i] = rhs.ubA[i];
+
+	constraints = rhs.constraints;
+
+	for( i=0; i<(_nV+_nC); ++i )
+		y[i] = rhs.y[i];
+
+
+	sizeT = rhs.sizeT;
+
+	for( i=0; i<sizeT; ++i )
+		for( j=0; j<sizeT; ++j )
+			T[i*NVMAX + j] = rhs.T[i*NVMAX + j];
+
+	for( i=0; i<_nV; ++i )
+		for( j=0; j<_nV; ++j )
+			Q[i*NVMAX + j] = rhs.Q[i*NVMAX + j];
+
+	for( i=0; i<_nC; ++i )
+		Ax[i] = rhs.Ax[i];
+
+	cyclingManager = rhs.cyclingManager;
+}
+
+
+/*
+ *	~ Q P r o b l e m
+ */
+QProblem::~QProblem( )
+{
+}
+
+
+/*
+ *	o p e r a t o r =
+ */
+QProblem& QProblem::operator=( const QProblem& rhs )
+{
+	int i, j;
+
+	if ( this != &rhs )
+	{
+		QProblemB::operator=( rhs );
+
+
+		int _nV = rhs.bounds.getNV( );
+		int _nC = rhs.constraints.getNC( );
+
+		for( i=0; i<_nC; ++i )
+			for( j=0; j<_nV; ++j )
+				A[i*NVMAX + j] = rhs.A[i*NVMAX + j];
+
+		for( i=0; i<_nC; ++i )
+			lbA[i] = rhs.lbA[i];
+
+		for( i=0; i<_nC; ++i )
+			ubA[i] = rhs.ubA[i];
+
+		constraints = rhs.constraints;
+
+		for( i=0; i<(_nV+_nC); ++i )
+			y[i] = rhs.y[i];
+
+
+		sizeT = rhs.sizeT;
+
+		for( i=0; i<sizeT; ++i )
+			for( j=0; j<sizeT; ++j )
+				T[i*NVMAX + j] = rhs.T[i*NVMAX + j];
+
+		for( i=0; i<_nV; ++i )
+			for( j=0; j<_nV; ++j )
+				Q[i*NVMAX + j] = rhs.Q[i*NVMAX + j];
+
+		for( i=0; i<_nC; ++i )
+			Ax[i] = rhs.Ax[i];
+
+		cyclingManager = rhs.cyclingManager;
+	}
+
+	return *this;
+}
+
+
+/*
+ *	r e s e t
+ */
+returnValue QProblem::reset( )
+{
+	int i, j;
+	int nV = getNV( );
+	int nC = getNC( );
+
+
+	/* 1) Reset bounds, Cholesky decomposition and status flags. */
+	if ( QProblemB::reset( ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_RESET_FAILED );
+
+	/* 2) Reset constraints. */
+	constraints.init( nC );
+
+	/* 3) Reset TQ factorisation. */
+	for( i=0; i<sizeT; ++i )
+		for( j=0; j<sizeT; ++j )
+			T[i*NVMAX + j] = 0.0;
+
+	for( i=0; i<nV; ++i )
+		for( j=0; j<nV; ++j )
+			Q[i*NVMAX + j] = 0.0;
+
+	/* 4) Reset cycling manager. */
+	if ( cyclingManager.clearCyclingData( ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_RESET_FAILED );
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	i n i t
+ */
+returnValue QProblem::init(	const real_t* const _H, const real_t* const _g, const real_t* const _A,
+							const real_t* const _lb, const real_t* const _ub,
+							const real_t* const _lbA, const real_t* const _ubA,
+							int& nWSR, const real_t* const yOpt, real_t* const cputime
+							)
+{
+	/* 1) Setup QP data. */
+	if (setupQPdata(_H, 0, _g, _A, _lb, _ub, _lbA, _ubA) != SUCCESSFUL_RETURN)
+		return THROWERROR( RET_INVALID_ARGUMENTS );
+
+	/* 2) Call to main initialisation routine (without any additional information). */
+	return solveInitialQP( 0,yOpt,0,0, nWSR,cputime );
+}
+
+returnValue QProblem::init(	const real_t* const _H, const real_t* const _R, const real_t* const _g, const real_t* const _A,
+							const real_t* const _lb, const real_t* const _ub,
+							const real_t* const _lbA, const real_t* const _ubA,
+							int& nWSR, const real_t* const yOpt, real_t* const cputime
+							)
+{
+	/* 1) Setup QP data. */
+	if (setupQPdata(_H, _R, _g, _A, _lb, _ub, _lbA, _ubA) != SUCCESSFUL_RETURN)
+		return THROWERROR( RET_INVALID_ARGUMENTS );
+
+	/* 2) Call to main initialisation routine (without any additional information). */
+	return solveInitialQP( 0,yOpt,0,0, nWSR,cputime );
+}
+
+
+/*
+ *	h o t s t a r t
+ */
+returnValue QProblem::hotstart(	const real_t* const g_new, const real_t* const lb_new, const real_t* const ub_new,
+								const real_t* const lbA_new, const real_t* const ubA_new,
+								int& nWSR, real_t* const cputime
+								)
+{
+	int l;
+
+	/* consistency check */
+	if ( ( getStatus( ) == QPS_NOTINITIALISED )       ||
+		 ( getStatus( ) == QPS_PREPARINGAUXILIARYQP ) ||
+		 ( getStatus( ) == QPS_PERFORMINGHOMOTOPY )   )
+	{
+		return THROWERROR( RET_HOTSTART_FAILED_AS_QP_NOT_INITIALISED );
+	}
+
+	/* start runtime measurement */
+	real_t starttime = 0.0;
+	if ( cputime != 0 )
+		starttime = getCPUtime( );
+
+
+	/* I) PREPARATIONS */
+	/* 1) Reset cycling and status flags and increase QP counter. */
+	cyclingManager.clearCyclingData( );
+
+	infeasible = BT_FALSE;
+	unbounded = BT_FALSE;
+
+	++count;
+
+	/* 2) Allocate delta vectors of gradient and (constraints') bounds. */
+	returnValue returnvalue;
+	BooleanType Delta_bC_isZero, Delta_bB_isZero;
+
+	int FR_idx[NVMAX];
+	int FX_idx[NVMAX];
+	int AC_idx[NCMAX_ALLOC];
+	int IAC_idx[NCMAX_ALLOC];
+
+	real_t delta_g[NVMAX];
+	real_t delta_lb[NVMAX];
+	real_t delta_ub[NVMAX];
+	real_t delta_lbA[NCMAX_ALLOC];
+	real_t delta_ubA[NCMAX_ALLOC];
+
+	real_t delta_xFR[NVMAX];
+	real_t delta_xFX[NVMAX];
+	real_t delta_yAC[NCMAX_ALLOC];
+	real_t delta_yFX[NVMAX];
+	real_t delta_Ax[NCMAX_ALLOC];
+
+	int BC_idx;
+	SubjectToStatus BC_status;
+	BooleanType BC_isBound;
+
+	#ifdef PC_DEBUG
+	char messageString[80];
+	#endif
+
+
+	/* II) MAIN HOMOTOPY LOOP */
+	for( l=0; l<nWSR; ++l )
+	{
+		status = QPS_PERFORMINGHOMOTOPY;
+
+		if ( printlevel == PL_HIGH )
+		{
+			#ifdef PC_DEBUG
+			sprintf( messageString,"%d ...",l );
+		  	getGlobalMessageHandler( )->throwInfo( RET_ITERATION_STARTED,messageString,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE );
+			#endif
+		}
+
+		/* 1) Setup index arrays. */
+		if ( bounds.getFree( )->getNumberArray( FR_idx ) != SUCCESSFUL_RETURN )
+			return THROWERROR( RET_HOTSTART_FAILED );
+
+		if ( bounds.getFixed( )->getNumberArray( FX_idx ) != SUCCESSFUL_RETURN )
+			return THROWERROR( RET_HOTSTART_FAILED );
+
+		if ( constraints.getActive( )->getNumberArray( AC_idx ) != SUCCESSFUL_RETURN )
+			return THROWERROR( RET_HOTSTART_FAILED );
+
+		if ( constraints.getInactive( )->getNumberArray( IAC_idx ) != SUCCESSFUL_RETURN )
+			return THROWERROR( RET_HOTSTART_FAILED );
+
+		/* 2) Detemination of shift direction of the gradient and the (constraints') bounds. */
+		returnvalue = hotstart_determineDataShift(  FX_idx, AC_idx,
+													g_new,lbA_new,ubA_new,lb_new,ub_new,
+													delta_g,delta_lbA,delta_ubA,delta_lb,delta_ub,
+													Delta_bC_isZero, Delta_bB_isZero );
+		if ( returnvalue != SUCCESSFUL_RETURN )
+		{
+			nWSR = l;
+			THROWERROR( RET_SHIFT_DETERMINATION_FAILED );
+			return returnvalue;
+		}
+
+		/* 3) Determination of step direction of X and Y. */
+		returnvalue = hotstart_determineStepDirection(	FR_idx,FX_idx,AC_idx,
+														delta_g,delta_lbA,delta_ubA,delta_lb,delta_ub,
+														Delta_bC_isZero, Delta_bB_isZero,
+														delta_xFX,delta_xFR,delta_yAC,delta_yFX
+														);
+		if ( returnvalue != SUCCESSFUL_RETURN )
+		{
+			nWSR = l;
+			THROWERROR( RET_STEPDIRECTION_DETERMINATION_FAILED );
+			return returnvalue;
+		}
+
+		/* 4) Determination of step length TAU. */
+		returnvalue = hotstart_determineStepLength(	FR_idx,FX_idx,AC_idx,IAC_idx,
+													delta_lbA,delta_ubA,delta_lb,delta_ub,
+													delta_xFX,delta_xFR,delta_yAC,delta_yFX,delta_Ax,
+													BC_idx,BC_status,BC_isBound
+													);
+		if ( returnvalue != SUCCESSFUL_RETURN )
+		{
+			nWSR = l;
+			THROWERROR( RET_STEPLENGTH_DETERMINATION_FAILED );
+			return returnvalue;
+		}
+
+		/* 5) Realisation of the homotopy step. */
+		returnvalue = hotstart_performStep(	FR_idx,FX_idx,AC_idx,IAC_idx,
+											delta_g,delta_lbA,delta_ubA,delta_lb,delta_ub,
+											delta_xFX,delta_xFR,delta_yAC,delta_yFX,delta_Ax,
+											BC_idx,BC_status,BC_isBound
+											);
+
+		if ( returnvalue != SUCCESSFUL_RETURN )
+		{
+			nWSR = l;
+
+			/* stop runtime measurement */
+			if ( cputime != 0 )
+					*cputime = getCPUtime( ) - starttime;
+
+			/* optimal solution found? */
+			if ( returnvalue == RET_OPTIMAL_SOLUTION_FOUND )
+			{
+				status = QPS_SOLVED;
+
+				if ( printlevel == PL_HIGH )
+					THROWINFO( RET_OPTIMAL_SOLUTION_FOUND );
+
+				#ifdef PC_DEBUG
+	 			if ( printIteration( l,BC_idx,BC_status,BC_isBound ) != SUCCESSFUL_RETURN )
+					THROWERROR( RET_PRINT_ITERATION_FAILED ); /* do not pass this as return value! */
+				#endif
+
+				/* check KKT optimality conditions */
+				return checkKKTconditions( );
+			}
+			else
+			{
+				/* checks for infeasibility... */
+				if ( isInfeasible( ) == BT_TRUE )
+				{
+					status = QPS_HOMOTOPYQPSOLVED;
+					return THROWERROR( RET_HOTSTART_STOPPED_INFEASIBILITY );
+				}
+
+				/* ...unboundedness... */
+				if ( unbounded == BT_TRUE ) /* not necessary since objective function convex! */
+					return THROWERROR( RET_HOTSTART_STOPPED_UNBOUNDEDNESS );
+
+				/* ... and throw unspecific error otherwise */
+				THROWERROR( RET_HOMOTOPY_STEP_FAILED );
+				return returnvalue;
+			}
+		}
+
+		/* 6) Output information of successful QP iteration. */
+		status = QPS_HOMOTOPYQPSOLVED;
+
+		#ifdef PC_DEBUG
+		if ( printIteration( l,BC_idx,BC_status,BC_isBound ) != SUCCESSFUL_RETURN )
+			THROWERROR( RET_PRINT_ITERATION_FAILED ); /* do not pass this as return value! */
+		#endif
+	}
+
+
+	/* stop runtime measurement */
+	if ( cputime != 0 )
+		*cputime = getCPUtime( ) - starttime;
+
+
+	/* if programm gets to here, output information that QP could not be solved
+	 * within the given maximum numbers of working set changes */
+	if ( printlevel == PL_HIGH )
+	{
+		#ifdef PC_DEBUG
+		sprintf( messageString,"(nWSR = %d)",nWSR );
+		return getGlobalMessageHandler( )->throwWarning( RET_MAX_NWSR_REACHED,messageString,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE );
+		#endif
+	}
+
+	/* Finally check KKT optimality conditions. */
+	returnValue returnvalueKKTcheck = checkKKTconditions( );
+
+	if ( returnvalueKKTcheck != SUCCESSFUL_RETURN )
+		return returnvalueKKTcheck;
+	else
+		return RET_MAX_NWSR_REACHED;
+}
+
+
+/*
+ *	g e t N Z
+ */
+int QProblem::getNZ( )
+{
+	/* nZ = nFR - nAC */
+	return bounds.getFree( )->getLength( ) - constraints.getActive( )->getLength( );
+}
+
+
+/*
+ *	g e t D u a l S o l u t i o n
+ */
+returnValue QProblem::getDualSolution( real_t* const yOpt ) const
+{
+	int i;
+
+	/* return optimal dual solution vector
+	 * only if current QP has been solved */
+	if ( ( getStatus( ) == QPS_AUXILIARYQPSOLVED ) ||
+		 ( getStatus( ) == QPS_HOMOTOPYQPSOLVED )  ||
+		 ( getStatus( ) == QPS_SOLVED ) )
+	{
+		for( i=0; i<getNV( )+getNC( ); ++i )
+			yOpt[i] = y[i];
+
+		return SUCCESSFUL_RETURN;
+	}
+	else
+	{
+		return RET_QP_NOT_SOLVED;
+	}
+}
+
+
+
+/*****************************************************************************
+ *  P R O T E C T E D                                                        *
+ *****************************************************************************/
+
+/*
+ *	s e t u p S u b j e c t T o T y p e
+ */
+returnValue QProblem::setupSubjectToType( )
+{
+	int i;
+	int nC = getNC( );
+
+
+	/* I) SETUP SUBJECTTOTYPE FOR BOUNDS */
+	if ( QProblemB::setupSubjectToType( ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_SETUPSUBJECTTOTYPE_FAILED );
+
+
+	/* II) SETUP SUBJECTTOTYPE FOR CONSTRAINTS */
+	/* 1) Check if lower constraints' bounds are present. */
+	constraints.setNoLower( BT_TRUE );
+	for( i=0; i<nC; ++i )
+	{
+		if ( lbA[i] > -INFTY )
+		{
+			constraints.setNoLower( BT_FALSE );
+			break;
+		}
+	}
+
+	/* 2) Check if upper constraints' bounds are present. */
+	constraints.setNoUpper( BT_TRUE );
+	for( i=0; i<nC; ++i )
+	{
+		if ( ubA[i] < INFTY )
+		{
+			constraints.setNoUpper( BT_FALSE );
+			break;
+		}
+	}
+
+	/* 3) Determine implicit equality constraints and unbounded constraints. */
+	int nEC = 0;
+	int nUC = 0;
+
+	for( i=0; i<nC; ++i )
+	{
+		if ( ( lbA[i] < -INFTY + BOUNDTOL ) && ( ubA[i] > INFTY - BOUNDTOL ) )
+		{
+			constraints.setType( i,ST_UNBOUNDED );
+			++nUC;
+		}
+		else
+		{
+			if ( lbA[i] > ubA[i] - BOUNDTOL )
+			{
+				constraints.setType( i,ST_EQUALITY );
+				++nEC;
+			}
+			else
+			{
+				constraints.setType( i,ST_BOUNDED );
+			}
+		}
+	}
+
+	/* 4) Set dimensions of constraints structure. */
+	constraints.setNEC( nEC );
+	constraints.setNUC( nUC );
+	constraints.setNIC( nC - nEC - nUC );
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	c h o l e s k y D e c o m p o s i t i o n P r o j e c t e d
+ */
+returnValue QProblem::setupCholeskyDecompositionProjected( )
+{
+	int i, j, k, ii, kk;
+	int nV  = getNV( );
+	int nFR = getNFR( );
+	int nZ  = getNZ( );
+
+	/* 1) Initialises R with all zeros. */
+	for( i=0; i<nV; ++i )
+		for( j=0; j<nV; ++j )
+			R[i*NVMAX + j] = 0.0;
+
+	/* 2) Calculate Cholesky decomposition of projected Hessian Z'*H*Z. */
+	if ( hessianType == HST_IDENTITY )
+	{
+		/* if Hessian is identity, so is its Cholesky factor. */
+		for( i=0; i<nV; ++i )
+			R[i*NVMAX + i] = 1.0;
+	}
+	else
+	{
+		if ( nZ > 0 )
+		{
+			int FR_idx[NVMAX];
+			if ( bounds.getFree( )->getNumberArray( FR_idx ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_INDEXLIST_CORRUPTED );
+
+#if 0
+			real_t HZ[NVMAX*NVMAX];
+			real_t ZHZ[NVMAX*NVMAX];
+
+			/* calculate H*Z */
+			for ( i=0; i<nFR; ++i )
+			{
+				ii = FR_idx[i];
+
+				for ( j=0; j<nZ; ++j )
+				{
+					real_t sum = 0.0;
+					for ( k=0; k<nFR; ++k )
+					{
+						kk = FR_idx[k];
+						sum += H[ii*NVMAX + kk] * Q[kk*NVMAX + j];
+					}
+					HZ[i * NVMAX + j] = sum;
+				}
+			}
+
+			/* calculate Z'*H*Z */
+			for ( i=0; i<nZ; ++i )
+				for ( j=0; j<nZ; ++j )
+				{
+					real_t sum = 0.0;
+					for ( k=0; k<nFR; ++k )
+					{
+						kk = FR_idx[k];
+						sum += Q[kk*NVMAX + i] * HZ[k*NVMAX + j];
+					}
+					ZHZ[i * NVMAX + j] = sum;
+				}
+
+			/* R'*R = Z'*H*Z */
+			real_t sum, inv;
+
+			for( i=0; i<nZ; ++i )
+			{
+				/* j == i */
+				sum = ZHZ[i*NVMAX + i];
+
+				for( k=(i-1); k>=0; --k )
+					sum -= R[k*NVMAX + i] * R[k*NVMAX + i];
+
+				if ( sum > 0.0 )
+				{
+					R[i*NVMAX + i] = sqrt( sum );
+					inv = 1.0 / R[i * NVMAX + i];
+				}
+				else
+				{
+					hessianType = HST_SEMIDEF;
+					return THROWERROR( RET_HESSIAN_NOT_SPD );
+				}
+
+				for( j=(i+1); j<nZ; ++j )
+				{
+					sum = ZHZ[j*NVMAX + i];
+
+					for( k=(i-1); k>=0; --k )
+						sum -= R[k*NVMAX + i] * R[k*NVMAX + j];
+
+					R[i*NVMAX + j] = sum * inv;
+				}
+			}
+#else
+			real_t HZ[NVMAX];
+			real_t ZHZ[NVMAX];
+
+			real_t sum, inv;
+			for (j = 0; j < nZ; ++j)
+			{
+				/* Cache one column of Z. */
+				for (i = 0; i < NVMAX; ++i)
+					ZHZ[i] = Q[i * NVMAX + j];
+
+				/* Create one column of the product H * Z. */
+				for (i = 0; i < nFR; ++i)
+				{
+					ii = FR_idx[i];
+
+					sum = 0.0;
+					for (k = 0; k < nFR; ++k)
+					{
+						kk = FR_idx[k];
+						sum += H[ii * NVMAX + kk] * ZHZ[kk];
+					}
+					HZ[ii] = sum;
+				}
+
+				/* Create one column of the product Z^T * H * Z. */
+				for (i = j; i < nZ; ++i)
+					ZHZ[ i ] = 0.0;
+
+				for (k = 0; k < nFR; ++k)
+				{
+					kk = FR_idx[k];
+					real_t q = HZ[kk];
+					for (i = j; i < nZ; ++i)
+					{
+						ZHZ[i] += Q[kk * NVMAX + i] * q;
+					}
+				}
+
+				/* Use the computed column to update the factorization. */
+				/* j == i */
+				sum = ZHZ[j];
+
+				for (k = (j - 1); k >= 0; --k)
+					sum -= R[k * NVMAX + j] * R[k * NVMAX + j];
+
+				if (sum > 0.0)
+				{
+					R[j * NVMAX + j] = sqrt(sum);
+					inv = 1.0 / R[j * NVMAX + j];
+				}
+				else
+				{
+					hessianType = HST_SEMIDEF;
+					return THROWERROR( RET_HESSIAN_NOT_SPD );
+				}
+
+				for (i = (j + 1); i < nZ; ++i)
+				{
+					sum = ZHZ[i];
+
+					for (k = (j - 1); k >= 0; --k)
+						sum -= R[k * NVMAX + j] * R[k * NVMAX + i];
+
+					R[j * NVMAX + i] = sum * inv;
+				}
+			}
+#endif
+		}
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s e t u p T Q f a c t o r i s a t i o n
+ */
+returnValue QProblem::setupTQfactorisation( )
+{
+	int i, j, ii;
+	int nV  = getNV( );
+	int nFR = getNFR( );
+
+	int FR_idx[NVMAX];
+	if ( bounds.getFree( )->getNumberArray( FR_idx ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_INDEXLIST_CORRUPTED );
+
+	/* 1) Set Q to unity matrix. */
+	for( i=0; i<nV; ++i )
+		for( j=0; j<nV; ++j )
+			Q[i*NVMAX + j] = 0.0;
+
+	for( i=0; i<nFR; ++i )
+	{
+		ii = FR_idx[i];
+		Q[ii*NVMAX + i] = 1.0;
+	}
+
+ 	/* 2) Set T to zero matrix. */
+	for( i=0; i<sizeT; ++i )
+		for( j=0; j<sizeT; ++j )
+			T[i*NVMAX + j] = 0.0;
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s o l v e I n i t i a l Q P
+ */
+returnValue QProblem::solveInitialQP(	const real_t* const xOpt, const real_t* const yOpt,
+										const Bounds* const guessedBounds, const Constraints* const guessedConstraints,
+										int& nWSR, real_t* const cputime
+										)
+{
+	int i;
+
+	/* some definitions */
+	int nV = getNV( );
+	int nC = getNC( );
+
+
+	/* start runtime measurement */
+	real_t starttime = 0.0;
+	if ( cputime != 0 )
+		starttime = getCPUtime( );
+
+
+	status = QPS_NOTINITIALISED;
+
+	/* I) ANALYSE QP DATA: */
+	/* 1) Check if Hessian happens to be the identity matrix. */
+	if ( checkForIdentityHessian( ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_INIT_FAILED );
+
+	/* 2) Setup type of bounds and constraints (i.e. unbounded, implicitly fixed etc.). */
+	if ( setupSubjectToType( ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_INIT_FAILED );
+
+	/* 3) Initialise cycling manager. */
+	cyclingManager.clearCyclingData( );
+
+	status = QPS_PREPARINGAUXILIARYQP;
+
+
+	/* II) SETUP AUXILIARY QP WITH GIVEN OPTIMAL SOLUTION: */
+	/* 1) Setup bounds and constraints data structure. */
+	if ( bounds.setupAllFree( ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_INIT_FAILED );
+
+	if ( constraints.setupAllInactive( ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_INIT_FAILED );
+
+	/* 2) Setup optimal primal/dual solution for auxiliary QP. */
+	if ( setupAuxiliaryQPsolution( xOpt,yOpt ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_INIT_FAILED );
+
+	/* 3) Obtain linear independent working set for auxiliary QP. */
+
+	static Bounds auxiliaryBounds;
+
+	auxiliaryBounds.init( nV );
+
+	static Constraints auxiliaryConstraints;
+
+	auxiliaryConstraints.init( nC );
+
+	if ( obtainAuxiliaryWorkingSet(	xOpt,yOpt,guessedBounds,guessedConstraints,
+									&auxiliaryBounds,&auxiliaryConstraints ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_INIT_FAILED );
+
+	/* 4) Setup working set of auxiliary QP and setup matrix factorisations. */
+	if ( setupTQfactorisation( ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_INIT_FAILED_TQ );
+
+	if ( setupAuxiliaryWorkingSet( &auxiliaryBounds,&auxiliaryConstraints,BT_TRUE ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_INIT_FAILED );
+
+	if ( ( getNAC( ) + getNFX( ) ) == 0 )
+	{
+		/* Factorise full Hessian if no bounds/constraints are active. */
+		if (hasCholesky == BT_FALSE)
+			if ( setupCholeskyDecomposition( ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_INIT_FAILED_CHOLESKY );
+		/* ... else we use user provided Cholesky factorization. At the moment
+		 * we can do that only for cold-started solver. */
+	}
+	else
+	{
+		/* Factorise projected Hessian if there active bounds/constraints. */
+		if ( setupCholeskyDecompositionProjected( ) != SUCCESSFUL_RETURN )
+			return THROWERROR( RET_INIT_FAILED_CHOLESKY );
+		/* TODO: use user-supplied Hessian decomposition. R_Z = R * Z. */
+	}
+
+	/* 5) Store original QP formulation... */
+	real_t g_original[NVMAX];
+	real_t lb_original[NVMAX];
+	real_t ub_original[NVMAX];
+	real_t lbA_original[NCMAX_ALLOC];
+	real_t ubA_original[NCMAX_ALLOC];
+
+	for( i=0; i<nV; ++i )
+	{
+		g_original[i] = g[i];
+		lb_original[i] = lb[i];
+		ub_original[i] = ub[i];
+	}
+
+	for( i=0; i<nC; ++i )
+	{
+		lbA_original[i] = lbA[i];
+		ubA_original[i] = ubA[i];
+	}
+
+	/* ... and setup QP data of an auxiliary QP having an optimal solution
+	 * as specified by the user (or xOpt = yOpt = 0, by default). */
+	if ( setupAuxiliaryQPgradient( ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_INIT_FAILED );
+
+	if ( setupAuxiliaryQPbounds( &auxiliaryBounds,&auxiliaryConstraints,BT_TRUE ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_INIT_FAILED );
+
+	status = QPS_AUXILIARYQPSOLVED;
+
+
+	/* III) SOLVE ACTUAL INITIAL QP: */
+	/* Use hotstart method to find the solution of the original initial QP,... */
+	returnValue returnvalue = hotstart( g_original,lb_original,ub_original,lbA_original,ubA_original, nWSR,0 );
+
+
+	/* ... check for infeasibility and unboundedness... */
+	if ( isInfeasible( ) == BT_TRUE )
+		return THROWERROR( RET_INIT_FAILED_INFEASIBILITY );
+
+	if ( isUnbounded( ) == BT_TRUE )
+		return THROWERROR( RET_INIT_FAILED_UNBOUNDEDNESS );
+
+	/* ... and internal errors. */
+	if ( ( returnvalue != SUCCESSFUL_RETURN ) && ( returnvalue != RET_MAX_NWSR_REACHED )  &&
+	     ( returnvalue != RET_INACCURATE_SOLUTION ) && ( returnvalue != RET_NO_SOLUTION ) )
+		return THROWERROR( RET_INIT_FAILED_HOTSTART );
+
+
+	/* stop runtime measurement */
+	if ( cputime != 0 )
+		*cputime = getCPUtime( ) - starttime;
+
+	if ( printlevel == PL_HIGH )
+		THROWINFO( RET_INIT_SUCCESSFUL );
+
+	return returnvalue;
+}
+
+
+/*
+ *	o b t a i n A u x i l i a r y W o r k i n g S e t
+ */
+returnValue QProblem::obtainAuxiliaryWorkingSet(	const real_t* const xOpt, const real_t* const yOpt,
+													const Bounds* const guessedBounds, const Constraints* const guessedConstraints,
+													Bounds* auxiliaryBounds, Constraints* auxiliaryConstraints
+													) const
+{
+	int i = 0;
+	int nV = getNV( );
+	int nC = getNC( );
+
+
+	/* 1) Ensure that desiredBounds is allocated (and different from guessedBounds). */
+	if ( ( auxiliaryBounds == 0 ) || ( auxiliaryBounds == guessedBounds ) )
+		return THROWERROR( RET_INVALID_ARGUMENTS );
+
+	if ( ( auxiliaryConstraints == 0 ) || ( auxiliaryConstraints == guessedConstraints ) )
+		return THROWERROR( RET_INVALID_ARGUMENTS );
+
+
+	SubjectToStatus guessedStatus;
+
+	/* 2) Setup working set of bounds for auxiliary initial QP. */
+	if ( QProblemB::obtainAuxiliaryWorkingSet( xOpt,yOpt,guessedBounds, auxiliaryBounds ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+
+	/* 3) Setup working set of constraints for auxiliary initial QP. */
+	if ( guessedConstraints != 0 )
+	{
+		/* If an initial working set is specific, use it!
+		 * Moreover, add all equality constraints if specified. */
+		for( i=0; i<nC; ++i )
+		{
+			guessedStatus = guessedConstraints->getStatus( i );
+
+			if ( constraints.getType( i ) == ST_EQUALITY )
+			{
+				if ( auxiliaryConstraints->setupConstraint( i,ST_LOWER ) != SUCCESSFUL_RETURN )
+					return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+			}
+			else
+			{
+				if ( auxiliaryConstraints->setupConstraint( i,guessedStatus ) != SUCCESSFUL_RETURN )
+					return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+			}
+		}
+	}
+	else	/* No initial working set specified. */
+	{
+		/* Obtain initial working set by "clipping". */
+		if ( ( xOpt != 0 ) && ( yOpt == 0 ) )
+		{
+			for( i=0; i<nC; ++i )
+			{
+				if ( Ax[i] <= lbA[i] + BOUNDTOL )
+				{
+					if ( auxiliaryConstraints->setupConstraint( i,ST_LOWER ) != SUCCESSFUL_RETURN )
+						return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+					continue;
+				}
+
+				if ( Ax[i] >= ubA[i] - BOUNDTOL )
+				{
+					if ( auxiliaryConstraints->setupConstraint( i,ST_UPPER ) != SUCCESSFUL_RETURN )
+							return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+					continue;
+				}
+
+				/* Moreover, add all equality constraints if specified. */
+				if ( constraints.getType( i ) == ST_EQUALITY )
+				{
+					if ( auxiliaryConstraints->setupConstraint( i,ST_LOWER ) != SUCCESSFUL_RETURN )
+						return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+				}
+				else
+				{
+					if ( auxiliaryConstraints->setupConstraint( i,ST_INACTIVE ) != SUCCESSFUL_RETURN )
+						return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+				}
+			}
+		}
+
+		/* Obtain initial working set in accordance to sign of dual solution vector. */
+		if ( ( xOpt == 0 ) && ( yOpt != 0 ) )
+		{
+			for( i=0; i<nC; ++i )
+			{
+				if ( yOpt[nV+i] > ZERO )
+				{
+					if ( auxiliaryConstraints->setupConstraint( i,ST_LOWER ) != SUCCESSFUL_RETURN )
+						return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+					continue;
+				}
+
+				if ( yOpt[nV+i] < -ZERO )
+				{
+					if ( auxiliaryConstraints->setupConstraint( i,ST_UPPER ) != SUCCESSFUL_RETURN )
+						return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+					continue;
+				}
+
+				/* Moreover, add all equality constraints if specified. */
+				if ( constraints.getType( i ) == ST_EQUALITY )
+				{
+					if ( auxiliaryConstraints->setupConstraint( i,ST_LOWER ) != SUCCESSFUL_RETURN )
+						return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+				}
+				else
+				{
+					if ( auxiliaryConstraints->setupConstraint( i,ST_INACTIVE ) != SUCCESSFUL_RETURN )
+						return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+				}
+			}
+		}
+
+		/* If xOpt and yOpt are null pointer and no initial working is specified,
+		 * start with empty working set (or implicitly fixed bounds and equality constraints only)
+		 * for auxiliary QP. */
+		if ( ( xOpt == 0 ) && ( yOpt == 0 ) )
+		{
+			for( i=0; i<nC; ++i )
+			{
+				/* Only add all equality constraints if specified. */
+				if ( constraints.getType( i ) == ST_EQUALITY )
+				{
+					if ( auxiliaryConstraints->setupConstraint( i,ST_LOWER ) != SUCCESSFUL_RETURN )
+						return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+				}
+				else
+				{
+					if ( auxiliaryConstraints->setupConstraint( i,ST_INACTIVE ) != SUCCESSFUL_RETURN )
+						return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+				}
+			}
+		}
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+
+/*
+ *	s e t u p A u x i l i a r y W o r k i n g S e t
+ */
+returnValue QProblem::setupAuxiliaryWorkingSet(	const Bounds* const auxiliaryBounds,
+												const Constraints* const auxiliaryConstraints,
+												BooleanType setupAfresh
+												)
+{
+	int i;
+	int nV = getNV( );
+	int nC = getNC( );
+
+	/* consistency checks */
+	if ( auxiliaryBounds != 0 )
+	{
+		for( i=0; i<nV; ++i )
+			if ( ( bounds.getStatus( i ) == ST_UNDEFINED ) || ( auxiliaryBounds->getStatus( i ) == ST_UNDEFINED ) )
+				return THROWERROR( RET_UNKNOWN_BUG );
+	}
+	else
+	{
+		return THROWERROR( RET_INVALID_ARGUMENTS );
+	}
+
+	if ( auxiliaryConstraints != 0 )
+	{
+		for( i=0; i<nC; ++i )
+			if ( ( constraints.getStatus( i ) == ST_UNDEFINED ) || ( auxiliaryConstraints->getStatus( i ) == ST_UNDEFINED ) )
+				return THROWERROR( RET_UNKNOWN_BUG );
+	}
+	else
+	{
+		return THROWERROR( RET_INVALID_ARGUMENTS );
+	}
+
+
+	/* I) SETUP CHOLESKY FLAG:
+	 *    Cholesky decomposition shall only be updated if working set
+	 *    shall be updated (i.e. NOT setup afresh!) */
+	BooleanType updateCholesky;
+	if ( setupAfresh == BT_TRUE )
+		updateCholesky = BT_FALSE;
+	else
+		updateCholesky = BT_TRUE;
+
+
+	/* II) REMOVE FORMERLY ACTIVE (CONSTRAINTS') BOUNDS (IF NECESSARY): */
+	if ( setupAfresh == BT_FALSE )
+	{
+		/* 1) Remove all active constraints that shall be inactive AND
+		*    all active constraints that are active at the wrong bound. */
+		for( i=0; i<nC; ++i )
+		{
+			if ( ( constraints.getStatus( i ) == ST_LOWER ) && ( auxiliaryConstraints->getStatus( i ) != ST_LOWER ) )
+				if ( removeConstraint( i,updateCholesky ) != SUCCESSFUL_RETURN )
+					return THROWERROR( RET_SETUP_WORKINGSET_FAILED );
+
+			if ( ( constraints.getStatus( i ) == ST_UPPER ) && ( auxiliaryConstraints->getStatus( i ) != ST_UPPER ) )
+				if ( removeConstraint( i,updateCholesky ) != SUCCESSFUL_RETURN )
+					return THROWERROR( RET_SETUP_WORKINGSET_FAILED );
+		}
+
+		/* 2) Remove all active bounds that shall be inactive AND
+		*    all active bounds that are active at the wrong bound. */
+		for( i=0; i<nV; ++i )
+		{
+			if ( ( bounds.getStatus( i ) == ST_LOWER ) && ( auxiliaryBounds->getStatus( i ) != ST_LOWER ) )
+				if ( removeBound( i,updateCholesky ) != SUCCESSFUL_RETURN )
+					return THROWERROR( RET_SETUP_WORKINGSET_FAILED );
+
+			if ( ( bounds.getStatus( i ) == ST_UPPER ) && ( auxiliaryBounds->getStatus( i ) != ST_UPPER ) )
+				if ( removeBound( i,updateCholesky ) != SUCCESSFUL_RETURN )
+					return THROWERROR( RET_SETUP_WORKINGSET_FAILED );
+		}
+	}
+
+
+	/* III) ADD NEWLY ACTIVE (CONSTRAINTS') BOUNDS: */
+	/* 1) Add all inactive bounds that shall be active AND
+	 *    all formerly active bounds that have been active at the wrong bound. */
+	for( i=0; i<nV; ++i )
+	{
+		if ( ( bounds.getStatus( i ) == ST_INACTIVE ) && ( auxiliaryBounds->getStatus( i ) != ST_INACTIVE ) )
+		{
+			/* Add bound only if it is linearly independent from the current working set. */
+			if ( addBound_checkLI( i ) == RET_LINEARLY_INDEPENDENT )
+			{
+				if ( addBound( i,auxiliaryBounds->getStatus( i ),updateCholesky ) != SUCCESSFUL_RETURN )
+					return THROWERROR( RET_SETUP_WORKINGSET_FAILED );
+			}
+		}
+	}
+
+	/* 2) Add all inactive constraints that shall be active AND
+	 *    all formerly active constraints that have been active at the wrong bound. */
+	for( i=0; i<nC; ++i )
+	{
+		if ( ( auxiliaryConstraints->getStatus( i ) == ST_LOWER ) || ( auxiliaryConstraints->getStatus( i ) == ST_UPPER ) )
+		{
+			/* formerly inactive */
+			if ( constraints.getStatus( i ) == ST_INACTIVE )
+			{
+				/* Add constraint only if it is linearly independent from the current working set. */
+				if ( addConstraint_checkLI( i ) == RET_LINEARLY_INDEPENDENT )
+				{
+					if ( addConstraint( i,auxiliaryConstraints->getStatus( i ),updateCholesky ) != SUCCESSFUL_RETURN )
+						return THROWERROR( RET_SETUP_WORKINGSET_FAILED );
+				}
+			}
+		}
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s e t u p A u x i l i a r y Q P s o l u t i o n
+ */
+returnValue QProblem::setupAuxiliaryQPsolution(	const real_t* const xOpt, const real_t* const yOpt
+												)
+{
+	int i, j;
+	int nV = getNV( );
+	int nC = getNC( );
+
+
+	/* Setup primal/dual solution vector for auxiliary initial QP:
+	 * if a null pointer is passed, a zero vector is assigned;
+	 *  old solution vector is kept if pointer to internal solution vevtor is passed. */
+	if ( xOpt != 0 )
+	{
+		if ( xOpt != x )
+			for( i=0; i<nV; ++i )
+				x[i] = xOpt[i];
+
+		for ( j=0; j<nC; ++j )
+		{
+			Ax[j] = 0.0;
+
+			for( i=0; i<nV; ++i )
+				Ax[j] += A[j*NVMAX + i] * x[i];
+		}
+	}
+	else
+	{
+		for( i=0; i<nV; ++i )
+			x[i] = 0.0;
+
+		for ( j=0; j<nC; ++j )
+			Ax[j] = 0.0;
+	}
+
+	if ( yOpt != 0 )
+	{
+		if ( yOpt != y )
+			for( i=0; i<nV+nC; ++i )
+				y[i] = yOpt[i];
+	}
+	else
+	{
+		for( i=0; i<nV+nC; ++i )
+			y[i] = 0.0;
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s e t u p A u x i l i a r y Q P g r a d i e n t
+ */
+returnValue QProblem::setupAuxiliaryQPgradient( )
+{
+	int i, j;
+	int nV = getNV( );
+	int nC = getNC( );
+
+
+	/* Setup gradient vector: g = -H*x + [Id A]'*[yB yC]. */
+	for ( i=0; i<nV; ++i )
+	{
+		/* Id'*yB */
+		g[i] = y[i];
+
+		/* A'*yC */
+		for ( j=0; j<nC; ++j )
+			g[i] += A[j*NVMAX + i] * y[nV+j];
+
+		/* -H*x */
+		for ( j=0; j<nV; ++j )
+			g[i] -= H[i*NVMAX + j] * x[j];
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s e t u p A u x i l i a r y Q P b o u n d s
+ */
+returnValue QProblem::setupAuxiliaryQPbounds(	const Bounds* const auxiliaryBounds,
+												const Constraints* const auxiliaryConstraints,
+												BooleanType useRelaxation
+												)
+{
+	int i;
+	int nV = getNV( );
+	int nC = getNC( );
+
+
+	/* 1) Setup bound vectors. */
+	for ( i=0; i<nV; ++i )
+	{
+		switch ( bounds.getStatus( i ) )
+		{
+			case ST_INACTIVE:
+				if ( useRelaxation == BT_TRUE )
+				{
+					if ( bounds.getType( i ) == ST_EQUALITY )
+					{
+						lb[i] = x[i];
+						ub[i] = x[i];
+					}
+					else
+					{
+						/* If a bound is inactive although it was supposed to be
+						* active by the auxiliaryBounds, it could not be added
+						* due to linear dependence. Thus set it "strongly inactive". */
+						if ( auxiliaryBounds->getStatus( i ) == ST_LOWER )
+							lb[i] = x[i];
+						else
+							lb[i] = x[i] - BOUNDRELAXATION;
+
+						if ( auxiliaryBounds->getStatus( i ) == ST_UPPER )
+							ub[i] = x[i];
+						else
+							ub[i] = x[i] + BOUNDRELAXATION;
+					}
+				}
+				break;
+
+			case ST_LOWER:
+				lb[i] = x[i];
+				if ( bounds.getType( i ) == ST_EQUALITY )
+				{
+					ub[i] = x[i];
+				}
+				else
+				{
+					if ( useRelaxation == BT_TRUE )
+						ub[i] = x[i] + BOUNDRELAXATION;
+				}
+				break;
+
+			case ST_UPPER:
+				ub[i] = x[i];
+				if ( bounds.getType( i ) == ST_EQUALITY )
+				{
+					lb[i] = x[i];
+				}
+				else
+				{
+					if ( useRelaxation == BT_TRUE )
+						lb[i] = x[i] - BOUNDRELAXATION;
+				}
+				break;
+
+			default:
+				return THROWERROR( RET_UNKNOWN_BUG );
+		}
+	}
+
+	/* 2) Setup constraints vectors. */
+	for ( i=0; i<nC; ++i )
+	{
+		switch ( constraints.getStatus( i ) )
+		{
+			case ST_INACTIVE:
+				if ( useRelaxation == BT_TRUE )
+				{
+					if ( constraints.getType( i ) == ST_EQUALITY )
+					{
+						lbA[i] = Ax[i];
+						ubA[i] = Ax[i];
+					}
+					else
+					{
+						/* If a constraint is inactive although it was supposed to be
+						* active by the auxiliaryConstraints, it could not be added
+						* due to linear dependence. Thus set it "strongly inactive". */
+						if ( auxiliaryConstraints->getStatus( i ) == ST_LOWER )
+							lbA[i] = Ax[i];
+						else
+							lbA[i] = Ax[i] - BOUNDRELAXATION;
+
+						if ( auxiliaryConstraints->getStatus( i ) == ST_UPPER )
+							ubA[i] = Ax[i];
+						else
+							ubA[i] = Ax[i] + BOUNDRELAXATION;
+					}
+				}
+				break;
+
+			case ST_LOWER:
+				lbA[i] = Ax[i];
+				if ( constraints.getType( i ) == ST_EQUALITY )
+				{
+					ubA[i] = Ax[i];
+				}
+				else
+				{
+					if ( useRelaxation == BT_TRUE )
+						ubA[i] = Ax[i] + BOUNDRELAXATION;
+				}
+				break;
+
+			case ST_UPPER:
+				ubA[i] = Ax[i];
+				if ( constraints.getType( i ) == ST_EQUALITY )
+				{
+					lbA[i] = Ax[i];
+				}
+				else
+				{
+					if ( useRelaxation == BT_TRUE )
+						lbA[i] = Ax[i] - BOUNDRELAXATION;
+				}
+				break;
+
+			default:
+				return THROWERROR( RET_UNKNOWN_BUG );
+		}
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	a d d C o n s t r a i n t
+ */
+returnValue QProblem::addConstraint(	int number, SubjectToStatus C_status,
+										BooleanType updateCholesky
+										)
+{
+	int i, j, ii;
+
+	/* consistency checks */
+	if ( constraints.getStatus( number ) != ST_INACTIVE )
+		return THROWERROR( RET_CONSTRAINT_ALREADY_ACTIVE );
+
+	if ( ( constraints.getNC( ) - getNAC( ) ) == constraints.getNUC( ) )
+		return THROWERROR( RET_ALL_CONSTRAINTS_ACTIVE );
+
+	if ( ( getStatus( ) == QPS_NOTINITIALISED )    ||
+		 ( getStatus( ) == QPS_AUXILIARYQPSOLVED ) ||
+		 ( getStatus( ) == QPS_HOMOTOPYQPSOLVED )  ||
+		 ( getStatus( ) == QPS_SOLVED )            )
+	{
+		return THROWERROR( RET_UNKNOWN_BUG );
+	}
+
+
+	/* I) ENSURE LINEAR INDEPENDENCE OF THE WORKING SET,
+	 *    i.e. remove a constraint or bound if linear dependence occurs. */
+	/* check for LI only if Cholesky decomposition shall be updated! */
+	if ( updateCholesky == BT_TRUE )
+	{
+		returnValue ensureLIreturnvalue = addConstraint_ensureLI( number,C_status );
+
+		switch ( ensureLIreturnvalue )
+		{
+			case SUCCESSFUL_RETURN:
+				break;
+
+			case RET_LI_RESOLVED:
+				break;
+
+			case RET_ENSURELI_FAILED_NOINDEX:
+				return THROWERROR( RET_ADDCONSTRAINT_FAILED_INFEASIBILITY );
+
+			case RET_ENSURELI_FAILED_CYCLING:
+				return THROWERROR( RET_ADDCONSTRAINT_FAILED_INFEASIBILITY );
+
+			default:
+				return THROWERROR( RET_ENSURELI_FAILED );
+		}
+	}
+
+	/* some definitions */
+	int nFR = getNFR( );
+	int nAC = getNAC( );
+	int nZ  = getNZ( );
+
+	int tcol = sizeT - nAC;
+
+
+	int FR_idx[NVMAX];
+	if ( bounds.getFree( )->getNumberArray( FR_idx ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_ADDCONSTRAINT_FAILED );
+
+	real_t aFR[NVMAX];
+	real_t wZ[NVMAX];
+	for( i=0; i<nZ; ++i )
+		wZ[i] = 0.0;
+
+
+	/* II) ADD NEW ACTIVE CONSTRAINT TO MATRIX T: */
+	/* 1) Add row [wZ wY] = aFR'*[Z Y] to the end of T: assign aFR. */
+	for( i=0; i<nFR; ++i )
+	{
+		ii = FR_idx[i];
+		aFR[i] = A[number*NVMAX + ii];
+	}
+
+	/* calculate wZ */
+	for( i=0; i<nFR; ++i )
+	{
+		ii = FR_idx[i];
+		for( j=0; j<nZ; ++j )
+			wZ[j] += aFR[i] * Q[ii*NVMAX + j];
+	}
+
+	/* 2) Calculate wY and store it directly into T. */
+	if ( nAC > 0 )
+	{
+		for( j=0; j<nAC; ++j )
+			T[nAC*NVMAX + tcol+j] = 0.0;
+		for( i=0; i<nFR; ++i )
+		{
+			ii = FR_idx[i];
+			for( j=0; j<nAC; ++j )
+				T[nAC*NVMAX + tcol+j] += aFR[i] * Q[ii*NVMAX + nZ+j];
+		}
+	}
+
+
+	real_t c, s;
+
+	if ( nZ > 0 )
+	{
+		/* II) RESTORE TRIANGULAR FORM OF T: */
+		/*     Use column-wise Givens rotations to restore reverse triangular form
+		*      of T, simultanenous change of Q (i.e. Z) and R. */
+		for( j=0; j<nZ-1; ++j )
+		{
+			computeGivens( wZ[j+1],wZ[j], wZ[j+1],wZ[j],c,s );
+
+			for( i=0; i<nFR; ++i )
+			{
+				ii = FR_idx[i];
+				applyGivens( c,s,Q[ii*NVMAX + 1+j],Q[ii*NVMAX + j], Q[ii*NVMAX + 1+j],Q[ii*NVMAX + j] );
+			}
+
+			if ( ( updateCholesky == BT_TRUE ) && ( hessianType != HST_IDENTITY ) )
+			{
+				for( i=0; i<=j+1; ++i )
+					applyGivens( c,s,R[i*NVMAX + 1+j],R[i*NVMAX + j], R[i*NVMAX + 1+j],R[i*NVMAX + j] );
+			}
+		}
+
+		T[nAC*NVMAX + tcol-1] = wZ[nZ-1];
+
+
+		if ( ( updateCholesky == BT_TRUE ) && ( hessianType != HST_IDENTITY ) )
+		{
+			/* III) RESTORE TRIANGULAR FORM OF R:
+			 *      Use row-wise Givens rotations to restore upper triangular form of R. */
+			for( i=0; i<nZ-1; ++i )
+			{
+				computeGivens( R[i*NVMAX + i],R[(1+i)*NVMAX + i], R[i*NVMAX + i],R[(1+i)*NVMAX + i],c,s );
+
+				for( j=(1+i); j<(nZ-1); ++j ) /* last column of R is thrown away */
+					applyGivens( c,s,R[i*NVMAX + j],R[(1+i)*NVMAX + j], R[i*NVMAX + j],R[(1+i)*NVMAX + j] );
+			}
+			/* last column of R is thrown away */
+			for( i=0; i<nZ; ++i )
+				R[i*NVMAX + nZ-1] = 0.0;
+		}
+	}
+
+
+	/* IV) UPDATE INDICES */
+	if ( constraints.moveInactiveToActive( number,C_status ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_ADDCONSTRAINT_FAILED );
+
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+
+/*
+ *	a d d C o n s t r a i n t _ c h e c k L I
+ */
+returnValue QProblem::addConstraint_checkLI( int number )
+{
+	int i, j, jj;
+	int nFR = getNFR( );
+	int nZ  = getNZ( );
+
+	int FR_idx[NVMAX];
+	if ( bounds.getFree( )->getNumberArray( FR_idx ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_INDEXLIST_CORRUPTED );
+
+	/* Check if constraint <number> is linearly independent from the
+	   the active ones (<=> is element of null space of Afr). */
+	real_t sum;
+
+	for( i=0; i<nZ; ++i )
+	{
+		sum = 0.0;
+		for( j=0; j<nFR; ++j )
+		{
+			jj = FR_idx[j];
+			sum += Q[jj*NVMAX + i] * A[number*NVMAX + jj];
+		}
+
+		if ( getAbs( sum ) > 10.0*EPS )
+			return RET_LINEARLY_INDEPENDENT;
+	}
+
+	return RET_LINEARLY_DEPENDENT;
+}
+
+
+/*
+ *	a d d C o n s t r a i n t _ e n s u r e L I
+ */
+returnValue QProblem::addConstraint_ensureLI( int number, SubjectToStatus C_status )
+{
+	int i, j, ii, jj;
+	int nV  = getNV( );
+	int nFR = getNFR( );
+	int nFX = getNFX( );
+	int nAC = getNAC( );
+	int nZ  = getNZ( );
+
+
+	/* I) Check if new constraint is linearly independent from the active ones. */
+	returnValue returnvalueCheckLI = addConstraint_checkLI( number );
+
+	if ( returnvalueCheckLI == RET_INDEXLIST_CORRUPTED )
+		return THROWERROR( RET_ENSURELI_FAILED );
+
+	if ( returnvalueCheckLI == RET_LINEARLY_INDEPENDENT )
+		return SUCCESSFUL_RETURN;
+
+
+ 	/* II) NEW CONSTRAINT IS LINEARLY DEPENDENT: */
+	/* 1) Determine coefficients of linear combination,
+	 *    cf. M.J. Best. Applied Mathematics and Parallel Computing, chapter:
+	 *    An Algorithm for the Solution of the Parametric Quadratic Programming
+	 *    Problem, pages 57-76. Physica-Verlag, Heidelberg, 1996. */
+	int FR_idx[NVMAX];
+	if ( bounds.getFree( )->getNumberArray( FR_idx ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_ENSURELI_FAILED );
+
+	int FX_idx[NVMAX];
+	if ( bounds.getFixed( )->getNumberArray( FX_idx ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_ENSURELI_FAILED );
+
+	real_t xiC[NCMAX_ALLOC];
+	real_t xiC_TMP[NCMAX_ALLOC];
+	real_t xiB[NVMAX];
+
+	/* 2) Calculate xiC */
+	if ( nAC > 0 )
+	{
+		if ( C_status == ST_LOWER )
+		{
+			for( i=0; i<nAC; ++i )
+			{
+				xiC_TMP[i] = 0.0;
+				for( j=0; j<nFR; ++j )
+				{
+					jj = FR_idx[j];
+					xiC_TMP[i] += Q[jj*NVMAX + nZ+i] * A[number*NVMAX + jj];
+				}
+			}
+		}
+		else
+		{
+			for( i=0; i<nAC; ++i )
+			{
+				xiC_TMP[i] = 0.0;
+				for( j=0; j<nFR; ++j )
+				{
+					jj = FR_idx[j];
+					xiC_TMP[i] -= Q[jj*NVMAX + nZ+i] * A[number*NVMAX + jj];
+				}
+			}
+		}
+
+		if ( backsolveT( xiC_TMP, BT_TRUE, xiC ) != SUCCESSFUL_RETURN )
+			return THROWERROR( RET_ENSURELI_FAILED_TQ );
+	}
+
+	/* 3) Calculate xiB. */
+	int AC_idx[NCMAX_ALLOC];
+	if ( constraints.getActive( )->getNumberArray( AC_idx ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_ENSURELI_FAILED );
+
+	if ( C_status == ST_LOWER )
+	{
+		for( i=0; i<nFX; ++i )
+		{
+			ii = FX_idx[i];
+			xiB[i] = A[number*NVMAX + ii];
+
+			for( j=0; j<nAC; ++j )
+			{
+				jj = AC_idx[j];
+				xiB[i] -= A[jj*NVMAX + ii] * xiC[j];
+			}
+		}
+	}
+	else
+	{
+		for( i=0; i<nFX; ++i )
+		{
+			ii = FX_idx[i];
+			xiB[i] = -A[number*NVMAX + ii];
+
+			for( j=0; j<nAC; ++j )
+			{
+				jj = AC_idx[j];
+				xiB[i] -= A[jj*NVMAX + ii] * xiC[j];
+			}
+		}
+	}
+
+
+	/* III) DETERMINE CONSTRAINT/BOUND TO BE REMOVED. */
+	real_t y_min = INFTY * INFTY;
+	int y_min_number = -1;
+	BooleanType y_min_isBound = BT_FALSE;
+
+	/* 1) Constraints. */
+	for( i=0; i<nAC; ++i )
+	{
+		ii = AC_idx[i];
+
+		if ( constraints.getStatus( ii ) == ST_LOWER )
+		{
+			if ( ( xiC[i] > ZERO ) && ( y[nV+ii] >= 0.0 ) )
+			{
+				if ( y[nV+ii]/xiC[i] < y_min )
+				{
+					y_min = y[nV+ii]/xiC[i];
+					y_min_number = ii;
+				}
+			}
+		}
+		else
+		{
+			if ( ( xiC[i] < -ZERO ) && ( y[nV+ii] <= 0.0 ) )
+			{
+				if ( y[nV+ii]/xiC[i] < y_min )
+				{
+					y_min = y[nV+ii]/xiC[i];
+					y_min_number = ii;
+				}
+			}
+		}
+	}
+
+	/* 2) Bounds. */
+	for( i=0; i<nFX; ++i )
+	{
+		ii = FX_idx[i];
+
+		if ( bounds.getStatus( ii ) == ST_LOWER )
+		{
+			if ( ( xiB[i] > ZERO ) && ( y[ii] >= 0.0 ) )
+			{
+				if ( y[ii]/xiB[i] < y_min )
+				{
+					y_min = y[ii]/xiB[i];
+					y_min_number = ii;
+					y_min_isBound = BT_TRUE;
+				}
+			}
+		}
+		else
+		{
+			if ( ( xiB[i] < -ZERO ) && ( y[ii] <= 0.0 ) )
+			{
+				if ( y[ii]/xiB[i] < y_min )
+				{
+					y_min = y[ii]/xiB[i];
+					y_min_number = ii;
+					y_min_isBound = BT_TRUE;
+				}
+			}
+		}
+	}
+
+	/* setup output preferences */
+	#ifdef PC_DEBUG
+	char messageString[80];
+	VisibilityStatus visibilityStatus;
+
+	if ( printlevel == PL_HIGH )
+		visibilityStatus = VS_VISIBLE;
+	else
+		visibilityStatus = VS_HIDDEN;
+	#endif
+
+
+	/* IV) REMOVE CONSTRAINT/BOUND FOR RESOLVING LINEAR DEPENDENCE: */
+	if ( y_min_number >= 0 )
+	{
+		/* 1) Check for cycling due to infeasibility. */
+		if ( ( cyclingManager.getCyclingStatus( number,BT_FALSE ) == CYC_PREV_REMOVED ) &&
+			 ( cyclingManager.getCyclingStatus( y_min_number,y_min_isBound ) == CYC_PREV_ADDED ) )
+		{
+			infeasible = BT_TRUE;
+
+			return THROWERROR( RET_ENSURELI_FAILED_CYCLING );
+		}
+		else
+		{
+			/* set cycling data */
+			cyclingManager.clearCyclingData( );
+			cyclingManager.setCyclingStatus( number,BT_FALSE, CYC_PREV_ADDED );
+			cyclingManager.setCyclingStatus( y_min_number,y_min_isBound, CYC_PREV_REMOVED );
+		}
+
+		/* 2) Update Lagrange multiplier... */
+		for( i=0; i<nAC; ++i )
+		{
+			ii = AC_idx[i];
+			y[nV+ii] -= y_min * xiC[i];
+		}
+		for( i=0; i<nFX; ++i )
+		{
+			ii = FX_idx[i];
+			y[ii] -= y_min * xiB[i];
+		}
+
+		/* ... also for newly active constraint... */
+		if ( C_status == ST_LOWER )
+			y[nV+number] = y_min;
+		else
+			y[nV+number] = -y_min;
+
+		/* ... and for constraint to be removed. */
+		if ( y_min_isBound == BT_TRUE )
+		{
+			#ifdef PC_DEBUG
+			sprintf( messageString,"bound no. %d.",y_min_number );
+			getGlobalMessageHandler( )->throwInfo( RET_REMOVE_FROM_ACTIVESET,messageString,__FUNCTION__,__FILE__,__LINE__,visibilityStatus );
+			#endif
+
+			if ( removeBound( y_min_number,BT_TRUE ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_REMOVE_FROM_ACTIVESET_FAILED );
+
+			y[y_min_number] = 0.0;
+		}
+		else
+		{
+			#ifdef PC_DEBUG
+			sprintf( messageString,"constraint no. %d.",y_min_number );
+			getGlobalMessageHandler( )->throwInfo( RET_REMOVE_FROM_ACTIVESET,messageString,__FUNCTION__,__FILE__,__LINE__,visibilityStatus );
+			#endif
+
+			if ( removeConstraint( y_min_number,BT_TRUE ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_REMOVE_FROM_ACTIVESET_FAILED );
+
+			y[nV+y_min_number] = 0.0;
+		}
+	}
+	else
+	{
+		/* no constraint/bound can be removed => QP is infeasible! */
+		infeasible = BT_TRUE;
+
+		return THROWERROR( RET_ENSURELI_FAILED_NOINDEX );
+	}
+
+	return getGlobalMessageHandler( )->throwInfo( RET_LI_RESOLVED,0,__FUNCTION__,__FILE__,__LINE__,VS_HIDDEN );
+}
+
+
+
+/*
+ *	a d d B o u n d
+ */
+returnValue QProblem::addBound(	int number, SubjectToStatus B_status,
+								BooleanType updateCholesky
+								)
+{
+	int i, j, ii;
+
+	/* consistency checks */
+	if ( bounds.getStatus( number ) != ST_INACTIVE )
+		return THROWERROR( RET_BOUND_ALREADY_ACTIVE );
+
+	if ( getNFR( ) == bounds.getNUV( ) )
+		return THROWERROR( RET_ALL_BOUNDS_ACTIVE );
+
+	if ( ( getStatus( ) == QPS_NOTINITIALISED )    ||
+		 ( getStatus( ) == QPS_AUXILIARYQPSOLVED ) ||
+		 ( getStatus( ) == QPS_HOMOTOPYQPSOLVED )  ||
+ 		 ( getStatus( ) == QPS_SOLVED )            )
+	{
+		return THROWERROR( RET_UNKNOWN_BUG );
+	}
+
+
+	/* I) ENSURE LINEAR INDEPENDENCE OF THE WORKING SET,
+	 *    i.e. remove a constraint or bound if linear dependence occurs. */
+	/* check for LI only if Cholesky decomposition shall be updated! */
+	if ( updateCholesky == BT_TRUE )
+	{
+		returnValue ensureLIreturnvalue = addBound_ensureLI( number,B_status );
+
+		switch ( ensureLIreturnvalue )
+		{
+			case SUCCESSFUL_RETURN:
+				break;
+
+			case RET_LI_RESOLVED:
+				break;
+
+			case RET_ENSURELI_FAILED_NOINDEX:
+				return THROWERROR( RET_ADDBOUND_FAILED_INFEASIBILITY );
+
+			case RET_ENSURELI_FAILED_CYCLING:
+				return THROWERROR( RET_ADDBOUND_FAILED_INFEASIBILITY );
+
+			default:
+				return THROWERROR( RET_ENSURELI_FAILED );
+		}
+	}
+
+
+	/* some definitions */
+	int nFR = getNFR( );
+	int nAC = getNAC( );
+	int nZ  = getNZ( );
+
+	int tcol = sizeT - nAC;
+
+
+	/* I) SWAP INDEXLIST OF FREE VARIABLES:
+	 *    move the variable to be fixed to the end of the list of free variables. */
+	int lastfreenumber = bounds.getFree( )->getLastNumber( );
+	if ( lastfreenumber != number )
+		if ( bounds.swapFree( number,lastfreenumber ) != SUCCESSFUL_RETURN )
+			THROWERROR( RET_ADDBOUND_FAILED );
+
+
+	int FR_idx[NVMAX];
+	if ( bounds.getFree( )->getNumberArray( FR_idx ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_ADDBOUND_FAILED );
+
+	real_t w[NVMAX];
+
+
+	/* II) ADD NEW ACTIVE BOUND TO TOP OF MATRIX T: */
+	/* 1) add row [wZ wY] = [Z Y](number) at the top of T: assign w */
+	for( i=0; i<nFR; ++i )
+		w[i] = Q[FR_idx[nFR-1]*NVMAX + i];
+
+
+	/* 2) Use column-wise Givens rotations to restore reverse triangular form
+	 *    of the first row of T, simultanenous change of Q (i.e. Z) and R. */
+	real_t c, s;
+
+	for( j=0; j<nZ-1; ++j )
+	{
+		computeGivens( w[j+1],w[j], w[j+1],w[j],c,s );
+
+		for( i=0; i<nFR; ++i )
+		{
+			ii = FR_idx[i];
+			applyGivens( c,s,Q[ii*NVMAX + 1+j],Q[ii*NVMAX + j], Q[ii*NVMAX + 1+j],Q[ii*NVMAX + j] );
+		}
+
+		if ( ( updateCholesky == BT_TRUE ) && ( hessianType != HST_IDENTITY ) )
+		{
+			for( i=0; i<=j+1; ++i )
+				applyGivens( c,s,R[i*NVMAX + 1+j],R[i*NVMAX + j], R[i*NVMAX + 1+j],R[i*NVMAX + j] );
+		}
+	}
+
+
+	if ( nAC > 0 )	  /* ( nAC == 0 ) <=> ( nZ == nFR ) <=> Y and T are empty => nothing to do */
+	{
+		/* store new column a in a temporary vector instead of shifting T one column to the left */
+		real_t tmp[NCMAX_ALLOC];
+		for( i=0; i<nAC; ++i )
+			tmp[i] = 0.0;
+
+		{
+			j = nZ-1;
+
+			computeGivens( w[j+1],w[j], w[j+1],w[j],c,s );
+
+			for( i=0; i<nFR; ++i )
+			{
+				ii = FR_idx[i];
+				applyGivens( c,s,Q[ii*NVMAX + 1+j],Q[ii*NVMAX + j], Q[ii*NVMAX + 1+j],Q[ii*NVMAX + j] );
+			}
+
+			applyGivens( c,s,T[(nAC-1)*NVMAX + tcol],tmp[nAC-1], tmp[nAC-1],T[(nAC-1)*NVMAX + tcol] );
+		}
+
+		for( j=nZ; j<nFR-1; ++j )
+		{
+			computeGivens( w[j+1],w[j], w[j+1],w[j],c,s );
+
+			for( i=0; i<nFR; ++i )
+			{
+				ii = FR_idx[i];
+				applyGivens( c,s,Q[ii*NVMAX + 1+j],Q[ii*NVMAX + j], Q[ii*NVMAX + 1+j],Q[ii*NVMAX + j] );
+			}
+
+			for( i=(nFR-2-j); i<nAC; ++i )
+				applyGivens( c,s,T[i*NVMAX + 1+tcol-nZ+j],tmp[i], tmp[i],T[i*NVMAX + 1+tcol-nZ+j] );
+		}
+
+	}
+
+
+	if ( ( updateCholesky == BT_TRUE ) && ( hessianType != HST_IDENTITY ) )
+	{
+		/* III) RESTORE TRIANGULAR FORM OF R:
+		 *      use row-wise Givens rotations to restore upper triangular form of R */
+		for( i=0; i<nZ-1; ++i )
+		{
+			computeGivens( R[i*NVMAX + i],R[(1+i)*NVMAX + i], R[i*NVMAX + i],R[(1+i)*NVMAX + i],c,s );
+
+			for( j=(1+i); j<nZ-1; ++j ) /* last column of R is thrown away */
+				applyGivens( c,s,R[i*NVMAX + j],R[(1+i)*NVMAX + j], R[i*NVMAX + j],R[(1+i)*NVMAX + j] );
+		}
+		/* last column of R is thrown away */
+		for( i=0; i<nZ; ++i )
+			R[i*NVMAX + nZ-1] = 0.0;
+	}
+
+
+	/* IV) UPDATE INDICES */
+	if ( bounds.moveFreeToFixed( number,B_status ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_ADDBOUND_FAILED );
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	a d d B o u n d _ c h e c k L I
+ */
+returnValue QProblem::addBound_checkLI( int number )
+{
+	int i;
+
+	/* some definitions */
+	int nZ  = getNZ( );
+
+	/* Check if constraint <number> is linearly independent from the
+	   the active ones (<=> is element of null space of Afr). */
+	for( i=0; i<nZ; ++i )
+	{
+		if ( getAbs( Q[number*NVMAX + i] ) > EPS )
+			return RET_LINEARLY_INDEPENDENT;
+	}
+
+	return RET_LINEARLY_DEPENDENT;
+}
+
+
+/*
+ *	a d d B o u n d _ e n s u r e L I
+ */
+returnValue QProblem::addBound_ensureLI( int number, SubjectToStatus B_status )
+{
+	int i, j, ii, jj;
+	int nV  = getNV( );
+	int nFX = getNFX( );
+	int nAC = getNAC( );
+	int nZ  = getNZ( );
+
+
+	/* I) Check if new constraint is linearly independent from the active ones. */
+	returnValue returnvalueCheckLI = addBound_checkLI( number );
+
+	if ( returnvalueCheckLI == RET_LINEARLY_INDEPENDENT )
+		return SUCCESSFUL_RETURN;
+
+
+ 	/* II) NEW BOUND IS LINEARLY DEPENDENT: */
+	/* 1) Determine coefficients of linear combination,
+	 *    cf. M.J. Best. Applied Mathematics and Parallel Computing, chapter:
+	 *    An Algorithm for the Solution of the Parametric Quadratic Programming
+	 *    Problem, pages 57-76. Physica-Verlag, Heidelberg, 1996. */
+	int FR_idx[NVMAX];
+	if ( bounds.getFree( )->getNumberArray( FR_idx ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_ENSURELI_FAILED );
+
+	int FX_idx[NVMAX];
+	if ( bounds.getFixed( )->getNumberArray( FX_idx ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_ENSURELI_FAILED );
+
+	int AC_idx[NCMAX_ALLOC];
+	if ( constraints.getActive( )->getNumberArray( AC_idx ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_ENSURELI_FAILED );
+
+	real_t xiC[NCMAX_ALLOC];
+	real_t xiC_TMP[NCMAX_ALLOC];
+	real_t xiB[NVMAX];
+
+	/* 2) Calculate xiC. */
+	if ( nAC > 0 )
+	{
+		if ( B_status == ST_LOWER )
+		{
+			for( i=0; i<nAC; ++i )
+				xiC_TMP[i] = Q[number*NVMAX + nZ+i];
+		}
+		else
+		{
+			for( i=0; i<nAC; ++i )
+				xiC_TMP[i] = -Q[number*NVMAX + nZ+i];
+		}
+
+		if ( backsolveT( xiC_TMP, BT_TRUE, xiC ) != SUCCESSFUL_RETURN )
+			return THROWERROR( RET_ENSURELI_FAILED_TQ );
+	}
+
+	/* 3) Calculate xiB. */
+	for( i=0; i<nFX; ++i )
+	{
+		ii = FX_idx[i];
+
+		xiB[i] = 0.0;
+		for( j=0; j<nAC; ++j )
+		{
+			jj = AC_idx[j];
+			xiB[i] -= A[jj*NVMAX + ii] * xiC[j];
+		}
+	}
+
+
+	/* III) DETERMINE CONSTRAINT/BOUND TO BE REMOVED. */
+	real_t y_min = INFTY * INFTY;
+	int y_min_number = -1;
+	BooleanType y_min_isBound = BT_FALSE;
+
+	/* 1) Constraints. */
+	for( i=0; i<nAC; ++i )
+	{
+		ii = AC_idx[i];
+
+		if ( constraints.getStatus( ii ) == ST_LOWER )
+		{
+			if ( ( xiC[i] > ZERO ) && ( y[nV+ii] >= 0.0 ) )
+			{
+				if ( y[nV+ii]/xiC[i] < y_min )
+				{
+					y_min = y[nV+ii]/xiC[i];
+					y_min_number = ii;
+				}
+			}
+		}
+		else
+		{
+			if ( ( xiC[i] < -ZERO ) && ( y[nV+ii] <= 0.0 ) )
+			{
+				if ( y[nV+ii]/xiC[i] < y_min )
+				{
+					y_min = y[nV+ii]/xiC[i];
+					y_min_number = ii;
+				}
+			}
+		}
+	}
+
+	/* 2) Bounds. */
+	for( i=0; i<nFX; ++i )
+	{
+		ii = FX_idx[i];
+
+		if ( bounds.getStatus( ii ) == ST_LOWER )
+		{
+			if ( ( xiB[i] > ZERO ) && ( y[ii] >= 0.0 ) )
+			{
+				if ( y[ii]/xiB[i] < y_min )
+				{
+					y_min = y[ii]/xiB[i];
+					y_min_number = ii;
+					y_min_isBound = BT_TRUE;
+				}
+			}
+		}
+		else
+		{
+			if ( ( xiB[i] < -ZERO ) && ( y[ii] <= 0.0 ) )
+			{
+				if ( y[ii]/xiB[i] < y_min )
+				{
+					y_min = y[ii]/xiB[i];
+					y_min_number = ii;
+					y_min_isBound = BT_TRUE;
+				}
+			}
+		}
+	}
+
+	/* setup output preferences */
+	#ifdef PC_DEBUG
+	char messageString[80];
+	VisibilityStatus visibilityStatus;
+
+	if ( printlevel == PL_HIGH )
+		visibilityStatus = VS_VISIBLE;
+	else
+		visibilityStatus = VS_HIDDEN;
+	#endif
+
+
+	/* IV) REMOVE CONSTRAINT/BOUND FOR RESOLVING LINEAR DEPENDENCE: */
+	if ( y_min_number >= 0 )
+	{
+		/* 1) Check for cycling due to infeasibility. */
+		if ( ( cyclingManager.getCyclingStatus( number,BT_TRUE ) == CYC_PREV_REMOVED ) &&
+			 ( cyclingManager.getCyclingStatus( y_min_number,y_min_isBound ) == CYC_PREV_ADDED ) )
+		{
+			infeasible = BT_TRUE;
+
+			return THROWERROR( RET_ENSURELI_FAILED_CYCLING );
+		}
+		else
+		{
+			/* set cycling data */
+			cyclingManager.clearCyclingData( );
+			cyclingManager.setCyclingStatus( number,BT_TRUE, CYC_PREV_ADDED );
+			cyclingManager.setCyclingStatus( y_min_number,y_min_isBound, CYC_PREV_REMOVED );
+		}
+
+
+		/* 2) Update Lagrange multiplier... */
+		for( i=0; i<nAC; ++i )
+		{
+			ii = AC_idx[i];
+			y[nV+ii] -= y_min * xiC[i];
+		}
+		for( i=0; i<nFX; ++i )
+		{
+			ii = FX_idx[i];
+			y[ii] -= y_min * xiB[i];
+		}
+
+		/* ... also for newly active bound ... */
+		if ( B_status == ST_LOWER )
+			y[number] = y_min;
+		else
+			y[number] = -y_min;
+
+		/* ... and for bound to be removed. */
+		if ( y_min_isBound == BT_TRUE )
+		{
+			#ifdef PC_DEBUG
+			sprintf( messageString,"bound no. %d.",y_min_number );
+			getGlobalMessageHandler( )->throwInfo( RET_REMOVE_FROM_ACTIVESET,messageString,__FUNCTION__,__FILE__,__LINE__,visibilityStatus );
+			#endif
+
+			if ( removeBound( y_min_number,BT_TRUE ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_REMOVE_FROM_ACTIVESET_FAILED );
+
+			y[y_min_number] = 0.0;
+		}
+		else
+		{
+			#ifdef PC_DEBUG
+			sprintf( messageString,"constraint no. %d.",y_min_number );
+			getGlobalMessageHandler( )->throwInfo( RET_REMOVE_FROM_ACTIVESET,messageString,__FUNCTION__,__FILE__,__LINE__,visibilityStatus );
+			#endif
+
+			if ( removeConstraint( y_min_number,BT_TRUE ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_REMOVE_FROM_ACTIVESET_FAILED );
+
+			y[nV+y_min_number] = 0.0;
+		}
+	}
+	else
+	{
+		/* no constraint/bound can be removed => QP is infeasible! */
+		infeasible = BT_TRUE;
+
+		return THROWERROR( RET_ENSURELI_FAILED_NOINDEX );
+	}
+
+	return getGlobalMessageHandler( )->throwInfo( RET_LI_RESOLVED,0,__FUNCTION__,__FILE__,__LINE__,VS_HIDDEN );
+}
+
+
+
+/*
+ *	r e m o v e C o n s t r a i n t
+ */
+returnValue QProblem::removeConstraint(	int number,
+										BooleanType updateCholesky
+										)
+{
+	int i, j, ii, jj;
+
+	/* consistency check */
+	if ( ( getStatus( ) == QPS_NOTINITIALISED )    ||
+		 ( getStatus( ) == QPS_AUXILIARYQPSOLVED ) ||
+		 ( getStatus( ) == QPS_HOMOTOPYQPSOLVED )  ||
+ 		 ( getStatus( ) == QPS_SOLVED )            )
+	{
+		return THROWERROR( RET_UNKNOWN_BUG );
+	}
+
+	/* some definitions */
+	int nFR = getNFR( );
+	int nAC = getNAC( );
+	int nZ  = getNZ( );
+
+	int tcol = sizeT - nAC;
+	int number_idx = constraints.getActive( )->getIndex( number );
+
+
+	/* consistency checks */
+	if ( constraints.getStatus( number ) == ST_INACTIVE )
+		return THROWERROR( RET_CONSTRAINT_NOT_ACTIVE );
+
+	if ( ( number_idx < 0 ) || ( number_idx >= nAC ) )
+		return THROWERROR( RET_CONSTRAINT_NOT_ACTIVE );
+
+
+	int FR_idx[NVMAX];
+	if ( bounds.getFree( )->getNumberArray( FR_idx ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_REMOVECONSTRAINT_FAILED );
+
+
+	/* I) REMOVE <number>th ROW FROM T,
+	 *    i.e. shift rows number+1 through nAC  upwards (instead of the actual
+	 *    constraint number its corresponding index within matrix A is used). */
+	if ( number_idx < nAC-1 )
+	{
+		for( i=(number_idx+1); i<nAC; ++i )
+			for( j=(nAC-i-1); j<nAC; ++j )
+				T[(i-1)*NVMAX + tcol+j] = T[i*NVMAX + tcol+j];
+		/* gimmick: write zeros into the last row of T */
+		for( j=0; j<nAC; ++j )
+			T[(nAC-1)*NVMAX + tcol+j] = 0.0;
+
+
+		/* II) RESTORE TRIANGULAR FORM OF T,
+		 *     use column-wise Givens rotations to restore reverse triangular form
+		 *     of T simultanenous change of Q (i.e. Y). */
+		real_t c, s;
+
+		for( j=(nAC-2-number_idx); j>=0; --j )
+		{
+			computeGivens( T[(nAC-2-j)*NVMAX + tcol+1+j],T[(nAC-2-j)*NVMAX + tcol+j], T[(nAC-2-j)*NVMAX + tcol+1+j],T[(nAC-2-j)*NVMAX + tcol+j],c,s );
+
+			for( i=(nAC-j-1); i<(nAC-1); ++i )
+				applyGivens( c,s,T[i*NVMAX + tcol+1+j],T[i*NVMAX + tcol+j], T[i*NVMAX + tcol+1+j],T[i*NVMAX + tcol+j] );
+
+			for( i=0; i<nFR; ++i )
+			{
+				ii = FR_idx[i];
+				applyGivens( c,s,Q[ii*NVMAX + nZ+1+j],Q[ii*NVMAX + nZ+j], Q[ii*NVMAX + nZ+1+j],Q[ii*NVMAX + nZ+j] );
+			}
+		}
+	}
+	else
+	{
+		/* gimmick: write zeros into the last row of T */
+		for( j=0; j<nAC; ++j )
+			T[(nAC-1)*NVMAX + tcol+j] = 0.0;
+	}
+
+
+	if ( ( updateCholesky == BT_TRUE ) && ( hessianType != HST_IDENTITY ) )
+	{
+		/* III) UPDATE CHOLESKY DECOMPOSITION,
+		 *      calculate new additional column (i.e. [r sqrt(rho2)]')
+		 *      of the Cholesky factor R. */
+		real_t Hz[NVMAX];
+		for ( i=0; i<nFR; ++i )
+			Hz[i] = 0.0;
+		real_t rho2 = 0.0;
+
+		/* 1) Calculate Hz = H*z, where z is the new rightmost column of Z
+		 *    (i.e. the old leftmost column of Y).  */
+		for( j=0; j<nFR; ++j )
+		{
+			jj = FR_idx[j];
+			for( i=0; i<nFR; ++i )
+				Hz[i] += H[jj*NVMAX + FR_idx[i]] * Q[jj*NVMAX + nZ];
+		}
+
+		if ( nZ > 0 )
+		{
+			real_t ZHz[NVMAX];
+			for ( i=0; i<nZ; ++i )
+				ZHz[i] = 0.0;
+			real_t r[NVMAX];
+
+			/* 2) Calculate ZHz = Z'*Hz (old Z). */
+			for( j=0; j<nFR; ++j )
+			{
+				jj = FR_idx[j];
+
+				for( i=0; i<nZ; ++i )
+					ZHz[i] += Q[jj*NVMAX + i] * Hz[j];
+			}
+
+			/* 3) Calculate r = R^-T * ZHz. */
+			if ( backsolveR( ZHz,BT_TRUE,r ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_REMOVECONSTRAINT_FAILED );
+
+			/* 4) Calculate rho2 = rho^2 = z'*Hz - r'*r
+			 *    and store r into R. */
+			for( i=0; i<nZ; ++i )
+			{
+				rho2 -= r[i]*r[i];
+				R[i*NVMAX + nZ] = r[i];
+			}
+		}
+
+		for( j=0; j<nFR; ++j )
+			rho2 += Q[FR_idx[j]*NVMAX + nZ] * Hz[j];
+
+		/* 5) Store rho into R. */
+		if ( rho2 > 0.0 )
+			R[nZ*NVMAX + nZ] = sqrt( rho2 );
+		else
+		{
+			hessianType = HST_SEMIDEF;
+			return THROWERROR( RET_HESSIAN_NOT_SPD );
+		}
+	}
+
+	/* IV) UPDATE INDICES */
+	if ( constraints.moveActiveToInactive( number ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_REMOVECONSTRAINT_FAILED );
+
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	r e m o v e B o u n d
+ */
+returnValue QProblem::removeBound(	int number,
+									BooleanType updateCholesky
+									)
+{
+	int i, j, ii, jj;
+
+	/* consistency checks */
+	if ( bounds.getStatus( number ) == ST_INACTIVE )
+		return THROWERROR( RET_BOUND_NOT_ACTIVE );
+
+	if ( ( getStatus( ) == QPS_NOTINITIALISED )    ||
+		 ( getStatus( ) == QPS_AUXILIARYQPSOLVED ) ||
+		 ( getStatus( ) == QPS_HOMOTOPYQPSOLVED )  ||
+ 		 ( getStatus( ) == QPS_SOLVED )            )
+	{
+		return THROWERROR( RET_UNKNOWN_BUG );
+	}
+
+	/* some definitions */
+	int nFR = getNFR( );
+	int nAC = getNAC( );
+	int nZ  = getNZ( );
+
+	int tcol = sizeT - nAC;
+
+
+	/* I) UPDATE INDICES */
+	if ( bounds.moveFixedToFree( number ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_REMOVEBOUND_FAILED );
+
+
+	int FR_idx[NVMAX];
+	if ( bounds.getFree( )->getNumberArray( FR_idx ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_REMOVEBOUND_FAILED );
+
+	/* I) APPEND <nFR+1>th UNITY VECOTR TO Q. */
+	int nnFRp1 = FR_idx[nFR];
+	for( i=0; i<nFR; ++i )
+	{
+		ii = FR_idx[i];
+		Q[ii*NVMAX + nFR] = 0.0;
+		Q[nnFRp1*NVMAX + i] = 0.0;
+	}
+	Q[nnFRp1*NVMAX + nFR] = 1.0;
+
+	if ( nAC > 0 )
+	{
+		/* store new column a in a temporary vector instead of shifting T one column to the left and appending a */
+		int AC_idx[NCMAX_ALLOC];
+		if ( constraints.getActive( )->getNumberArray( AC_idx ) != SUCCESSFUL_RETURN )
+			return THROWERROR( RET_REMOVEBOUND_FAILED );
+
+		real_t tmp[NCMAX_ALLOC];
+		for( i=0; i<nAC; ++i )
+		{
+			ii = AC_idx[i];
+			tmp[i] =  A[ii*NVMAX + number];
+		}
+
+
+		/* II) RESTORE TRIANGULAR FORM OF T,
+		 *     use column-wise Givens rotations to restore reverse triangular form
+		 *     of T = [T A(:,number)], simultanenous change of Q (i.e. Y and Z). */
+		real_t c, s;
+
+		for( j=(nAC-1); j>=0; --j )
+		{
+			computeGivens( tmp[nAC-1-j],T[(nAC-1-j)*NVMAX + tcol+j],T[(nAC-1-j)*NVMAX + tcol+j],tmp[nAC-1-j],c,s );
+
+			for( i=(nAC-j); i<nAC; ++i )
+				applyGivens( c,s,tmp[i],T[i*NVMAX + tcol+j],T[i*NVMAX + tcol+j],tmp[i] );
+
+			for( i=0; i<=nFR; ++i )
+			{
+				ii = FR_idx[i];
+				/* nZ+1+nAC = nFR+1  /  nZ+(1) = nZ+1 */
+				applyGivens( c,s,Q[ii*NVMAX + nZ+1+j],Q[ii*NVMAX + nZ+j],Q[ii*NVMAX + nZ+1+j],Q[ii*NVMAX + nZ+j] );
+			}
+		}
+	}
+
+
+	if ( ( updateCholesky == BT_TRUE ) && ( hessianType != HST_IDENTITY ) )
+	{
+		/* III) UPDATE CHOLESKY DECOMPOSITION,
+		 *      calculate new additional column (i.e. [r sqrt(rho2)]')
+		 *      of the Cholesky factor R: */
+		real_t z2 = Q[nnFRp1*NVMAX + nZ];
+		real_t rho2 = H[nnFRp1*NVMAX + nnFRp1]*z2*z2; /* rho2 = h2*z2*z2 */
+
+		if ( nFR > 0 )
+		{
+			real_t Hz[NVMAX];
+			for( i=0; i<nFR; ++i )
+				Hz[i] = 0.0;
+			/* 1) Calculate R'*r = Zfr'*Hfr*z1 + z2*Zfr'*h1 =: Zfr'*Hz + z2*Zfr'*h1 =: rhs and
+			 *    rho2 = z1'*Hfr*z1 + 2*z2*h1'*z1 + h2*z2^2 - r'*r =: z1'*Hz + 2*z2*h1'*z1 + h2*z2^2 - r'r */
+			for( j=0; j<nFR; ++j )
+			{
+				jj = FR_idx[j];
+				for( i=0; i<nFR; ++i )
+				{
+					ii = FR_idx[i];
+					/*			   H * z1 */
+					Hz[i] += H[jj*NVMAX + ii] * Q[jj*NVMAX + nZ];
+				}
+			}
+
+			if ( nZ > 0 )
+			{
+				real_t r[NVMAX];
+				real_t rhs[NVMAX];
+				for( i=0; i<nZ; ++i )
+					rhs[i] = 0.0;
+
+				/* 2) Calculate rhs. */
+				for( j=0; j<nFR; ++j )
+				{
+					jj = FR_idx[j];
+					for( i=0; i<nZ; ++i )
+										/* Zfr' * ( Hz + z2*h1 ) */
+						rhs[i] += Q[jj*NVMAX + i] * ( Hz[j] + z2 * H[nnFRp1*NVMAX + jj] );
+				}
+
+				/* 3) Calculate r = R^-T * rhs. */
+				if ( backsolveR( rhs,BT_TRUE,BT_TRUE,r ) != SUCCESSFUL_RETURN )
+					return THROWERROR( RET_REMOVEBOUND_FAILED );
+
+				/* 4) Calculate rho2 = rho^2 = z'*Hz - r'*r
+				 *    and store r into R. */
+				for( i=0; i<nZ; ++i )
+				{
+					rho2 -= r[i]*r[i];
+					R[i*NVMAX + nZ] = r[i];
+				}
+			}
+
+			for( j=0; j<nFR; ++j )
+			{
+				jj = FR_idx[j];
+							/* z1' * ( Hz + 2*z2*h1 ) */
+				rho2 += Q[jj*NVMAX + nZ] * ( Hz[j] + 2.0*z2*H[nnFRp1*NVMAX + jj] );
+			}
+		}
+
+
+		/* 5) Store rho into R. */
+		if ( rho2 > 0.0 )
+			R[nZ*NVMAX + nZ] = sqrt( rho2 );
+		else
+		{
+			hessianType = HST_SEMIDEF;
+			return THROWERROR( RET_HESSIAN_NOT_SPD );
+		}
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	b a c k s o l v e R  (CODE DUPLICATE OF QProblemB CLASS!!!)
+ */
+returnValue QProblem::backsolveR(	const real_t* const b, BooleanType transposed,
+									real_t* const a
+									)
+{
+	/* Call standard backsolve procedure (i.e. removingBound == BT_FALSE). */
+	return backsolveR( b,transposed,BT_FALSE,a );
+}
+
+
+/*
+ *	b a c k s o l v e R  (CODE DUPLICATE OF QProblemB CLASS!!!)
+ */
+returnValue QProblem::backsolveR(	const real_t* const b, BooleanType transposed,
+									BooleanType removingBound,
+									real_t* const a
+									)
+{
+	int i, j;
+	int nR = getNZ( );
+
+	real_t sum;
+
+	/* if backsolve is called while removing a bound, reduce nZ by one. */
+	if ( removingBound == BT_TRUE )
+		--nR;
+
+	/* nothing to do */
+	if ( nR <= 0 )
+		return SUCCESSFUL_RETURN;
+
+
+	/* Solve Ra = b, where R might be transposed. */
+	if ( transposed == BT_FALSE )
+	{
+		/* solve Ra = b */
+		for( i=(nR-1); i>=0; --i )
+		{
+			sum = b[i];
+			for( j=(i+1); j<nR; ++j )
+				sum -= R[i*NVMAX + j] * a[j];
+
+			if ( getAbs( R[i*NVMAX + i] ) > ZERO )
+				a[i] = sum / R[i*NVMAX + i];
+			else
+				return THROWERROR( RET_DIV_BY_ZERO );
+		}
+	}
+	else
+	{
+		/* solve R^T*a = b */
+		for( i=0; i<nR; ++i )
+		{
+			sum = b[i];
+
+			for( j=0; j<i; ++j )
+				sum -= R[j*NVMAX + i] * a[j];
+
+			if ( getAbs( R[i*NVMAX + i] ) > ZERO )
+				a[i] = sum / R[i*NVMAX + i];
+			else
+				return THROWERROR( RET_DIV_BY_ZERO );
+		}
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+
+/*
+ *	b a c k s o l v e T
+ */
+returnValue QProblem::backsolveT( const real_t* const b, BooleanType transposed, real_t* const a )
+{
+	int i, j;
+	int nT = getNAC( );
+	int tcol = sizeT - nT;
+
+	real_t sum;
+
+	/* nothing to do */
+	if ( nT <= 0 )
+		return SUCCESSFUL_RETURN;
+
+
+	/* Solve Ta = b, where T might be transposed. */
+	if ( transposed == BT_FALSE )
+	{
+		/* solve Ta = b */
+		for( i=0; i<nT; ++i )
+		{
+			sum = b[i];
+			for( j=0; j<i; ++j )
+				sum -= T[i*NVMAX + sizeT-1-j] * a[nT-1-j];
+
+			if ( getAbs( T[i*NVMAX + sizeT-1-i] ) > ZERO )
+				a[nT-1-i] = sum / T[i*NVMAX + sizeT-1-i];
+			else
+				return THROWERROR( RET_DIV_BY_ZERO );
+		}
+	}
+	else
+	{
+		/* solve T^T*a = b */
+		for( i=0; i<nT; ++i )
+		{
+			sum = b[i];
+			for( j=0; j<i; ++j )
+				sum -= T[(nT-1-j)*NVMAX + tcol+i] * a[nT-1-j];
+
+			if ( getAbs( T[(nT-1-i)*NVMAX + tcol+i] ) > ZERO )
+				a[nT-1-i] = sum / T[(nT-1-i)*NVMAX + tcol+i];
+			else
+				return THROWERROR( RET_DIV_BY_ZERO );
+		}
+	}
+
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	h o t s t a r t _ d e t e r m i n e D a t a S h i f t
+ */
+returnValue QProblem::hotstart_determineDataShift(  const int* const FX_idx, const int* const AC_idx,
+													const real_t* const g_new, const real_t* const lbA_new, const real_t* const ubA_new,
+													const real_t* const lb_new, const real_t* const ub_new,
+													real_t* const delta_g, real_t* const delta_lbA, real_t* const delta_ubA,
+													real_t* const delta_lb, real_t* const delta_ub,
+													BooleanType& Delta_bC_isZero, BooleanType& Delta_bB_isZero
+													)
+{
+	int i, ii;
+	int nC  = getNC( );
+	int nAC = getNAC( );
+
+
+	/* I) DETERMINE DATA SHIFT FOR BOUNDS */
+	QProblemB::hotstart_determineDataShift( FX_idx,g_new,lb_new,ub_new, delta_g,delta_lb,delta_ub, Delta_bB_isZero );
+
+
+	/* II) DETERMINE DATA SHIFT FOR CONSTRAINTS */
+	/* 1) Calculate shift directions. */
+	for( i=0; i<nC; ++i )
+	{
+		/* if lower constraints' bounds do not exist, shift them to -infinity */
+		if ( lbA_new != 0 )
+			delta_lbA[i] = lbA_new[i] - lbA[i];
+		else
+			delta_lbA[i] = -INFTY - lbA[i];
+	}
+
+	for( i=0; i<nC; ++i )
+	{
+		/* if upper constraints' bounds do not exist, shift them to infinity */
+		if ( ubA_new != 0 )
+			delta_ubA[i] = ubA_new[i] - ubA[i];
+		else
+			delta_ubA[i] = INFTY - ubA[i];
+	}
+
+	/* 2) Determine if active constraints' bounds are to be shifted. */
+	Delta_bC_isZero = BT_TRUE;
+
+	for ( i=0; i<nAC; ++i )
+	{
+		ii = AC_idx[i];
+
+		if ( ( getAbs( delta_lbA[ii] ) > EPS ) || ( getAbs( delta_ubA[ii] ) > EPS ) )
+		{
+			Delta_bC_isZero = BT_FALSE;
+			break;
+		}
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	h o t s t a r t _ d e t e r m i n e S t e p D i r e c t i o n
+ */
+returnValue QProblem::hotstart_determineStepDirection(	const int* const FR_idx, const int* const FX_idx, const int* const AC_idx,
+														const real_t* const delta_g, const real_t* const delta_lbA, const real_t* const delta_ubA,
+														const real_t* const delta_lb, const real_t* const delta_ub,
+														BooleanType Delta_bC_isZero, BooleanType Delta_bB_isZero,
+														real_t* const delta_xFX, real_t* const delta_xFR,
+														real_t* const delta_yAC, real_t* const delta_yFX
+														)
+{
+	int i, j, ii, jj;
+	int nFR = getNFR( );
+	int nFX = getNFX( );
+	int nAC = getNAC( );
+	int nZ  = getNZ( );
+
+	/* initialise auxiliary vectors */
+	real_t HMX_delta_xFX[NVMAX];
+	real_t YFR_delta_xFRy[NVMAX];
+	real_t ZFR_delta_xFRz[NVMAX];
+	real_t HFR_YFR_delta_xFRy[NVMAX];
+	for( i=0; i<nFR; ++i )
+	{
+		delta_xFR[i] = 0.0;
+		HMX_delta_xFX[i] = 0.0;
+		YFR_delta_xFRy[i] = 0.0;
+		ZFR_delta_xFRz[i] = 0.0;
+		HFR_YFR_delta_xFRy[i] = 0.0;
+	}
+
+	real_t delta_xFRy[NCMAX_ALLOC];
+	real_t delta_xFRz[NVMAX];
+	for( i=0; i<nZ; ++i )
+		delta_xFRz[i] = 0.0;
+
+
+	/* I) DETERMINE delta_xFX */
+	if ( nFX > 0 )
+	{
+		for( i=0; i<nFX; ++i )
+		{
+			ii = FX_idx[i];
+
+			if ( bounds.getStatus( ii ) == ST_LOWER )
+				delta_xFX[i] = delta_lb[ii];
+			else
+				delta_xFX[i] = delta_ub[ii];
+		}
+	}
+
+	/* II) DETERMINE delta_xFR */
+	if ( nFR > 0 )
+	{
+		/* 1) Determine delta_xFRy. */
+		if ( nAC > 0 )
+		{
+			if ( ( Delta_bC_isZero == BT_TRUE ) && ( Delta_bB_isZero == BT_TRUE ) )
+			{
+				for( i=0; i<nAC; ++i )
+					delta_xFRy[i] = 0.0;
+
+				for( i=0; i<nFR; ++i )
+					delta_xFR[i] = 0.0;
+			}
+			else
+			{
+				/* auxillary variable */
+				real_t delta_xFRy_TMP[NCMAX_ALLOC];
+
+				for( i=0; i<nAC; ++i )
+				{
+					ii = AC_idx[i];
+
+					if ( constraints.getStatus( ii ) == ST_LOWER )
+						delta_xFRy_TMP[i] = delta_lbA[ii];
+					else
+						delta_xFRy_TMP[i] = delta_ubA[ii];
+
+					if ( Delta_bB_isZero == BT_FALSE )
+					{
+						for( j=0; j<nFX; ++j )
+						{
+							jj = FX_idx[j];
+							delta_xFRy_TMP[i] -= A[ii*NVMAX + jj] * delta_xFX[j];
+						}
+					}
+				}
+
+				if ( backsolveT( delta_xFRy_TMP, BT_FALSE, delta_xFRy ) != SUCCESSFUL_RETURN )
+					return THROWERROR( RET_STEPDIRECTION_FAILED_TQ );
+
+				for( i=0; i<nFR; ++i )
+				{
+					ii = FR_idx[i];
+					for( j=0; j<nAC; ++j )
+						YFR_delta_xFRy[i] += Q[ii*NVMAX + nZ+j] * delta_xFRy[j];
+
+					/* delta_xFR = YFR*delta_xFRy (+ ZFR*delta_xFRz) */
+					delta_xFR[i] = YFR_delta_xFRy[i];
+				}
+			}
+		}
+
+		/* 2) Determine delta_xFRz. */
+		if ( hessianType == HST_IDENTITY )
+		{
+			for( j=0; j<nFR; ++j )
+			{
+				jj = FR_idx[j];
+				for( i=0; i<nZ; ++i )
+					delta_xFRz[i] -= Q[jj*NVMAX + i] * delta_g[jj];
+			}
+
+			if ( nZ > 0 )
+			{
+				for( i=0; i<nFR; ++i )
+				{
+					ii = FR_idx[i];
+					for( j=0; j<nZ; ++j )
+						ZFR_delta_xFRz[i] += Q[ii*NVMAX + j] * delta_xFRz[j];
+
+					delta_xFR[i] += ZFR_delta_xFRz[i];
+				}
+			}
+		}
+		else
+		{
+			if ( Delta_bB_isZero == BT_FALSE )
+			{
+				for( i=0; i<nFR; ++i )
+				{
+					ii = FR_idx[i];
+					for( j=0; j<nFX; ++j )
+					{
+						jj = FX_idx[j];
+						HMX_delta_xFX[i] += H[ii*NVMAX + jj] * delta_xFX[j];
+					}
+				}
+			}
+
+			if ( nAC > 0 )
+			{
+				if ( ( Delta_bC_isZero == BT_FALSE ) || ( Delta_bB_isZero == BT_FALSE ) )
+				{
+					for( i=0; i<nFR; ++i )
+					{
+						ii = FR_idx[i];
+						for( j=0; j<nFR; ++j )
+						{
+							jj = FR_idx[j];
+							HFR_YFR_delta_xFRy[i] += H[ii*NVMAX + jj] * YFR_delta_xFRy[j];
+						}
+					}
+				}
+			}
+
+
+			if ( nZ > 0 )
+			{
+				/* auxiliary variable */
+				real_t delta_xFRz_TMP[NVMAX];
+				real_t delta_xFRz_RHS[NVMAX];
+
+
+				if ( ( nAC > 0 ) && ( nFX > 0 ) && ( Delta_bB_isZero == BT_FALSE ) )
+				{
+					for( j=0; j<nFR; ++j )
+					{
+						jj = FR_idx[j];
+						delta_xFRz_RHS[j] = delta_g[jj] + HFR_YFR_delta_xFRy[j] + HMX_delta_xFX[j];
+					}
+				}
+				else
+				{
+					if ( ( nAC == 0 ) && ( Delta_bB_isZero == BT_TRUE ) )
+					{
+						for( j=0; j<nFR; ++j )
+						{
+							jj = FR_idx[j];
+							delta_xFRz_RHS[j] = delta_g[jj];
+						}
+					}
+					else
+					{
+						if ( nAC > 0 ) /* => Delta_bB_isZero == BT_TRUE, as BT_FALSE would imply nFX>0 */
+						{
+							for( j=0; j<nFR; ++j )
+							{
+								jj = FR_idx[j];
+								delta_xFRz_RHS[j] = delta_g[jj] + HFR_YFR_delta_xFRy[j];
+							}
+						}
+						else /* Delta_bB_isZero == BT_FALSE, as nAC==0 */
+						{
+							for( j=0; j<nFR; ++j )
+							{
+								jj = FR_idx[j];
+								delta_xFRz_RHS[j] = delta_g[jj] + HMX_delta_xFX[j];
+							}
+						}
+					}
+				}
+
+				for( j=0; j<nFR; ++j )
+				{
+					jj = FR_idx[j];
+					for( i=0; i<nZ; ++i )
+						delta_xFRz[i] -= Q[jj*NVMAX + i] * delta_xFRz_RHS[j];
+				}
+
+
+				if ( backsolveR( delta_xFRz,BT_TRUE,delta_xFRz_TMP ) != SUCCESSFUL_RETURN )
+					return THROWERROR( RET_STEPDIRECTION_FAILED_CHOLESKY );
+
+				if ( backsolveR( delta_xFRz_TMP,BT_FALSE,delta_xFRz ) != SUCCESSFUL_RETURN )
+					return THROWERROR( RET_STEPDIRECTION_FAILED_CHOLESKY );
+
+
+				for( i=0; i<nFR; ++i )
+				{
+					ii = FR_idx[i];
+					for( j=0; j<nZ; ++j )
+						ZFR_delta_xFRz[i] += Q[ii*NVMAX + j] * delta_xFRz[j];
+
+					delta_xFR[i] += ZFR_delta_xFRz[i];
+				}
+			}
+		}
+	}
+
+	/* III) DETERMINE delta_yAC */
+	if ( nAC > 0 ) /* => ( nFR = nZ + nAC > 0 ) */
+	{
+		/* auxiliary variables */
+		real_t delta_yAC_TMP[NCMAX_ALLOC];
+		for( i=0; i<nAC; ++i )
+			delta_yAC_TMP[i] = 0.0;
+		real_t delta_yAC_RHS[NVMAX];
+		for( i=0; i<nFR; ++i )
+			delta_yAC_RHS[i] = 0.0;
+
+		if ( hessianType == HST_IDENTITY )
+		{
+			/* delta_yAC = (T')^-1 * ( Yfr*delta_gFR + delta_xFRy ) */
+			for( j=0; j<nAC; ++j )
+			{
+				for( i=0; i<nFR; ++i )
+				{
+					ii = FR_idx[i];
+					delta_yAC_TMP[j] += Q[ii*NVMAX + nZ+j] * delta_g[ii];
+				}
+
+				delta_yAC_TMP[j] += delta_xFRy[j];
+			}
+		}
+		else
+		{
+			if ( ( Delta_bC_isZero == BT_TRUE ) && ( Delta_bB_isZero == BT_TRUE ) )
+			{
+				for( i=0; i<nFR; ++i )
+				{
+					ii = FR_idx[i];
+					delta_yAC_RHS[i] = delta_g[ii];
+				}
+			}
+			else
+			{
+				for( i=0; i<nFR; ++i )
+				{
+					ii = FR_idx[i];
+					delta_yAC_RHS[i] = HFR_YFR_delta_xFRy[i] + delta_g[ii];
+				}
+			}
+
+			if ( nZ > 0 )
+			{
+				for( i=0; i<nFR; ++i )
+				{
+					ii = FR_idx[i];
+					for( j=0; j<nFR; ++j )
+					{
+						jj = FR_idx[j];
+						delta_yAC_RHS[i] += H[ii*NVMAX + jj] * ZFR_delta_xFRz[j];
+					}
+				}
+			}
+
+			if ( nFX > 0 )
+			{
+				if ( Delta_bB_isZero == BT_FALSE )
+				{
+					for( i=0; i<nFR; ++i )
+						delta_yAC_RHS[i] += HMX_delta_xFX[i];
+				}
+			}
+
+			for( i=0; i<nAC; ++i)
+			{
+				for( j=0; j<nFR; ++j )
+				{
+					jj = FR_idx[j];
+					delta_yAC_TMP[i] += Q[jj*NVMAX + nZ+i] * delta_yAC_RHS[j];
+				}
+			}
+		}
+
+		if ( backsolveT( delta_yAC_TMP,BT_TRUE,delta_yAC ) != SUCCESSFUL_RETURN )
+			return THROWERROR( RET_STEPDIRECTION_FAILED_TQ );
+	}
+
+
+	/* IV) DETERMINE delta_yFX */
+	if ( nFX > 0 )
+	{
+		for( i=0; i<nFX; ++i )
+		{
+			ii = FX_idx[i];
+
+			delta_yFX[i] = delta_g[ii];
+
+			for( j=0; j<nAC; ++j )
+			{
+				jj = AC_idx[j];
+				delta_yFX[i] -= A[jj*NVMAX + ii] * delta_yAC[j];
+			}
+
+			if ( hessianType == HST_IDENTITY )
+			{
+				delta_yFX[i] += delta_xFX[i];
+			}
+			else
+			{
+				for( j=0; j<nFR; ++j )
+				{
+					jj = FR_idx[j];
+					delta_yFX[i] += H[ii*NVMAX + jj] * delta_xFR[j];
+				}
+
+				if ( Delta_bB_isZero == BT_FALSE )
+				{
+					for( j=0; j<nFX; ++j )
+					{
+						jj = FX_idx[j];
+						delta_yFX[i] += H[ii*NVMAX + jj] * delta_xFX[j];
+					}
+				}
+			}
+		}
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	h o t s t a r t _ d e t e r m i n e S t e p L e n g t h
+ */
+returnValue QProblem::hotstart_determineStepLength(	const int* const FR_idx, const int* const FX_idx, const int* const AC_idx, const int* const IAC_idx,
+													const real_t* const delta_lbA, const real_t* const delta_ubA,
+													const real_t* const delta_lb, const real_t* const delta_ub,
+													const real_t* const delta_xFX, const real_t* const delta_xFR,
+													const real_t* const delta_yAC, const real_t* const delta_yFX,
+													real_t* const delta_Ax, int& BC_idx, SubjectToStatus& BC_status, BooleanType& BC_isBound
+													)
+{
+	int i, j, ii, jj;
+	int nV  = getNV( );
+	int nC  = getNC( );
+	int nFR = getNFR( );
+	int nFX = getNFX( );
+	int nAC = getNAC( );
+	int nIAC = getNIAC( );
+
+	/* initialise maximum steplength array */
+	real_t maxStepLength[2*(NVMAX+NCMAX_ALLOC)];
+	for ( i=0; i<2*(nV+nC); ++i )
+		maxStepLength[i] = 1.0;
+
+
+	/* I) DETERMINE MAXIMUM DUAL STEPLENGTH: */
+	/* 1) Ensure that active dual constraints' bounds remain valid
+	 *    (ignoring inequality constraints).  */
+	for( i=0; i<nAC; ++i )
+	{
+		ii = AC_idx[i];
+
+		if ( constraints.getType( ii ) != ST_EQUALITY )
+		{
+			if ( constraints.getStatus( ii ) == ST_LOWER )
+			{
+				/* active lower constraints' bounds */
+				if ( delta_yAC[i] < -ZERO )
+				{
+					if ( y[nV+ii] > 0.0 )
+						maxStepLength[nV+ii] = y[nV+ii] / ( -delta_yAC[i] );
+					else
+						maxStepLength[nV+ii] = 0.0;
+				}
+			}
+			else
+			{
+				/* active upper constraints' bounds */
+				if ( delta_yAC[i] > ZERO )
+				{
+					if ( y[nV+ii] < 0.0 )
+						maxStepLength[nV+ii] = y[nV+ii] / ( -delta_yAC[i] );
+					else
+						maxStepLength[nV+ii] = 0.0;
+				}
+			}
+		}
+	}
+
+	/* 2) Ensure that active dual bounds remain valid
+	 *    (ignoring implicitly fixed variables). */
+	for( i=0; i<nFX; ++i )
+	{
+		ii = FX_idx[i];
+
+		if ( bounds.getType( ii ) != ST_EQUALITY )
+		{
+			if ( bounds.getStatus( ii ) == ST_LOWER )
+			{
+				/* active lower bounds */
+				if ( delta_yFX[i] < -ZERO )
+				{
+					if ( y[ii] > 0.0 )
+						maxStepLength[ii] = y[ii] / ( -delta_yFX[i] );
+					else
+						maxStepLength[ii] = 0.0;
+				}
+			}
+			else
+			{
+				/* active upper bounds */
+				if ( delta_yFX[i] > ZERO )
+				{
+					if ( y[ii] < 0.0 )
+						maxStepLength[ii] = y[ii] / ( -delta_yFX[i] );
+					else
+						maxStepLength[ii] = 0.0;
+				}
+			}
+		}
+	}
+
+
+	/* II) DETERMINE MAXIMUM PRIMAL STEPLENGTH */
+	/* 1) Ensure that inactive constraints' bounds remain valid
+	 *    (ignoring unbounded constraints). */
+	real_t delta_x[NVMAX];
+	for( j=0; j<nFR; ++j )
+	{
+		jj = FR_idx[j];
+		delta_x[jj] = delta_xFR[j];
+	}
+	for( j=0; j<nFX; ++j )
+	{
+		jj = FX_idx[j];
+		delta_x[jj] = delta_xFX[j];
+	}
+
+	for( i=0; i<nIAC; ++i )
+	{
+		ii = IAC_idx[i];
+
+		if ( constraints.getType( ii ) != ST_UNBOUNDED )
+		{
+			delta_Ax[ii] = 0.0;
+			for( j=0; j<nV; ++j )
+				delta_Ax[ii] += A[ii*NVMAX + j] * delta_x[j]; // POSSIBLE SPEEDUP!
+
+			/* inactive lower constraints' bounds */
+			if ( constraints.isNoLower( ) == BT_FALSE )
+			{
+				if ( delta_lbA[ii] > delta_Ax[ii] )
+				{
+					if ( Ax[ii] > lbA[ii] )
+						maxStepLength[nV+ii] = ( Ax[ii] - lbA[ii] ) / ( delta_lbA[ii] - delta_Ax[ii] );
+					else
+						maxStepLength[nV+ii] = 0.0;
+				}
+			}
+
+			/* inactive upper constraints' bounds */
+			if ( constraints.isNoUpper( ) == BT_FALSE )
+			{
+				if ( delta_ubA[ii] < delta_Ax[ii] )
+				{
+					if ( Ax[ii] < ubA[ii] )
+						maxStepLength[nV+nC+nV+ii] = ( Ax[ii] - ubA[ii] ) / ( delta_ubA[ii] - delta_Ax[ii] );
+					else
+						maxStepLength[nV+nC+nV+ii] = 0.0;
+				}
+			}
+		}
+	}
+
+
+	/* 2) Ensure that inactive bounds remain valid
+	 *    (ignoring unbounded variables). */
+	/* inactive lower bounds */
+	if ( bounds.isNoLower( ) == BT_FALSE )
+	{
+		for( i=0; i<nFR; ++i )
+		{
+			ii = FR_idx[i];
+			if ( bounds.getType( ii ) != ST_UNBOUNDED )
+				if ( delta_lb[ii] > delta_xFR[i] )
+				{
+					if ( x[ii] > lb[ii] )
+						maxStepLength[ii] = ( x[ii] - lb[ii] ) / ( delta_lb[ii] - delta_xFR[i] );
+					else
+						maxStepLength[ii] = 0.0;
+				}
+		}
+	}
+
+	/* inactive upper bounds */
+	if ( bounds.isNoUpper( ) == BT_FALSE )
+	{
+		for( i=0; i<nFR; ++i )
+		{
+			ii = FR_idx[i];
+			if ( bounds.getType( ii ) != ST_UNBOUNDED )
+				if ( delta_ub[ii] < delta_xFR[i] )
+				{
+					if ( x[ii] < ub[ii] )
+						maxStepLength[nV+nC+ii] = ( x[ii] - ub[ii] ) / ( delta_ub[ii] - delta_xFR[i] );
+					else
+						maxStepLength[nV+nC+ii] = 0.0;
+				}
+		}
+	}
+
+
+	/* III) DETERMINE MAXIMUM HOMOTOPY STEPLENGTH */
+	real_t tau_new = 1.0;
+
+	BC_idx = 0;
+	BC_status = ST_UNDEFINED;
+	BC_isBound = BT_FALSE;
+
+	for ( i=0; i<nV; ++i )
+	{
+		/* 1) Consider lower/dual blocking bounds. */
+		if ( maxStepLength[i] < tau_new )
+		{
+			tau_new = maxStepLength[i];
+			BC_idx = i;
+			BC_isBound = BT_TRUE;
+			if ( bounds.getStatus( i ) == ST_INACTIVE ) /* inactive? */
+				BC_status = ST_LOWER;
+			else
+				BC_status = ST_INACTIVE;
+		}
+
+		/* 2) Consider upper blocking bounds. */
+		if ( maxStepLength[nV+nC+i] < tau_new )
+		{
+			tau_new = maxStepLength[nV+nC+i];
+			BC_idx = i;
+			BC_isBound = BT_TRUE;
+			BC_status = ST_UPPER;
+		}
+	}
+
+	for ( i=nV; i<nV+nC; ++i )
+	{
+		/* 3) Consider lower/dual blocking constraints. */
+		if ( maxStepLength[i] < tau_new )
+		{
+			tau_new = maxStepLength[i];
+			BC_idx = i-nV;
+			BC_isBound = BT_FALSE;
+			if ( constraints.getStatus( i-nV ) == ST_INACTIVE ) /* inactive? */
+				BC_status = ST_LOWER;
+			else
+				BC_status = ST_INACTIVE;
+		}
+
+		/* 4) Consider upper blocking constraints. */
+		if ( maxStepLength[nV+nC+i] < tau_new )
+		{
+			tau_new = maxStepLength[nV+nC+i];
+			BC_idx = i-nV;
+			BC_isBound = BT_FALSE;
+			BC_status = ST_UPPER;
+		}
+	}
+
+
+	/* IV) CLEAR CYCLING DATA
+	 *     if a positive step can be taken */
+	if ( tau_new > EPS )
+		cyclingManager.clearCyclingData( );
+
+
+	/* V) SET MAXIMUM HOMOTOPY STEPLENGTH */
+	tau = tau_new;
+
+	#ifdef PC_DEBUG
+	if ( printlevel == PL_HIGH )
+	{
+
+	 	char messageString[80];
+
+		if ( BC_status == ST_UNDEFINED )
+			sprintf( messageString,"Stepsize is %.6e!",tau );
+		else
+			sprintf( messageString,"Stepsize is %.6e! (BC_idx = %d, BC_isBound = %d, BC_status = %d)",tau,BC_idx,BC_isBound,BC_status );
+
+		getGlobalMessageHandler( )->throwInfo( RET_STEPSIZE_NONPOSITIVE,messageString,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE );
+	}
+	#endif
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	h o t s t a r t _ p e r f o r m S t e p
+ */
+returnValue QProblem::hotstart_performStep(	const int* const FR_idx, const int* const FX_idx, const int* const AC_idx, const int* const IAC_idx,
+											const real_t* const delta_g, const real_t* const delta_lbA, const real_t* const delta_ubA,
+											const real_t* const delta_lb, const real_t* const delta_ub,
+											const real_t* const delta_xFX, const real_t* const delta_xFR,
+											const real_t* const delta_yAC, const real_t* const delta_yFX,
+											const real_t* const delta_Ax, int BC_idx, SubjectToStatus BC_status, BooleanType BC_isBound
+											)
+{
+	int i, j, ii;
+	int nV  = getNV( );
+	int nC  = getNC( );
+	int nFR = getNFR( );
+	int nFX = getNFX( );
+	int nAC = getNAC( );
+	int nIAC = getNIAC( );
+
+
+	/* I) CHECK (CONSTRAINTS') BOUNDS' CONSISTENCY */
+	if ( areBoundsConsistent( delta_lb,delta_ub,delta_lbA,delta_ubA ) == BT_FALSE )
+	{
+		infeasible = BT_TRUE;
+		tau = 0.0;
+
+		return THROWERROR( RET_QP_INFEASIBLE );
+	}
+
+
+	/* II) GO TO ACTIVE SET CHANGE */
+	if ( tau > ZERO )
+	{
+		/* 1) Perform step in primal und dual space... */
+		for( i=0; i<nFR; ++i )
+		{
+			ii = FR_idx[i];
+			x[ii] += tau*delta_xFR[i];
+		}
+
+		for( i=0; i<nFX; ++i )
+		{
+			ii = FX_idx[i];
+			x[ii] += tau*delta_xFX[i];
+			y[ii] += tau*delta_yFX[i];
+		}
+
+		for( i=0; i<nAC; ++i )
+		{
+			ii = AC_idx[i];
+			y[nV+ii] += tau*delta_yAC[i];
+		}
+
+		/* ... also for Ax. */
+		for( i=0; i<nIAC; ++i )
+		{
+			ii = IAC_idx[i];
+			if ( constraints.getType( ii ) != ST_UNBOUNDED )
+				Ax[ii] += tau*delta_Ax[ii];
+		}
+		for( i=0; i<nAC; ++i )
+		{
+			ii = AC_idx[i];
+
+			Ax[ii] = 0.0;
+			for( j=0; j<nV; ++j )
+				Ax[ii] += A[ii*NVMAX + j] * x[j];
+		}
+
+		/* 2) Shift QP data. */
+		for( i=0; i<nV; ++i )
+		{
+			g[i]  += tau*delta_g[i];
+			lb[i] += tau*delta_lb[i];
+			ub[i] += tau*delta_ub[i];
+		}
+
+		for( i=0; i<nC; ++i )
+		{
+			lbA[i] += tau*delta_lbA[i];
+			ubA[i] += tau*delta_ubA[i];
+		}
+	}
+	else
+	{
+		/* print a stepsize warning if stepsize is zero */
+		#ifdef PC_DEBUG
+		char messageString[80];
+		sprintf( messageString,"Stepsize is %.6e",tau );
+		getGlobalMessageHandler( )->throwWarning( RET_STEPSIZE,messageString,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE );
+		#endif
+	}
+
+
+	/* setup output preferences */
+	#ifdef PC_DEBUG
+	char messageString[80];
+	VisibilityStatus visibilityStatus;
+
+	if ( printlevel == PL_HIGH )
+		visibilityStatus = VS_VISIBLE;
+	else
+		visibilityStatus = VS_HIDDEN;
+	#endif
+
+	
+	/* III) UPDATE ACTIVE SET */
+	switch ( BC_status )
+	{
+		/* Optimal solution found as no working set change detected. */
+		case ST_UNDEFINED:
+			return RET_OPTIMAL_SOLUTION_FOUND;
+
+
+		/* Remove one variable from active set. */
+		case ST_INACTIVE:
+			if ( BC_isBound == BT_TRUE )
+			{
+				#ifdef PC_DEBUG
+				sprintf( messageString,"bound no. %d.", BC_idx );
+				getGlobalMessageHandler( )->throwInfo( RET_REMOVE_FROM_ACTIVESET,messageString,__FUNCTION__,__FILE__,__LINE__,visibilityStatus );
+				#endif
+
+				if ( removeBound( BC_idx,BT_TRUE ) != SUCCESSFUL_RETURN )
+					return THROWERROR( RET_REMOVE_FROM_ACTIVESET_FAILED );
+
+				y[BC_idx] = 0.0;
+			}
+			else
+			{
+				#ifdef PC_DEBUG
+				sprintf( messageString,"constraint no. %d.", BC_idx );
+				getGlobalMessageHandler( )->throwInfo( RET_REMOVE_FROM_ACTIVESET,messageString,__FUNCTION__,__FILE__,__LINE__,visibilityStatus );
+				#endif
+
+				if ( removeConstraint( BC_idx,BT_TRUE ) != SUCCESSFUL_RETURN )
+					return THROWERROR( RET_REMOVE_FROM_ACTIVESET_FAILED );
+
+				y[nV+BC_idx] = 0.0;
+			}
+			break;
+
+
+		/* Add one variable to active set. */
+		default:
+			if ( BC_isBound == BT_TRUE )
+			{
+				#ifdef PC_DEBUG
+				if ( BC_status == ST_LOWER )
+					sprintf( messageString,"lower bound no. %d.", BC_idx );
+				else
+					sprintf( messageString,"upper bound no. %d.", BC_idx );
+				getGlobalMessageHandler( )->throwInfo( RET_ADD_TO_ACTIVESET,messageString,__FUNCTION__,__FILE__,__LINE__,visibilityStatus );
+				#endif
+
+				if ( addBound( BC_idx,BC_status,BT_TRUE ) != SUCCESSFUL_RETURN )
+					return THROWERROR( RET_ADD_TO_ACTIVESET_FAILED );
+			}
+			else
+			{
+				#ifdef PC_DEBUG
+				if ( BC_status == ST_LOWER )
+					sprintf( messageString,"lower constraint's bound no. %d.", BC_idx );
+				else
+					sprintf( messageString,"upper constraint's bound no. %d.", BC_idx );
+				getGlobalMessageHandler( )->throwInfo( RET_ADD_TO_ACTIVESET,messageString,__FUNCTION__,__FILE__,__LINE__,visibilityStatus );
+				#endif
+
+				if ( addConstraint( BC_idx,BC_status,BT_TRUE ) != SUCCESSFUL_RETURN )
+					return THROWERROR( RET_ADD_TO_ACTIVESET_FAILED );
+			}
+			break;
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	a r e B o u n d s C o n s i s t e n t
+ */
+BooleanType QProblem::areBoundsConsistent(	const real_t* const delta_lb, const real_t* const delta_ub,
+											const real_t* const delta_lbA, const real_t* const delta_ubA
+											) const
+{
+	int i;
+
+	/* 1) Check bounds' consistency. */
+	if ( QProblemB::areBoundsConsistent( delta_lb,delta_ub ) == BT_FALSE )
+		return BT_FALSE;
+
+	/* 2) Check constraints' consistency, i.e.
+	 *    check if delta_lb[i] is greater than delta_ub[i]
+	 *    for a component i whose bounds are already (numerically) equal. */
+	for( i=0; i<getNC( ); ++i )
+		if ( ( lbA[i] > ubA[i] - BOUNDTOL ) && ( delta_lbA[i] > delta_ubA[i] + EPS ) )
+			return BT_FALSE;
+
+	return BT_TRUE;
+}
+
+
+/*
+ *	s e t u p Q P d a t a
+ */
+returnValue QProblem::setupQPdata(	const real_t* const _H, const real_t* const _R, const real_t* const _g, const real_t* const _A,
+									const real_t* const _lb, const real_t* const _ub,
+									const real_t* const _lbA, const real_t* const _ubA
+									)
+{
+	int i, j;
+	int nV = getNV( );
+	int nC = getNC( );
+
+
+	/* 1) Load Hessian matrix as well as lower and upper bounds vectors. */
+	if (QProblemB::setupQPdata(_H, _R, _g, _lb, _ub) != SUCCESSFUL_RETURN)
+		return THROWERROR( RET_INVALID_ARGUMENTS );
+
+	/* 2) Load constraint matrix. */
+	if ( ( nC > 0 ) && ( _A == 0 ) )
+		return THROWERROR( RET_INVALID_ARGUMENTS );
+
+	if ( nC > 0 )
+	{
+		for( i=0; i<nC; ++i )
+			for( j=0; j<nV; ++j )
+				A[i*NVMAX + j] = _A[i*nV + j];
+
+		/* 3) Setup lower constraints' bounds vector. */
+		if ( _lbA != 0 )
+		{
+			for( i=0; i<nC; ++i )
+				lbA[i] = _lbA[i];
+		}
+		else
+		{
+			/* if no lower constraints' bounds are specified, set them to -infinity */
+			for( i=0; i<nC; ++i )
+				lbA[i] = -INFTY;
+		}
+
+		/* 4) Setup upper constraints' bounds vector. */
+		if ( _ubA != 0 )
+		{
+			for( i=0; i<nC; ++i )
+				ubA[i] = _ubA[i];
+		}
+		else
+		{
+			/* if no upper constraints' bounds are specified, set them to infinity */
+			for( i=0; i<nC; ++i )
+				ubA[i] = INFTY;
+		}
+	}
+
+// 	printmatrix2( "A",A,10,20 );
+	
+// 	printmatrix2( "lbA",lbA,1,nC );
+// 	printmatrix2( "ubA",ubA,1,nC );
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+
+#ifdef PC_DEBUG  /* Define print functions only for debugging! */
+
+/*
+ *	p r i n t I t e r a t i o n
+ */
+returnValue QProblem::printIteration( 	int iteration,
+										int BC_idx,	SubjectToStatus BC_status, BooleanType BC_isBound
+		  								)
+{
+	char myPrintfString[160];
+
+	/* consistency check */
+	if ( iteration < 0 )
+		return THROWERROR( RET_INVALID_ARGUMENTS );
+
+	/* nothing to do */
+	if ( printlevel != PL_MEDIUM )
+		return SUCCESSFUL_RETURN;
+
+
+	/* 1) Print header at first iteration. */
+ 	if ( iteration == 0 )
+	{
+		sprintf( myPrintfString,"\n##############  qpOASES  --  QP NO.%4.1d  ###############\n", count );
+		myPrintf( myPrintfString );
+
+		sprintf( myPrintfString,"  Iter  |  StepLength   |     Info      |  nFX  |  nAC  \n" );
+		myPrintf( myPrintfString );
+	}
+
+	/* 2) Print iteration line. */
+	if ( BC_status == ST_UNDEFINED )
+	{
+		sprintf( myPrintfString,"  %4.1d  |  %1.5e  |   QP SOLVED   | %4.1d  | %4.1d  \n", iteration,tau,getNFX( ),getNAC( ) );
+		myPrintf( myPrintfString );
+	}
+	else
+	{
+		char info[8];
+
+		if ( BC_status == ST_INACTIVE )
+			sprintf( info,"REM " );
+		else
+			sprintf( info,"ADD " );
+
+		if ( BC_isBound == BT_TRUE )
+			sprintf( &(info[4]),"BND" );
+		else
+			sprintf( &(info[4]),"CON" );
+
+		sprintf( myPrintfString,"  %4.1d  |  %1.5e  |  %s%4.1d  | %4.1d  | %4.1d  \n", iteration,tau,info,BC_idx,getNFX( ),getNAC( ) );
+		myPrintf( myPrintfString );
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	p r i n t I t e r a t i o n
+ */
+returnValue QProblem::printIteration( 	int iteration,
+										int BC_idx,	SubjectToStatus BC_status
+		  								)
+{
+	return printIteration( iteration,BC_idx,BC_status,BT_TRUE );
+}
+
+#endif  /* PC_DEBUG */
+
+
+
+/*
+ *	c h e c k K K T c o n d i t i o n s
+ */
+returnValue QProblem::checkKKTconditions( )
+{
+	#ifdef __PERFORM_KKT_TEST__
+
+	int i, j, jj;
+	int nV  = getNV( );
+	int nC  = getNC( );
+	int nAC = getNAC( );
+
+	real_t tmp;
+	real_t maxKKTviolation = 0.0;
+
+	int AC_idx[NCMAX_ALLOC];
+	constraints.getActive( )->getNumberArray( AC_idx );
+
+	/* 1) check for Hx + g - [yFX yAC]*[Id A]' = 0. */
+	for( i=0; i<nV; ++i )
+	{
+		tmp = g[i];
+
+		for( j=0; j<nV; ++j )
+			tmp += H[i*NVMAX + j] * x[j];
+
+		tmp -= y[i];
+
+		/* Only sum over active constraints as y is zero for all inactive ones. */
+		for( j=0; j<nAC; ++j )
+		{
+			jj = AC_idx[j];
+			tmp -= A[jj*NVMAX + i] * y[nV+jj];
+		}
+
+		if ( getAbs( tmp ) > maxKKTviolation )
+			maxKKTviolation = getAbs( tmp );
+	}
+
+	/* 2) Check for [lb lbA] <= [Id A]*x <= [ub ubA]. */
+	/* lbA <= Ax <= ubA */
+	for( i=0; i<nC; ++i )
+	{
+		if ( lbA[i] - Ax[i] > maxKKTviolation )
+			maxKKTviolation = lbA[i] - Ax[i];
+
+		if ( Ax[i] - ubA[i] > maxKKTviolation )
+			maxKKTviolation = Ax[i] - ubA[i];
+	}
+
+	/* lb <= x <= ub */
+	for( i=0; i<nV; ++i )
+	{
+		if ( lb[i] - x[i] > maxKKTviolation )
+			maxKKTviolation = lb[i] - x[i];
+
+		if ( x[i] - ub[i] > maxKKTviolation )
+			maxKKTviolation = x[i] - ub[i];
+	}
+
+	/* 3) Check for correct sign of y and for complementary slackness. */
+	/* bounds */
+	for( i=0; i<nV; ++i )
+	{
+		switch ( bounds.getStatus( i ) )
+		{
+			case ST_LOWER:
+				if ( -y[i] > maxKKTviolation )
+					maxKKTviolation = -y[i];
+				if ( getAbs( x[i] - lb[i] ) > maxKKTviolation )
+					maxKKTviolation = getAbs( x[i] - lb[i] );
+				break;
+
+			case ST_UPPER:
+				if ( y[i] > maxKKTviolation )
+					maxKKTviolation = y[i];
+				if ( getAbs( ub[i] - x[i] ) > maxKKTviolation )
+					maxKKTviolation = getAbs( ub[i] - x[i] );
+				break;
+
+			default: /* inactive */
+			if ( getAbs( y[i] ) > maxKKTviolation )
+					maxKKTviolation = getAbs( y[i] );
+				break;
+		}
+	}
+
+	/* constraints */
+	for( i=0; i<nC; ++i )
+	{
+		switch ( constraints.getStatus( i ) )
+		{
+			case ST_LOWER:
+				if ( -y[nV+i] > maxKKTviolation )
+					maxKKTviolation = -y[nV+i];
+				if ( getAbs( Ax[i] - lbA[i] ) > maxKKTviolation )
+					maxKKTviolation = getAbs( Ax[i] - lbA[i] );
+				break;
+
+			case ST_UPPER:
+				if ( y[nV+i] > maxKKTviolation )
+					maxKKTviolation = y[nV+i];
+				if ( getAbs( ubA[i] - Ax[i] ) > maxKKTviolation )
+					maxKKTviolation = getAbs( ubA[i] - Ax[i] );
+				break;
+
+			default: /* inactive */
+			if ( getAbs( y[nV+i] ) > maxKKTviolation )
+					maxKKTviolation = getAbs( y[nV+i] );
+				break;
+		}
+	}
+
+	if ( maxKKTviolation > CRITICALACCURACY )
+		return RET_NO_SOLUTION;
+
+	if ( maxKKTviolation > DESIREDACCURACY )
+		return RET_INACCURATE_SOLUTION;
+
+	#endif /* __PERFORM_KKT_TEST__ */
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/QProblem.ipp b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/QProblem.ipp
new file mode 100644
index 0000000..e98ada6
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/QProblem.ipp
@@ -0,0 +1,299 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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 SRC/QProblem.ipp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Implementation of inlined member functions of the QProblem class which 
+ *	is able to use the newly developed online active set strategy for 
+ *	parametric quadratic programming.
+ */
+
+
+
+/*****************************************************************************
+ *  P U B L I C                                                              *
+ *****************************************************************************/
+
+/*
+ *	g e t A
+ */
+inline returnValue QProblem::getA( real_t* const _A ) const
+{
+	int i;
+
+	for ( i=0; i<getNV( )*getNC( ); ++i )
+		_A[i] = A[i];
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	g e t A
+ */
+inline returnValue QProblem::getA( int number, real_t* const row ) const
+{
+	int nV = getNV( );
+		
+	if ( ( number >= 0 ) && ( number < getNC( ) ) )
+	{
+		for ( int i=0; i<nV; ++i )
+			row[i] = A[number*NVMAX + i];
+
+		return SUCCESSFUL_RETURN;
+	}
+	else
+		return THROWERROR( RET_INDEX_OUT_OF_BOUNDS );
+}
+
+
+/*
+ *	g e t L B A
+ */
+inline returnValue QProblem::getLBA( real_t* const _lbA ) const
+{
+	int i;
+
+	for ( i=0; i<getNC( ); ++i )
+		_lbA[i] = lbA[i];
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	g e t L B A
+ */
+inline returnValue QProblem::getLBA( int number, real_t& value ) const
+{
+	if ( ( number >= 0 ) && ( number < getNC( ) ) )
+	{
+		value = lbA[number];
+		return SUCCESSFUL_RETURN;
+	}
+	else
+		return THROWERROR( RET_INDEX_OUT_OF_BOUNDS );
+}
+
+
+/*
+ *	g e t U B A
+ */
+inline returnValue QProblem::getUBA( real_t* const _ubA ) const
+{
+	int i;
+
+	for ( i=0; i<getNC( ); ++i )
+		_ubA[i] = ubA[i];
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	g e t U B A
+ */
+inline returnValue QProblem::getUBA( int number, real_t& value ) const
+{
+	if ( ( number >= 0 ) && ( number < getNC( ) ) )
+	{
+		value = ubA[number];
+		return SUCCESSFUL_RETURN;
+	}
+	else
+		return THROWERROR( RET_INDEX_OUT_OF_BOUNDS );
+}
+
+
+/*
+ *	g e t C o n s t r a i n t s
+ */
+inline returnValue QProblem::getConstraints( Constraints* const _constraints ) const
+{
+	*_constraints = constraints;
+	
+	return SUCCESSFUL_RETURN;
+}
+
+
+
+/*
+ *	g e t N C
+ */
+inline int QProblem::getNC( ) const
+{
+	return constraints.getNC( );
+}
+
+
+/*
+ *	g e t N E C
+ */
+inline int QProblem::getNEC( ) const
+{
+	return constraints.getNEC( );
+}
+
+
+/*
+ *	g e t N A C
+ */
+inline int QProblem::getNAC( )
+{
+	return constraints.getNAC( );
+}
+
+
+/*
+ *	g e t N I A C
+ */
+inline int QProblem::getNIAC( )
+{
+	return constraints.getNIAC( );
+}
+
+
+
+/*****************************************************************************
+ *  P R O T E C T E D                                                        *
+ *****************************************************************************/
+ 
+
+/*
+ *	s e t A
+ */
+inline returnValue QProblem::setA( const real_t* const A_new )
+{
+	int i, j;
+	int nV = getNV( );
+	int nC = getNC( );
+
+	/* Set constraint matrix AND update member AX. */
+	for( j=0; j<nC; ++j )
+	{
+		Ax[j] = 0.0;
+
+		for( i=0; i<nV; ++i )
+		{	
+			A[j*NVMAX + i] = A_new[j*nV + i];
+			Ax[j] += A[j*NVMAX + i] * x[i];
+		}
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s e t A
+ */
+inline returnValue QProblem::setA( int number, const real_t* const row )
+{
+	int i;
+	int nV = getNV( );
+
+	/* Set constraint matrix AND update member AX. */
+	if ( ( number >= 0 ) && ( number < getNC( ) ) )
+	{
+		Ax[number] = 0.0;
+
+		for( i=0; i<nV; ++i )
+		{
+			A[number*NVMAX + i] = row[i];
+			Ax[number] += A[number*NVMAX + i] * x[i];
+		}
+
+		return SUCCESSFUL_RETURN;
+	}
+	else
+		return THROWERROR( RET_INDEX_OUT_OF_BOUNDS );
+}
+
+
+/*
+ *	s e t L B A
+ */
+inline returnValue QProblem::setLBA( const real_t* const lbA_new )
+{
+	int i;
+	int nC = getNC();
+
+	for( i=0; i<nC; ++i )
+		lbA[i] = lbA_new[i];
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s e t L B A
+ */
+inline returnValue QProblem::setLBA( int number, real_t value )
+{
+	if ( ( number >= 0 ) && ( number < getNC( ) ) )
+	{
+		lbA[number] = value;
+		return SUCCESSFUL_RETURN;
+	}
+	else
+		return THROWERROR( RET_INDEX_OUT_OF_BOUNDS );
+}
+
+
+/*
+ *	s e t U B A
+ */
+inline returnValue QProblem::setUBA( const real_t* const ubA_new )
+{
+	int i;
+	int nC = getNC();
+
+	for( i=0; i<nC; ++i )
+		ubA[i] = ubA_new[i];
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s e t U B A
+ */
+inline returnValue QProblem::setUBA( int number, real_t value )
+{
+	if ( ( number >= 0 ) && ( number < getNC( ) ) )
+	{
+		ubA[number] = value;
+		return SUCCESSFUL_RETURN;
+	}
+	else
+		return THROWERROR( RET_INDEX_OUT_OF_BOUNDS );
+}
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/QProblemB.cpp b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/QProblemB.cpp
new file mode 100644
index 0000000..47ac353
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/QProblemB.cpp
@@ -0,0 +1,2151 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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 SRC/QProblemB.cpp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Implementation of the QProblemB class which is able to use the newly
+ *	developed online active set strategy for parametric quadratic programming.
+ */
+
+
+#include <QProblemB.hpp>
+
+#include <stdio.h>
+
+void printmatrix(char *name, double *A, int m, int n) {
+  int i, j;
+
+  printf("%s = [...\n", name);
+  for (i = 0; i < m; i++) {
+    for (j = 0; j < n; j++)
+        printf("  % 9.4f", A[i*n+j]);
+    printf(",\n");
+  }
+  printf("];\n");
+}
+
+
+
+/*****************************************************************************
+ *  P U B L I C                                                              *
+ *****************************************************************************/
+
+
+/*
+ *	Q P r o b l e m B
+ */
+QProblemB::QProblemB( )
+{
+	/* reset global message handler */
+	getGlobalMessageHandler( )->reset( );
+
+	hasHessian = BT_FALSE;
+
+	bounds.init( 0 );
+
+	hasCholesky = BT_FALSE;
+
+	tau = 0.0;
+
+	hessianType = HST_POSDEF_NULLSPACE; /* Hessian is assumed to be positive definite by default */
+	infeasible = BT_FALSE;
+	unbounded = BT_FALSE;
+
+	status = QPS_NOTINITIALISED;
+
+	#ifdef PC_DEBUG
+	printlevel = PL_MEDIUM;
+	setPrintLevel( PL_MEDIUM );
+	#else
+	printlevel = QPOASES_PRINTLEVEL;
+	#endif
+
+	count = 0;
+}
+
+
+/*
+ *	Q P r o b l e m B
+ */
+QProblemB::QProblemB( int _nV )
+{
+	/* consistency check */
+	if ( _nV <= 0 )
+	{
+		_nV = 1;
+		THROWERROR( RET_INVALID_ARGUMENTS );
+	}
+
+	hasHessian = BT_FALSE;
+
+	/* reset global message handler */
+	getGlobalMessageHandler( )->reset( );
+
+	bounds.init( _nV );
+
+	hasCholesky = BT_FALSE;
+
+	tau = 0.0;
+
+	hessianType = HST_POSDEF_NULLSPACE; /* Hessian is assumed to be positive definite by default */
+	infeasible = BT_FALSE;
+	unbounded = BT_FALSE;
+
+	status = QPS_NOTINITIALISED;
+
+	#ifdef PC_DEBUG
+	printlevel = PL_MEDIUM;
+	setPrintLevel( PL_MEDIUM );
+	#else
+	printlevel = QPOASES_PRINTLEVEL;
+	#endif
+
+	count = 0;
+}
+
+
+/*
+ *	Q P r o b l e m B
+ */
+QProblemB::QProblemB( const QProblemB& rhs )
+{
+	int i, j;
+
+	int _nV = rhs.bounds.getNV( );
+
+	for( i=0; i<_nV; ++i )
+		for( j=0; j<_nV; ++j )
+			H[i*NVMAX + j] = rhs.H[i*NVMAX + j];
+
+	hasHessian = rhs.hasHessian;
+
+	for( i=0; i<_nV; ++i )
+		g[i] = rhs.g[i];
+
+	for( i=0; i<_nV; ++i )
+		lb[i] = rhs.lb[i];
+
+	for( i=0; i<_nV; ++i )
+		ub[i] = rhs.ub[i];
+
+
+	bounds = rhs.bounds;
+
+	for( i=0; i<_nV; ++i )
+		for( j=0; j<_nV; ++j )
+			R[i*NVMAX + j] = rhs.R[i*NVMAX + j];
+	hasCholesky = rhs.hasCholesky;
+
+	for( i=0; i<_nV; ++i )
+		x[i] = rhs.x[i];
+
+	for( i=0; i<_nV; ++i )
+		y[i] = rhs.y[i];
+
+	tau = rhs.tau;
+
+	hessianType = rhs.hessianType;
+	infeasible = rhs.infeasible;
+	unbounded = rhs.unbounded;
+
+	status = rhs.status;
+
+	printlevel = rhs.printlevel;
+
+	count = rhs.count;
+}
+
+
+/*
+ *	~ Q P r o b l e m B
+ */
+QProblemB::~QProblemB( )
+{
+}
+
+
+/*
+ *	o p e r a t o r =
+ */
+QProblemB& QProblemB::operator=( const QProblemB& rhs )
+{
+	int i, j;
+
+	if ( this != &rhs )
+	{
+		int _nV = rhs.bounds.getNV( );
+
+		for( i=0; i<_nV; ++i )
+			for( j=0; j<_nV; ++j )
+				H[i*NVMAX + j] = rhs.H[i*NVMAX + j];
+
+		hasHessian = rhs.hasHessian;
+
+		for( i=0; i<_nV; ++i )
+			g[i] = rhs.g[i];
+
+		for( i=0; i<_nV; ++i )
+			lb[i] = rhs.lb[i];
+
+		for( i=0; i<_nV; ++i )
+			ub[i] = rhs.ub[i];
+
+		bounds = rhs.bounds;
+
+		for( i=0; i<_nV; ++i )
+			for( j=0; j<_nV; ++j )
+				R[i*NVMAX + j] = rhs.R[i*NVMAX + j];
+		hasCholesky = rhs.hasCholesky;
+
+
+		for( i=0; i<_nV; ++i )
+			x[i] = rhs.x[i];
+
+		for( i=0; i<_nV; ++i )
+			y[i] = rhs.y[i];
+
+		tau = rhs.tau;
+
+		hessianType = rhs.hessianType;
+		infeasible = rhs.infeasible;
+		unbounded = rhs.unbounded;
+
+		status = rhs.status;
+
+		printlevel = rhs.printlevel;
+		setPrintLevel( rhs.printlevel );
+
+		count = rhs.count;
+	}
+
+	return *this;
+}
+
+
+/*
+ *	r e s e t
+ */
+returnValue QProblemB::reset( )
+{
+	int i, j;
+	int nV = getNV( );
+
+	/** 0) Reset has Hessian flag. */
+	hasHessian = BT_FALSE;
+
+	/* 1) Reset bounds. */
+	bounds.init( nV );
+
+	/* 2) Reset Cholesky decomposition. */
+	for( i=0; i<nV; ++i )
+		for( j=0; j<nV; ++j )
+			R[i*NVMAX + j] = 0.0;
+	hasCholesky = BT_FALSE;
+
+	/* 3) Reset steplength and status flags. */
+	tau = 0.0;
+
+	hessianType = HST_POSDEF_NULLSPACE; /* Hessian is assumed to be positive definite by default */
+	infeasible = BT_FALSE;
+	unbounded = BT_FALSE;
+
+	status = QPS_NOTINITIALISED;
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	i n i t
+ */
+returnValue QProblemB::init(	const real_t* const _H, const real_t* const _g,
+								const real_t* const _lb, const real_t* const _ub,
+								int& nWSR, const real_t* const yOpt, real_t* const cputime
+								)
+{
+	/* 1) Setup QP data. */
+	if (setupQPdata(_H, 0, _g, _lb, _ub) != SUCCESSFUL_RETURN)
+		return THROWERROR( RET_INVALID_ARGUMENTS );
+
+	/* 2) Call to main initialisation routine (without any additional information). */
+	return solveInitialQP(0, yOpt, 0, nWSR, cputime);
+}
+
+returnValue QProblemB::init(	const real_t* const _H, const real_t* const _R, const real_t* const _g,
+								const real_t* const _lb, const real_t* const _ub,
+								int& nWSR, const real_t* const yOpt, real_t* const cputime
+								)
+{
+	/* 1) Setup QP data. */
+	if (setupQPdata(_H, _R, _g, _lb, _ub) != SUCCESSFUL_RETURN)
+		return THROWERROR( RET_INVALID_ARGUMENTS );
+
+	/* 2) Call to main initialisation routine (without any additional information). */
+	return solveInitialQP(0, yOpt, 0, nWSR, cputime);
+}
+
+
+/*
+ *	h o t s t a r t
+ */
+returnValue QProblemB::hotstart(	const real_t* const g_new, const real_t* const lb_new, const real_t* const ub_new,
+									int& nWSR, real_t* const cputime
+									)
+{
+	int l;
+
+	/* consistency check */
+	if ( ( getStatus( ) == QPS_NOTINITIALISED )       ||
+		 ( getStatus( ) == QPS_PREPARINGAUXILIARYQP ) ||
+		 ( getStatus( ) == QPS_PERFORMINGHOMOTOPY )   )
+	{
+		return THROWERROR( RET_HOTSTART_FAILED_AS_QP_NOT_INITIALISED );
+	}
+
+	/* start runtime measurement */
+	real_t starttime = 0.0;
+	if ( cputime != 0 )
+		starttime = getCPUtime( );
+
+
+	/* I) PREPARATIONS */
+	/* 1) Reset status flags and increase QP counter. */
+	infeasible = BT_FALSE;
+	unbounded = BT_FALSE;
+
+	++count;
+
+	/* 2) Allocate delta vectors of gradient and bounds. */
+	returnValue returnvalue;
+	BooleanType Delta_bB_isZero;
+
+	int FR_idx[NVMAX];
+	int FX_idx[NVMAX];
+
+	real_t delta_g[NVMAX];
+	real_t delta_lb[NVMAX];
+	real_t delta_ub[NVMAX];
+
+	real_t delta_xFR[NVMAX];
+	real_t delta_xFX[NVMAX];
+	real_t delta_yFX[NVMAX];
+
+	int BC_idx;
+	SubjectToStatus BC_status;
+
+	#ifdef PC_DEBUG
+	char messageString[80];
+	#endif
+
+	/* II) MAIN HOMOTOPY LOOP */
+	for( l=0; l<nWSR; ++l )
+	{
+		status = QPS_PERFORMINGHOMOTOPY;
+
+		if ( printlevel == PL_HIGH )
+		{
+			#ifdef PC_DEBUG
+			sprintf( messageString,"%d ...",l );
+			getGlobalMessageHandler( )->throwInfo( RET_ITERATION_STARTED,messageString,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE );
+			#endif
+		}
+
+		/* 1) Setup index arrays. */
+		if ( bounds.getFree( )->getNumberArray( FR_idx ) != SUCCESSFUL_RETURN )
+			return THROWERROR( RET_HOTSTART_FAILED );
+
+		if ( bounds.getFixed( )->getNumberArray( FX_idx ) != SUCCESSFUL_RETURN )
+			return THROWERROR( RET_HOTSTART_FAILED );
+
+		/* 2) Initialize shift direction of the gradient and the bounds. */
+		returnvalue = hotstart_determineDataShift(  FX_idx,
+													g_new,lb_new,ub_new,
+													delta_g,delta_lb,delta_ub,
+													Delta_bB_isZero
+													);
+		if ( returnvalue != SUCCESSFUL_RETURN )
+		{
+			nWSR = l;
+			THROWERROR( RET_SHIFT_DETERMINATION_FAILED );
+			return returnvalue;
+		}
+
+		/* 3) Determination of step direction of X and Y. */
+		returnvalue = hotstart_determineStepDirection(	FR_idx,FX_idx,
+														delta_g,delta_lb,delta_ub,
+														Delta_bB_isZero,
+														delta_xFX,delta_xFR,delta_yFX
+														);
+		if ( returnvalue != SUCCESSFUL_RETURN )
+		{
+			nWSR = l;
+			THROWERROR( RET_STEPDIRECTION_DETERMINATION_FAILED );
+			return returnvalue;
+		}
+
+
+		/* 4) Determination of step length TAU. */
+		returnvalue = hotstart_determineStepLength(	FR_idx,FX_idx,
+													delta_lb,delta_ub,
+													delta_xFR,delta_yFX,
+													BC_idx,BC_status );
+		if ( returnvalue != SUCCESSFUL_RETURN )
+		{
+			nWSR = l;
+			THROWERROR( RET_STEPLENGTH_DETERMINATION_FAILED );
+			return returnvalue;
+		}
+
+		/* 5) Realization of the homotopy step. */
+		returnvalue = hotstart_performStep(	FR_idx,FX_idx,
+											delta_g,delta_lb,delta_ub,
+											delta_xFX,delta_xFR,delta_yFX,
+											BC_idx,BC_status
+											);
+
+
+		if ( returnvalue != SUCCESSFUL_RETURN )
+		{
+			nWSR = l;
+
+			/* stop runtime measurement */
+			if ( cputime != 0 )
+				*cputime = getCPUtime( ) - starttime;
+
+			/* optimal solution found? */
+			if ( returnvalue == RET_OPTIMAL_SOLUTION_FOUND )
+			{
+				status = QPS_SOLVED;
+
+				if ( printlevel == PL_HIGH )
+					THROWINFO( RET_OPTIMAL_SOLUTION_FOUND );
+
+				#ifdef PC_DEBUG
+	 			if ( printIteration( l,BC_idx,BC_status ) != SUCCESSFUL_RETURN )
+					THROWERROR( RET_PRINT_ITERATION_FAILED ); /* do not pass this as return value! */
+				#endif
+
+				/* check KKT optimality conditions */
+				return checkKKTconditions( );
+			}
+			else
+			{
+				/* checks for infeasibility... */
+				if ( infeasible == BT_TRUE )
+				{
+					status = QPS_HOMOTOPYQPSOLVED;
+					return THROWERROR( RET_HOTSTART_STOPPED_INFEASIBILITY );
+				}
+
+				/* ...unboundedness... */
+				if ( unbounded == BT_TRUE ) /* not necessary since objective function convex! */
+					return THROWERROR( RET_HOTSTART_STOPPED_UNBOUNDEDNESS );
+
+				/* ... and throw unspecific error otherwise */
+				THROWERROR( RET_HOMOTOPY_STEP_FAILED );
+				return returnvalue;
+			}
+		}
+
+		/* 6) Output information of successful QP iteration. */
+		status = QPS_HOMOTOPYQPSOLVED;
+
+		#ifdef PC_DEBUG
+		if ( printIteration( l,BC_idx,BC_status ) != SUCCESSFUL_RETURN )
+			THROWERROR( RET_PRINT_ITERATION_FAILED ); /* do not pass this as return value! */
+		#endif
+	}
+
+
+	/* stop runtime measurement */
+	if ( cputime != 0 )
+		*cputime = getCPUtime( ) - starttime;
+
+
+	/* if programm gets to here, output information that QP could not be solved
+	 * within the given maximum numbers of working set changes */
+	if ( printlevel == PL_HIGH )
+	{
+		#ifdef PC_DEBUG
+		sprintf( messageString,"(nWSR = %d)",nWSR );
+		return getGlobalMessageHandler( )->throwWarning( RET_MAX_NWSR_REACHED,messageString,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE );
+		#endif
+	}
+
+	/* Finally check KKT optimality conditions. */
+	returnValue returnvalueKKTcheck = checkKKTconditions( );
+
+	if ( returnvalueKKTcheck != SUCCESSFUL_RETURN )
+		return returnvalueKKTcheck;
+	else
+		return RET_MAX_NWSR_REACHED;
+}
+
+
+/*
+ *	g e t N Z
+ */
+int QProblemB::getNZ( )
+{
+	/* if no constraints are present: nZ=nFR */
+	return bounds.getFree( )->getLength( );
+}
+
+
+/*
+ *	g e t O b j V a l
+ */
+real_t QProblemB::getObjVal( ) const
+{
+	real_t objVal;
+
+	/* calculated optimal objective function value
+	 * only if current QP has been solved */
+	if ( ( getStatus( ) == QPS_AUXILIARYQPSOLVED ) ||
+		 ( getStatus( ) == QPS_HOMOTOPYQPSOLVED )  ||
+		 ( getStatus( ) == QPS_SOLVED ) )
+	{
+		objVal = getObjVal( x );
+	}
+	else
+	{
+		objVal = INFTY;
+	}
+
+	return objVal;
+}
+
+
+/*
+ *	g e t O b j V a l
+ */
+real_t QProblemB::getObjVal( const real_t* const _x ) const
+{
+	int i, j;
+	int nV = getNV( );
+
+	real_t obj_tmp = 0.0;
+
+	for( i=0; i<nV; ++i )
+	{
+		obj_tmp += _x[i]*g[i];
+
+		for( j=0; j<nV; ++j )
+			obj_tmp += 0.5*_x[i]*H[i*NVMAX + j]*_x[j];
+	}
+
+	return obj_tmp;
+}
+
+
+/*
+ *	g e t P r i m a l S o l u t i o n
+ */
+returnValue QProblemB::getPrimalSolution( real_t* const xOpt ) const
+{
+	int i;
+
+	/* return optimal primal solution vector
+	 * only if current QP has been solved */
+	if ( ( getStatus( ) == QPS_AUXILIARYQPSOLVED ) ||
+		 ( getStatus( ) == QPS_HOMOTOPYQPSOLVED )  ||
+		 ( getStatus( ) == QPS_SOLVED ) )
+	{
+		for( i=0; i<getNV( ); ++i )
+			xOpt[i] = x[i];
+
+		return SUCCESSFUL_RETURN;
+	}
+	else
+	{
+		return RET_QP_NOT_SOLVED;
+	}
+}
+
+
+/*
+ *	g e t D u a l S o l u t i o n
+ */
+returnValue QProblemB::getDualSolution( real_t* const yOpt ) const
+{
+	int i;
+
+	/* return optimal dual solution vector
+	 * only if current QP has been solved */
+	if ( ( getStatus( ) == QPS_AUXILIARYQPSOLVED ) ||
+		 ( getStatus( ) == QPS_HOMOTOPYQPSOLVED )  ||
+		 ( getStatus( ) == QPS_SOLVED ) )
+	{
+		for( i=0; i<getNV( ); ++i )
+			yOpt[i] = y[i];
+
+		return SUCCESSFUL_RETURN;
+	}
+	else
+	{
+		return RET_QP_NOT_SOLVED;
+	}
+}
+
+
+/*
+ *	s e t P r i n t L e v e l
+ */
+returnValue QProblemB::setPrintLevel( PrintLevel _printlevel )
+{
+	#ifndef __MATLAB__
+	if ( ( printlevel >= PL_MEDIUM ) && ( printlevel != _printlevel ) )
+		THROWINFO( RET_PRINTLEVEL_CHANGED );
+	#endif
+
+	printlevel = _printlevel;
+
+	/* update message handler preferences */
+ 	switch ( printlevel )
+ 	{
+ 		case PL_NONE:
+ 			getGlobalMessageHandler( )->setErrorVisibilityStatus( VS_HIDDEN );
+			getGlobalMessageHandler( )->setWarningVisibilityStatus( VS_HIDDEN );
+			getGlobalMessageHandler( )->setInfoVisibilityStatus( VS_HIDDEN );
+			break;
+
+		case PL_LOW:
+ 			getGlobalMessageHandler( )->setErrorVisibilityStatus( VS_VISIBLE );
+			getGlobalMessageHandler( )->setWarningVisibilityStatus( VS_HIDDEN );
+			getGlobalMessageHandler( )->setInfoVisibilityStatus( VS_HIDDEN );
+			break;
+
+ 		default: /* PL_MEDIUM, PL_HIGH */
+ 			getGlobalMessageHandler( )->setErrorVisibilityStatus( VS_VISIBLE );
+			getGlobalMessageHandler( )->setWarningVisibilityStatus( VS_VISIBLE );
+			getGlobalMessageHandler( )->setInfoVisibilityStatus( VS_VISIBLE );
+			break;
+ 	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+
+/*****************************************************************************
+ *  P R O T E C T E D                                                        *
+ *****************************************************************************/
+
+/*
+ *	c h e c k F o r I d e n t i t y H e s s i a n
+ */
+returnValue QProblemB::checkForIdentityHessian( )
+{
+	int i, j;
+	int nV = getNV( );
+
+	/* nothing to do as status flag remains unaltered
+	 * if Hessian differs from identity matrix */
+	if ( hessianType == HST_IDENTITY )
+		return SUCCESSFUL_RETURN;
+
+	/* 1) If Hessian differs from identity matrix,
+	 *    return without changing the internal HessianType. */
+	for ( i=0; i<nV; ++i )
+		if ( getAbs( H[i*NVMAX + i] - 1.0 ) > EPS )
+			return SUCCESSFUL_RETURN;
+
+	for ( i=0; i<nV; ++i )
+	{
+		for ( j=0; j<i; ++j )
+			if ( ( getAbs( H[i*NVMAX + j] ) > EPS ) || ( getAbs( H[j*NVMAX + i] ) > EPS ) )
+				return SUCCESSFUL_RETURN;
+	}
+
+	/* 2) If this point is reached, Hessian equals the idetity matrix. */
+	hessianType = HST_IDENTITY;
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s e t u p S u b j e c t T o T y p e
+ */
+returnValue QProblemB::setupSubjectToType( )
+{
+	int i;
+	int nV = getNV( );
+
+
+	/* 1) Check if lower bounds are present. */
+	bounds.setNoLower( BT_TRUE );
+	for( i=0; i<nV; ++i )
+		if ( lb[i] > -INFTY )
+		{
+			bounds.setNoLower( BT_FALSE );
+			break;
+		}
+
+	/* 2) Check if upper bounds are present. */
+	bounds.setNoUpper( BT_TRUE );
+	for( i=0; i<nV; ++i )
+		if ( ub[i] < INFTY )
+		{
+			bounds.setNoUpper( BT_FALSE );
+			break;
+		}
+
+	/* 3) Determine implicitly fixed and unbounded variables. */
+	int nFV = 0;
+	int nUV = 0;
+
+	for( i=0; i<nV; ++i )
+		if ( ( lb[i] < -INFTY + BOUNDTOL ) && ( ub[i] > INFTY - BOUNDTOL ) )
+		{
+			bounds.setType( i,ST_UNBOUNDED );
+			++nUV;
+		}
+		else
+		{
+			if ( lb[i] > ub[i] - BOUNDTOL )
+			{
+				bounds.setType( i,ST_EQUALITY );
+				++nFV;
+			}
+			else
+			{
+				bounds.setType( i,ST_BOUNDED );
+			}
+		}
+
+	/* 4) Set dimensions of bounds structure. */
+	bounds.setNFV( nFV );
+	bounds.setNUV( nUV );
+	bounds.setNBV( nV - nFV - nUV );
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	c h o l e s k y D e c o m p o s i t i o n
+ */
+returnValue QProblemB::setupCholeskyDecomposition( )
+{
+	int i, j, k, ii, jj;
+	int nV  = getNV( );
+	int nFR = getNFR( );
+
+	/* If Hessian flag is false, it means that H & R already contain Cholesky
+	 * factorization -- provided from outside. */
+	if (hasHessian == BT_FALSE)
+		return SUCCESSFUL_RETURN;
+
+	/* 1) Initialises R with all zeros. */
+	for( i=0; i<nV; ++i )
+		for( j=0; j<nV; ++j )
+			R[i*NVMAX + j] = 0.0;
+
+	/* 2) Calculate Cholesky decomposition of H (projected to free variables). */
+	if ( hessianType == HST_IDENTITY )
+	{
+		/* if Hessian is identity, so is its Cholesky factor. */
+		for( i=0; i<nFR; ++i )
+			R[i*NVMAX + i] = 1.0;
+	}
+	else
+	{
+		if ( nFR > 0 )
+		{
+			int FR_idx[NVMAX];
+			if ( bounds.getFree( )->getNumberArray( FR_idx ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_INDEXLIST_CORRUPTED );
+
+			/* R'*R = H */
+			real_t sum;
+			real_t inv;
+
+			for( i=0; i<nFR; ++i )
+			{
+				/* j == i */
+				ii = FR_idx[i];
+				sum = H[ii*NVMAX + ii];
+
+				for( k=(i-1); k>=0; --k )
+					sum -= R[k*NVMAX + i] * R[k*NVMAX + i];
+
+				if ( sum > 0.0 )
+				{
+					R[i*NVMAX + i] = sqrt( sum );
+					inv = 1.0 / R[i*NVMAX + i];
+				}
+				else
+				{
+					hessianType = HST_SEMIDEF;
+					return THROWERROR( RET_HESSIAN_NOT_SPD );
+				}
+
+				/* j > i */
+				for( j=(i+1); j<nFR; ++j )
+				{
+					jj = FR_idx[j];
+					sum = H[jj*NVMAX + ii];
+
+					for( k=(i-1); k>=0; --k )
+						sum -= R[k*NVMAX + i] * R[k*NVMAX + j];
+
+					R[i*NVMAX + j] = sum * inv;
+				}
+			}
+		}
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s o l v e I n i t i a l Q P
+ */
+returnValue QProblemB::solveInitialQP(	const real_t* const xOpt, const real_t* const yOpt,
+										const Bounds* const guessedBounds,
+										int& nWSR, real_t* const cputime
+										)
+{
+	int i, nFR;
+	int nV = getNV( );
+
+
+	/* start runtime measurement */
+	real_t starttime = 0.0;
+	if ( cputime != 0 )
+		starttime = getCPUtime( );
+
+
+	status = QPS_NOTINITIALISED;
+
+	/* I) ANALYSE QP DATA: */
+	/* 1) Check if Hessian happens to be the identity matrix. */
+	if ( checkForIdentityHessian( ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_INIT_FAILED );
+
+	/* 2) Setup type of bounds (i.e. unbounded, implicitly fixed etc.). */
+	if ( setupSubjectToType( ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_INIT_FAILED );
+
+	status = QPS_PREPARINGAUXILIARYQP;
+
+
+	/* II) SETUP AUXILIARY QP WITH GIVEN OPTIMAL SOLUTION: */
+	/* 1) Setup bounds data structure. */
+	if ( bounds.setupAllFree( ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_INIT_FAILED );
+
+	/* 2) Setup optimal primal/dual solution for auxiliary QP. */
+	if ( setupAuxiliaryQPsolution( xOpt,yOpt ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_INIT_FAILED );
+
+	/* 3) Obtain linear independent working set for auxiliary QP. */
+
+	static Bounds auxiliaryBounds;
+
+	auxiliaryBounds.init( nV );
+
+	if ( obtainAuxiliaryWorkingSet( xOpt,yOpt,guessedBounds, &auxiliaryBounds ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_INIT_FAILED );
+
+	/* 4) Setup working set of auxiliary QP and setup cholesky decomposition. */
+	if ( setupAuxiliaryWorkingSet( &auxiliaryBounds,BT_TRUE ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_INIT_FAILED );
+
+	nFR = getNFR();
+	/* At the moment we can only provide a Cholesky of the Hessian if
+	 * the solver is cold-started. */
+	if (hasCholesky == BT_FALSE || nFR != nV)
+		if (setupCholeskyDecomposition() != SUCCESSFUL_RETURN)
+			return THROWERROR( RET_INIT_FAILED_CHOLESKY );
+
+	/* 5) Store original QP formulation... */
+	real_t g_original[NVMAX];
+	real_t lb_original[NVMAX];
+	real_t ub_original[NVMAX];
+
+	for( i=0; i<nV; ++i )
+		g_original[i] = g[i];
+	for( i=0; i<nV; ++i )
+		lb_original[i] = lb[i];
+	for( i=0; i<nV; ++i )
+		ub_original[i] = ub[i];
+
+	/* ... and setup QP data of an auxiliary QP having an optimal solution
+	 * as specified by the user (or xOpt = yOpt = 0, by default). */
+	if ( setupAuxiliaryQPgradient( ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_INIT_FAILED );
+
+	if ( setupAuxiliaryQPbounds( BT_TRUE ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_INIT_FAILED );
+
+	status = QPS_AUXILIARYQPSOLVED;
+
+
+	/* III) SOLVE ACTUAL INITIAL QP: */
+	/* Use hotstart method to find the solution of the original initial QP,... */
+	returnValue returnvalue = hotstart( g_original,lb_original,ub_original, nWSR,0 );
+
+
+	/* ... check for infeasibility and unboundedness... */
+	if ( isInfeasible( ) == BT_TRUE )
+		return THROWERROR( RET_INIT_FAILED_INFEASIBILITY );
+
+	if ( isUnbounded( ) == BT_TRUE )
+		return THROWERROR( RET_INIT_FAILED_UNBOUNDEDNESS );
+
+	/* ... and internal errors. */
+	if ( ( returnvalue != SUCCESSFUL_RETURN ) && ( returnvalue != RET_MAX_NWSR_REACHED )  &&
+	     ( returnvalue != RET_INACCURATE_SOLUTION ) && ( returnvalue != RET_NO_SOLUTION ) )
+		return THROWERROR( RET_INIT_FAILED_HOTSTART );
+
+
+	/* stop runtime measurement */
+	if ( cputime != 0 )
+		*cputime = getCPUtime( ) - starttime;
+
+	if ( printlevel == PL_HIGH )
+		THROWINFO( RET_INIT_SUCCESSFUL );
+
+	return returnvalue;
+}
+
+
+/*
+ *	o b t a i n A u x i l i a r y W o r k i n g S e t
+ */
+returnValue QProblemB::obtainAuxiliaryWorkingSet(	const real_t* const xOpt, const real_t* const yOpt,
+													const Bounds* const guessedBounds, Bounds* auxiliaryBounds
+													) const
+{
+	int i = 0;
+	int nV = getNV( );
+
+
+	/* 1) Ensure that desiredBounds is allocated (and different from guessedBounds). */
+	if ( ( auxiliaryBounds == 0 ) || ( auxiliaryBounds == guessedBounds ) )
+		return THROWERROR( RET_INVALID_ARGUMENTS );
+
+
+	/* 2) Setup working set for auxiliary initial QP. */
+	if ( guessedBounds != 0 )
+	{
+		/* If an initial working set is specific, use it!
+		 * Moreover, add all implictly fixed variables if specified. */
+		for( i=0; i<nV; ++i )
+		{
+			if ( bounds.getType( i ) == ST_EQUALITY )
+			{
+				if ( auxiliaryBounds->setupBound( i,ST_LOWER ) != SUCCESSFUL_RETURN )
+					return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+			}
+			else
+			{
+				if ( auxiliaryBounds->setupBound( i,guessedBounds->getStatus( i ) ) != SUCCESSFUL_RETURN )
+					return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+			}
+		}
+	}
+	else	/* No initial working set specified. */
+	{
+		if ( ( xOpt != 0 ) && ( yOpt == 0 ) )
+		{
+			/* Obtain initial working set by "clipping". */
+			for( i=0; i<nV; ++i )
+			{
+				if ( xOpt[i] <= lb[i] + BOUNDTOL )
+				{
+					if ( auxiliaryBounds->setupBound( i,ST_LOWER ) != SUCCESSFUL_RETURN )
+						return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+					continue;
+				}
+
+				if ( xOpt[i] >= ub[i] - BOUNDTOL )
+				{
+					if ( auxiliaryBounds->setupBound( i,ST_UPPER ) != SUCCESSFUL_RETURN )
+						return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+					continue;
+				}
+
+				/* Moreover, add all implictly fixed variables if specified. */
+				if ( bounds.getType( i ) == ST_EQUALITY )
+				{
+					if ( auxiliaryBounds->setupBound( i,ST_LOWER ) != SUCCESSFUL_RETURN )
+						return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+				}
+				else
+				{
+					if ( auxiliaryBounds->setupBound( i,ST_INACTIVE ) != SUCCESSFUL_RETURN )
+						return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+				}
+			}
+		}
+
+		if ( ( xOpt == 0 ) && ( yOpt != 0 ) )
+		{
+			/* Obtain initial working set in accordance to sign of dual solution vector. */
+			for( i=0; i<nV; ++i )
+			{
+				if ( yOpt[i] > ZERO )
+				{
+					if ( auxiliaryBounds->setupBound( i,ST_LOWER ) != SUCCESSFUL_RETURN )
+						return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+					continue;
+				}
+
+				if ( yOpt[i] < -ZERO )
+				{
+					if ( auxiliaryBounds->setupBound( i,ST_UPPER ) != SUCCESSFUL_RETURN )
+						return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+					continue;
+				}
+
+				/* Moreover, add all implictly fixed variables if specified. */
+				if ( bounds.getType( i ) == ST_EQUALITY )
+				{
+					if ( auxiliaryBounds->setupBound( i,ST_LOWER ) != SUCCESSFUL_RETURN )
+						return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+				}
+				else
+				{
+					if ( auxiliaryBounds->setupBound( i,ST_INACTIVE ) != SUCCESSFUL_RETURN )
+						return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+				}
+			}
+		}
+
+		/* If xOpt and yOpt are null pointer and no initial working is specified,
+		 * start with empty working set (or implicitly fixed bounds only)
+		 * for auxiliary QP. */
+		if ( ( xOpt == 0 ) && ( yOpt == 0 ) )
+		{
+			for( i=0; i<nV; ++i )
+			{
+				/* Only add all implictly fixed variables if specified. */
+				if ( bounds.getType( i ) == ST_EQUALITY )
+				{
+					if ( auxiliaryBounds->setupBound( i,ST_LOWER ) != SUCCESSFUL_RETURN )
+						return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+				}
+				else
+				{
+					if ( auxiliaryBounds->setupBound( i,ST_INACTIVE ) != SUCCESSFUL_RETURN )
+						return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+				}
+			}
+		}
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s e t u p A u x i l i a r y W o r k i n g S e t
+ */
+returnValue QProblemB::setupAuxiliaryWorkingSet( 	const Bounds* const auxiliaryBounds,
+													BooleanType setupAfresh
+													)
+{
+	int i;
+	int nV = getNV( );
+
+	/* consistency checks */
+	if ( auxiliaryBounds != 0 )
+	{
+		for( i=0; i<nV; ++i )
+			if ( ( bounds.getStatus( i ) == ST_UNDEFINED ) || ( auxiliaryBounds->getStatus( i ) == ST_UNDEFINED ) )
+				return THROWERROR( RET_UNKNOWN_BUG );
+	}
+	else
+	{
+		return THROWERROR( RET_INVALID_ARGUMENTS );
+	}
+
+
+	/* I) SETUP CHOLESKY FLAG:
+	 *    Cholesky decomposition shall only be updated if working set
+	 *    shall be updated (i.e. NOT setup afresh!) */
+	BooleanType updateCholesky;
+	if ( setupAfresh == BT_TRUE )
+		updateCholesky = BT_FALSE;
+	else
+		updateCholesky = BT_TRUE;
+
+
+	/* II) REMOVE FORMERLY ACTIVE BOUNDS (IF NECESSARY): */
+	if ( setupAfresh == BT_FALSE )
+	{
+		/* Remove all active bounds that shall be inactive AND
+		*  all active bounds that are active at the wrong bound. */
+		for( i=0; i<nV; ++i )
+		{
+			if ( ( bounds.getStatus( i ) == ST_LOWER ) && ( auxiliaryBounds->getStatus( i ) != ST_LOWER ) )
+				if ( removeBound( i,updateCholesky ) != SUCCESSFUL_RETURN )
+					return THROWERROR( RET_SETUP_WORKINGSET_FAILED );
+
+			if ( ( bounds.getStatus( i ) == ST_UPPER ) && ( auxiliaryBounds->getStatus( i ) != ST_UPPER ) )
+				if ( removeBound( i,updateCholesky ) != SUCCESSFUL_RETURN )
+					return THROWERROR( RET_SETUP_WORKINGSET_FAILED );
+		}
+	}
+
+
+	/* III) ADD NEWLY ACTIVE BOUNDS: */
+	/*      Add all inactive bounds that shall be active AND
+	 *      all formerly active bounds that have been active at the wrong bound. */
+	for( i=0; i<nV; ++i )
+	{
+		if ( ( bounds.getStatus( i ) == ST_INACTIVE ) && ( auxiliaryBounds->getStatus( i ) != ST_INACTIVE ) )
+		{
+			if ( addBound( i,auxiliaryBounds->getStatus( i ),updateCholesky ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_SETUP_WORKINGSET_FAILED );
+		}
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s e t u p A u x i l i a r y Q P s o l u t i o n
+ */
+returnValue QProblemB::setupAuxiliaryQPsolution(	const real_t* const xOpt, const real_t* const yOpt
+													)
+{
+	int i;
+	int nV = getNV( );
+
+
+	/* Setup primal/dual solution vectors for auxiliary initial QP:
+	 * if a null pointer is passed, a zero vector is assigned;
+	 * old solution vector is kept if pointer to internal solution vector is passed. */
+	if ( xOpt != 0 )
+	{
+		if ( xOpt != x )
+			for( i=0; i<nV; ++i )
+				x[i] = xOpt[i];
+	}
+	else
+	{
+		for( i=0; i<nV; ++i )
+			x[i] = 0.0;
+	}
+
+	if ( yOpt != 0 )
+	{
+		if ( yOpt != y )
+			for( i=0; i<nV; ++i )
+				y[i] = yOpt[i];
+	}
+	else
+	{
+		for( i=0; i<nV; ++i )
+			y[i] = 0.0;
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s e t u p A u x i l i a r y Q P g r a d i e n t
+ */
+returnValue QProblemB::setupAuxiliaryQPgradient( )
+{
+	int i, j;
+	int nV = getNV( );
+
+
+	/* Setup gradient vector: g = -H*x + y'*Id. */
+	for ( i=0; i<nV; ++i )
+	{
+		/* y'*Id */
+		g[i] = y[i];
+
+		/* -H*x */
+		for ( j=0; j<nV; ++j )
+			g[i] -= H[i*NVMAX + j] * x[j];
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s e t u p A u x i l i a r y Q P b o u n d s
+ */
+returnValue QProblemB::setupAuxiliaryQPbounds( BooleanType useRelaxation )
+{
+	int i;
+	int nV = getNV( );
+
+
+	/* Setup bound vectors. */
+	for ( i=0; i<nV; ++i )
+	{
+		switch ( bounds.getStatus( i ) )
+		{
+			case ST_INACTIVE:
+				if ( useRelaxation == BT_TRUE )
+				{
+					if ( bounds.getType( i ) == ST_EQUALITY )
+					{
+						lb[i] = x[i];
+						ub[i] = x[i];
+					}
+					else
+					{
+						lb[i] = x[i] - BOUNDRELAXATION;
+						ub[i] = x[i] + BOUNDRELAXATION;
+					}
+				}
+				break;
+
+			case ST_LOWER:
+				lb[i] = x[i];
+				if ( bounds.getType( i ) == ST_EQUALITY )
+				{
+					ub[i] = x[i];
+				}
+				else
+				{
+					if ( useRelaxation == BT_TRUE )
+						ub[i] = x[i] + BOUNDRELAXATION;
+				}
+				break;
+
+			case ST_UPPER:
+				ub[i] = x[i];
+				if ( bounds.getType( i ) == ST_EQUALITY )
+				{
+					lb[i] = x[i];
+				}
+				else
+				{
+					if ( useRelaxation == BT_TRUE )
+						lb[i] = x[i] - BOUNDRELAXATION;
+				}
+				break;
+
+			default:
+				return THROWERROR( RET_UNKNOWN_BUG );
+		}
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	a d d B o u n d
+ */
+returnValue QProblemB::addBound(	int number, SubjectToStatus B_status,
+									BooleanType updateCholesky
+									)
+{
+	int i, j;
+	int nFR = getNFR( );
+
+
+	/* consistency check */
+	if ( ( getStatus( ) == QPS_NOTINITIALISED )    ||
+		 ( getStatus( ) == QPS_AUXILIARYQPSOLVED ) ||
+		 ( getStatus( ) == QPS_HOMOTOPYQPSOLVED )  ||
+		 ( getStatus( ) == QPS_SOLVED )            )
+	{
+		return THROWERROR( RET_UNKNOWN_BUG );
+	}
+
+	/* Perform cholesky updates only if QProblemB has been initialised! */
+	if ( ( getStatus( ) == QPS_PREPARINGAUXILIARYQP ) || ( updateCholesky == BT_FALSE ) )
+	{
+		/* UPDATE INDICES */
+		if ( bounds.moveFreeToFixed( number,B_status ) != SUCCESSFUL_RETURN )
+			return THROWERROR( RET_ADDBOUND_FAILED );
+
+		return SUCCESSFUL_RETURN;
+	}
+
+
+	/* I) PERFORM CHOLESKY UPDATE: */
+	/* 1) Index of variable to be added within the list of free variables. */
+	int number_idx = bounds.getFree( )->getIndex( number );
+
+	real_t c, s;
+
+	/* 2) Use row-wise Givens rotations to restore upper triangular form of R. */
+	for( i=number_idx+1; i<nFR; ++i )
+	{
+		computeGivens( R[(i-1)*NVMAX + i],R[i*NVMAX + i], R[(i-1)*NVMAX + i],R[i*NVMAX + i],c,s );
+
+		for( j=(1+i); j<nFR; ++j ) /* last column of R is thrown away */
+			applyGivens( c,s,R[(i-1)*NVMAX + j],R[i*NVMAX + j], R[(i-1)*NVMAX + j],R[i*NVMAX + j] );
+	}
+
+	/* 3) Delete <number_idx>th column and ... */
+	for( i=0; i<nFR-1; ++i )
+		for( j=number_idx+1; j<nFR; ++j )
+			R[i*NVMAX + j-1] = R[i*NVMAX + j];
+	/* ... last column of R. */
+	for( i=0; i<nFR; ++i )
+		R[i*NVMAX + nFR-1] = 0.0;
+
+
+	/* II) UPDATE INDICES */
+	if ( bounds.moveFreeToFixed( number,B_status ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_ADDBOUND_FAILED );
+
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+returnValue QProblemB::removeBound(	int number,
+									BooleanType updateCholesky
+									)
+{
+	int i, ii;
+	int nFR = getNFR( );
+
+
+	/* consistency check */
+	if ( ( getStatus( ) == QPS_NOTINITIALISED )    ||
+		 ( getStatus( ) == QPS_AUXILIARYQPSOLVED ) ||
+		 ( getStatus( ) == QPS_HOMOTOPYQPSOLVED )  ||
+		 ( getStatus( ) == QPS_SOLVED )            )
+	{
+		return THROWERROR( RET_UNKNOWN_BUG );
+	}
+
+
+	/* I) UPDATE INDICES */
+	if ( bounds.moveFixedToFree( number ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_REMOVEBOUND_FAILED );
+
+	/* Perform cholesky updates only if QProblemB has been initialised! */
+	if ( ( getStatus( ) == QPS_PREPARINGAUXILIARYQP ) || ( updateCholesky == BT_FALSE ) )
+		return SUCCESSFUL_RETURN;
+
+
+	/* II) PERFORM CHOLESKY UPDATE */
+	int FR_idx[NVMAX];
+	if ( bounds.getFree( )->getNumberArray( FR_idx ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_REMOVEBOUND_FAILED );
+
+	/* 1) Calculate new column of cholesky decomposition. */
+	real_t rhs[NVMAX];
+	real_t r[NVMAX];
+	real_t r0 = H[number*NVMAX + number];
+
+	for( i=0; i<nFR; ++i )
+	{
+		ii = FR_idx[i];
+		rhs[i] = H[number*NVMAX + ii];
+	}
+
+	if ( backsolveR( rhs,BT_TRUE,BT_TRUE,r ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_REMOVEBOUND_FAILED );
+
+	for( i=0; i<nFR; ++i )
+		r0 -= r[i]*r[i];
+
+	/* 2) Store new column into R. */
+	for( i=0; i<nFR; ++i )
+		R[i*NVMAX + nFR] = r[i];
+
+	if ( r0 > 0.0 )
+		R[nFR*NVMAX + nFR] = sqrt( r0 );
+	else
+	{
+		hessianType = HST_SEMIDEF;
+		return THROWERROR( RET_HESSIAN_NOT_SPD );
+	}
+
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	b a c k s o l v e R  (CODE DUPLICATED IN QProblem CLASS!!!)
+ */
+returnValue QProblemB::backsolveR(	const real_t* const b, BooleanType transposed,
+									real_t* const a
+									)
+{
+	/* Call standard backsolve procedure (i.e. removingBound == BT_FALSE). */
+	return backsolveR( b,transposed,BT_FALSE,a );
+}
+
+
+/*
+ *	b a c k s o l v e R  (CODE DUPLICATED IN QProblem CLASS!!!)
+ */
+returnValue QProblemB::backsolveR(	const real_t* const b, BooleanType transposed,
+									BooleanType removingBound,
+									real_t* const a
+									)
+{
+	int i, j;
+	int nR = getNZ( );
+
+	real_t sum;
+
+	/* if backsolve is called while removing a bound, reduce nZ by one. */
+	if ( removingBound == BT_TRUE )
+		--nR;
+
+	/* nothing to do */
+	if ( nR <= 0 )
+		return SUCCESSFUL_RETURN;
+
+
+	/* Solve Ra = b, where R might be transposed. */
+	if ( transposed == BT_FALSE )
+	{
+		/* solve Ra = b */
+		for( i=(nR-1); i>=0; --i )
+		{
+			sum = b[i];
+			for( j=(i+1); j<nR; ++j )
+				sum -= R[i*NVMAX + j] * a[j];
+
+			if ( getAbs( R[i*NVMAX + i] ) > ZERO )
+				a[i] = sum / R[i*NVMAX + i];
+			else
+				return THROWERROR( RET_DIV_BY_ZERO );
+		}
+	}
+	else
+	{
+		/* solve R^T*a = b */
+		for( i=0; i<nR; ++i )
+		{
+			sum = b[i];
+
+			for( j=0; j<i; ++j )
+				sum -= R[j*NVMAX + i] * a[j];
+
+			if ( getAbs( R[i*NVMAX + i] ) > ZERO )
+				a[i] = sum / R[i*NVMAX + i];
+			else
+				return THROWERROR( RET_DIV_BY_ZERO );
+		}
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	h o t s t a r t _ d e t e r m i n e D a t a S h i f t
+ */
+returnValue QProblemB::hotstart_determineDataShift(	const int* const FX_idx,
+													const real_t* const g_new, const real_t* const lb_new, const real_t* const ub_new,
+													real_t* const delta_g, real_t* const delta_lb, real_t* const delta_ub,
+													BooleanType& Delta_bB_isZero
+													)
+{
+	int i, ii;
+	int nV  = getNV( );
+	int nFX = getNFX( );
+
+
+	/* 1) Calculate shift directions. */
+	for( i=0; i<nV; ++i )
+		delta_g[i]  = g_new[i]  - g[i];
+
+	if ( lb_new != 0 )
+	{
+		for( i=0; i<nV; ++i )
+			delta_lb[i] = lb_new[i] - lb[i];
+	}
+	else
+	{
+		/* if no lower bounds exist, assume the new lower bounds to be -infinity */
+		for( i=0; i<nV; ++i )
+			delta_lb[i] = -INFTY - lb[i];
+	}
+
+	if ( ub_new != 0 )
+	{
+		for( i=0; i<nV; ++i )
+			delta_ub[i] = ub_new[i] - ub[i];
+	}
+	else
+	{
+		/* if no upper bounds exist, assume the new upper bounds to be infinity */
+		for( i=0; i<nV; ++i )
+			delta_ub[i] = INFTY - ub[i];
+	}
+
+	/* 2) Determine if active bounds are to be shifted. */
+	Delta_bB_isZero = BT_TRUE;
+
+	for ( i=0; i<nFX; ++i )
+	{
+		ii = FX_idx[i];
+
+		if ( ( getAbs( delta_lb[ii] ) > EPS ) || ( getAbs( delta_ub[ii] ) > EPS ) )
+		{
+			Delta_bB_isZero = BT_FALSE;
+			break;
+		}
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	a r e B o u n d s C o n s i s t e n t
+ */
+BooleanType QProblemB::areBoundsConsistent(	const real_t* const delta_lb, const real_t* const delta_ub
+											) const
+{
+	int i;
+
+	/* Check if delta_lb[i] is greater than delta_ub[i]
+	 * for a component i whose bounds are already (numerically) equal. */
+	for( i=0; i<getNV( ); ++i )
+		if ( ( lb[i] > ub[i] - BOUNDTOL ) && ( delta_lb[i] > delta_ub[i] + EPS ) )
+			return BT_FALSE;
+
+	return BT_TRUE;
+}
+
+
+/*
+ *	s e t u p Q P d a t a
+ */
+returnValue QProblemB::setupQPdata(	const real_t* const _H, const real_t* const _R, const real_t* const _g,
+									const real_t* const _lb, const real_t* const _ub
+									)
+{
+	int i, j;
+	int nV = getNV( );
+
+	/* 1) Setup Hessian matrix and it's Cholesky factorization. */
+	if (_H != 0)
+	{
+		for( i=0; i<nV; ++i )
+			for( j=0; j<nV; ++j )
+				H[i*NVMAX + j] = _H[i*nV + j];
+		hasHessian = BT_TRUE;
+	}
+	else
+		hasHessian = BT_FALSE;
+
+	if (_R != 0)
+	{
+		for( i=0; i<nV; ++i )
+			for( j=0; j<nV; ++j )
+				R[i*NVMAX + j] = _R[i*nV + j];
+		hasCholesky = BT_TRUE;
+
+		/* If Hessian is not provided, store it's factorization in H, and that guy
+		 * is going to be used for H * x products (R^T * R * x in this case). */
+		if (hasHessian == BT_FALSE)
+			for( i=0; i<nV; ++i )
+				for( j=0; j<nV; ++j )
+					H[i*NVMAX + j] = _R[i*nV + j];
+	}
+	else
+		hasCholesky = BT_FALSE;
+
+	if (hasHessian == BT_FALSE && hasCholesky == BT_FALSE)
+		return THROWERROR( RET_INVALID_ARGUMENTS );
+
+	/* 2) Setup gradient vector. */
+	if ( _g == 0 )
+		return THROWERROR( RET_INVALID_ARGUMENTS );
+
+	for( i=0; i<nV; ++i )
+		g[i] = _g[i];
+
+	/* 3) Setup lower bounds vector. */
+	if ( _lb != 0 )
+	{
+		for( i=0; i<nV; ++i )
+			lb[i] = _lb[i];
+	}
+	else
+	{
+		/* if no lower bounds are specified, set them to -infinity */
+		for( i=0; i<nV; ++i )
+			lb[i] = -INFTY;
+	}
+
+	/* 4) Setup upper bounds vector. */
+	if ( _ub != 0 )
+	{
+		for( i=0; i<nV; ++i )
+			ub[i] = _ub[i];
+	}
+	else
+	{
+		/* if no upper bounds are specified, set them to infinity */
+		for( i=0; i<nV; ++i )
+			ub[i] = INFTY;
+	}
+
+	//printmatrix( "H",H,nV,nV );
+	//printmatrix( "R",R,nV,nV );
+	//printmatrix( "g",g,1,nV );
+	//printmatrix( "lb",lb,1,nV );
+	//printmatrix( "ub",ub,1,nV );
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+
+/*****************************************************************************
+ *  P R I V A T E                                                            *
+ *****************************************************************************/
+
+/*
+ *	h o t s t a r t _ d e t e r m i n e S t e p D i r e c t i o n
+ */
+returnValue QProblemB::hotstart_determineStepDirection(	const int* const FR_idx, const int* const FX_idx,
+														const real_t* const delta_g, const real_t* const delta_lb, const real_t* const delta_ub,
+														BooleanType Delta_bB_isZero,
+														real_t* const delta_xFX, real_t* const delta_xFR,
+														real_t* const delta_yFX
+														)
+{
+	int i, j, ii, jj;
+	int nFR = getNFR( );
+	int nFX = getNFX( );
+
+
+	/* initialise auxiliary vectors */
+	real_t HMX_delta_xFX[NVMAX];
+	for( i=0; i<nFR; ++i )
+		HMX_delta_xFX[i] = 0.0;
+
+
+	/* I) DETERMINE delta_xFX */
+	if ( nFX > 0 )
+	{
+		for( i=0; i<nFX; ++i )
+		{
+			ii = FX_idx[i];
+
+			if ( bounds.getStatus( ii ) == ST_LOWER )
+				delta_xFX[i] = delta_lb[ii];
+			else
+				delta_xFX[i] = delta_ub[ii];
+		}
+	}
+
+
+	/* II) DETERMINE delta_xFR */
+	if ( nFR > 0 )
+	{
+		/* auxiliary variables */
+		real_t delta_xFRz_TMP[NVMAX];
+		real_t delta_xFRz_RHS[NVMAX];
+
+		/* Determine delta_xFRz. */
+		if ( Delta_bB_isZero == BT_FALSE )
+		{
+			for( i=0; i<nFR; ++i )
+			{
+				ii = FR_idx[i];
+				for( j=0; j<nFX; ++j )
+				{
+					jj = FX_idx[j];
+					HMX_delta_xFX[i] += H[ii*NVMAX + jj] * delta_xFX[j];
+				}
+			}
+		}
+
+		if ( Delta_bB_isZero == BT_TRUE )
+		{
+			for( j=0; j<nFR; ++j )
+			{
+				jj = FR_idx[j];
+				delta_xFRz_RHS[j] = delta_g[jj];
+			}
+		}
+		else
+		{
+			for( j=0; j<nFR; ++j )
+			{
+				jj = FR_idx[j];
+				delta_xFRz_RHS[j] = delta_g[jj] + HMX_delta_xFX[j]; /* *ZFR */
+			}
+		}
+
+		for( i=0; i<nFR; ++i )
+			delta_xFR[i] = -delta_xFRz_RHS[i];
+
+		if ( backsolveR( delta_xFR,BT_TRUE,delta_xFRz_TMP ) != SUCCESSFUL_RETURN )
+			return THROWERROR( RET_STEPDIRECTION_FAILED_CHOLESKY );
+
+		if ( backsolveR( delta_xFRz_TMP,BT_FALSE,delta_xFR ) != SUCCESSFUL_RETURN )
+			return THROWERROR( RET_STEPDIRECTION_FAILED_CHOLESKY );
+	}
+
+
+	/* III) DETERMINE delta_yFX */
+	if ( nFX > 0 )
+	{
+		for( i=0; i<nFX; ++i )
+		{
+			ii = FX_idx[i];
+
+			delta_yFX[i] = 0.0;
+			for( j=0; j<nFR; ++j )
+			{
+				jj = FR_idx[j];
+				delta_yFX[i] += H[ii*NVMAX + jj] * delta_xFR[j];
+			}
+
+			if ( Delta_bB_isZero == BT_FALSE )
+			{
+				for( j=0; j<nFX; ++j )
+				{
+					jj = FX_idx[j];
+					delta_yFX[i] += H[ii*NVMAX + jj] * delta_xFX[j];
+				}
+			}
+
+			delta_yFX[i] += delta_g[ii];
+		}
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	h o t s t a r t _ d e t e r m i n e S t e p L e n g t h
+ */
+returnValue QProblemB::hotstart_determineStepLength(	const int* const FR_idx, const int* const FX_idx,
+														const real_t* const delta_lb, const real_t* const delta_ub,
+														const real_t* const delta_xFR,
+														const real_t* const delta_yFX,
+														int& BC_idx, SubjectToStatus& BC_status
+														)
+{
+	int i, ii;
+	int nFR = getNFR( );
+	int nFX = getNFX( );
+
+	real_t tau_tmp;
+	real_t tau_new = 1.0;
+
+	BC_idx = 0;
+	BC_status = ST_UNDEFINED;
+
+
+	/* I) DETERMINE MAXIMUM DUAL STEPLENGTH, i.e. ensure that
+	 *    active dual bounds remain valid (ignoring implicitly fixed variables): */
+	for( i=0; i<nFX; ++i )
+	{
+		ii = FX_idx[i];
+
+		if ( bounds.getType( ii ) != ST_EQUALITY )
+		{
+			if ( bounds.getStatus( ii ) == ST_LOWER )
+			{
+				/* 1) Active lower bounds. */
+				if ( ( delta_yFX[i] < -ZERO ) && ( y[ii] >= 0.0 ) )
+				{
+					tau_tmp = y[ii] / ( -delta_yFX[i] );
+					if ( tau_tmp < tau_new )
+					{
+						if ( tau_tmp >= 0.0 )
+						{
+							tau_new = tau_tmp;
+							BC_idx = ii;
+							BC_status = ST_INACTIVE;
+						}
+					}
+				}
+			}
+			else
+			{
+				/* 2) Active upper bounds. */
+				if ( ( delta_yFX[i] > ZERO ) && ( y[ii] <= 0.0 ) )
+				{
+					tau_tmp = y[ii] / ( -delta_yFX[i] );
+					if ( tau_tmp < tau_new )
+					{
+						if ( tau_tmp >= 0.0 )
+						{
+							tau_new = tau_tmp;
+							BC_idx = ii;
+							BC_status = ST_INACTIVE;
+						}
+					}
+				}
+			}
+		}
+	}
+
+
+	/* II) DETERMINE MAXIMUM PRIMAL STEPLENGTH, i.e. ensure that
+	 *     inactive bounds remain valid (ignoring unbounded variables). */
+	/* 1) Inactive lower bounds. */
+	if ( bounds.isNoLower( ) == BT_FALSE )
+	{
+		for( i=0; i<nFR; ++i )
+		{
+			ii = FR_idx[i];
+
+			if ( bounds.getType( ii ) != ST_UNBOUNDED )
+			{
+				if ( delta_lb[ii] > delta_xFR[i] )
+				{
+					if ( x[ii] > lb[ii] )
+						tau_tmp = ( x[ii] - lb[ii] ) / ( delta_lb[ii] - delta_xFR[i] );
+					else
+						tau_tmp = 0.0;
+
+					if ( tau_tmp < tau_new )
+					{
+						if ( tau_tmp >= 0.0 )
+						{
+							tau_new = tau_tmp;
+							BC_idx = ii;
+							BC_status = ST_LOWER;
+						}
+					}
+				}
+			}
+		}
+	}
+
+	/* 2) Inactive upper bounds. */
+	if ( bounds.isNoUpper( ) == BT_FALSE )
+	{
+		for( i=0; i<nFR; ++i )
+		{
+			ii = FR_idx[i];
+
+			if ( bounds.getType( ii ) != ST_UNBOUNDED )
+			{
+				if ( delta_ub[ii] < delta_xFR[i] )
+				{
+					if ( x[ii] < ub[ii] )
+						tau_tmp = ( x[ii] - ub[ii] ) / ( delta_ub[ii] - delta_xFR[i] );
+					else
+						tau_tmp = 0.0;
+
+					if ( tau_tmp < tau_new )
+					{
+						if ( tau_tmp >= 0.0 )
+						{
+							tau_new = tau_tmp;
+							BC_idx = ii;
+							BC_status = ST_UPPER;
+						}
+					}
+				}
+			}
+		}
+	}
+
+
+	/* III) SET MAXIMUM HOMOTOPY STEPLENGTH */
+	tau = tau_new;
+
+	if ( printlevel ==  PL_HIGH )
+	{
+		#ifdef PC_DEBUG
+		char messageString[80];
+
+		if ( BC_status == ST_UNDEFINED )
+			sprintf( messageString,"Stepsize is %.6e!",tau );
+		else
+			sprintf( messageString,"Stepsize is %.6e! (BC_idx = %d, BC_status = %d)",tau,BC_idx,BC_status );
+
+		getGlobalMessageHandler( )->throwInfo( RET_STEPSIZE_NONPOSITIVE,messageString,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE );
+		#endif
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	h o t s t a r t _ p e r f o r m S t e p
+ */
+returnValue QProblemB::hotstart_performStep(	const int* const FR_idx, const int* const FX_idx,
+												const real_t* const delta_g, const real_t* const  delta_lb, const real_t* const delta_ub,
+												const real_t* const delta_xFX, const real_t* const delta_xFR,
+												const real_t* const delta_yFX,
+												int BC_idx, SubjectToStatus BC_status
+												)
+{
+	int i, ii;
+	int nV  = getNV( );
+	int nFR = getNFR( );
+	int nFX = getNFX( );
+
+
+	/* I) CHECK BOUNDS' CONSISTENCY */
+	if ( areBoundsConsistent( delta_lb,delta_ub ) == BT_FALSE )
+	{
+		infeasible = BT_TRUE;
+		tau = 0.0;
+
+		return THROWERROR( RET_QP_INFEASIBLE );
+	}
+
+
+	/* II) GO TO ACTIVE SET CHANGE */
+	if ( tau > ZERO )
+	{
+		/* 1) Perform step in primal und dual space. */
+		for( i=0; i<nFR; ++i )
+		{
+			ii = FR_idx[i];
+			x[ii] += tau*delta_xFR[i];
+		}
+
+		for( i=0; i<nFX; ++i )
+		{
+			ii = FX_idx[i];
+			x[ii] += tau*delta_xFX[i];
+			y[ii] += tau*delta_yFX[i];
+		}
+
+		/* 2) Shift QP data. */
+		for( i=0; i<nV; ++i )
+		{
+			g[i]  += tau*delta_g[i];
+			lb[i] += tau*delta_lb[i];
+			ub[i] += tau*delta_ub[i];
+		}
+	}
+	else
+	{
+		/* print a stepsize warning if stepsize is zero */
+		#ifdef PC_DEBUG
+		char messageString[80];
+		sprintf( messageString,"Stepsize is %.6e",tau );
+		getGlobalMessageHandler( )->throwWarning( RET_STEPSIZE,messageString,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE );
+		#endif
+	}
+
+
+	/* setup output preferences */
+	#ifdef PC_DEBUG
+	char messageString[80];
+  	VisibilityStatus visibilityStatus;
+
+  	if ( printlevel == PL_HIGH )
+		visibilityStatus = VS_VISIBLE;
+	else
+		visibilityStatus = VS_HIDDEN;
+	#endif
+
+
+	/* III) UPDATE ACTIVE SET */
+	switch ( BC_status )
+	{
+		/* Optimal solution found as no working set change detected. */
+		case ST_UNDEFINED:
+			return RET_OPTIMAL_SOLUTION_FOUND;
+
+
+		/* Remove one variable from active set. */
+		case ST_INACTIVE:
+			#ifdef PC_DEBUG
+			sprintf( messageString,"bound no. %d.", BC_idx );
+			getGlobalMessageHandler( )->throwInfo( RET_REMOVE_FROM_ACTIVESET,messageString,__FUNCTION__,__FILE__,__LINE__,visibilityStatus );
+			#endif
+
+			if ( removeBound( BC_idx,BT_TRUE ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_REMOVE_FROM_ACTIVESET_FAILED );
+
+			y[BC_idx] = 0.0;
+			break;
+
+
+		/* Add one variable to active set. */
+		default:
+			#ifdef PC_DEBUG
+			if ( BC_status == ST_LOWER )
+				sprintf( messageString,"lower bound no. %d.", BC_idx );
+			else
+				sprintf( messageString,"upper bound no. %d.", BC_idx );
+				getGlobalMessageHandler( )->throwInfo( RET_ADD_TO_ACTIVESET,messageString,__FUNCTION__,__FILE__,__LINE__,visibilityStatus );
+			#endif
+
+			if ( addBound( BC_idx,BC_status,BT_TRUE ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_ADD_TO_ACTIVESET_FAILED );
+			break;
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+#ifdef PC_DEBUG  /* Define print functions only for debugging! */
+
+/*
+ *	p r i n t I t e r a t i o n
+ */
+returnValue QProblemB::printIteration( 	int iteration,
+										int BC_idx,	SubjectToStatus BC_status
+		  								)
+{
+	char myPrintfString[160];
+
+	/* consistency check */
+	if ( iteration < 0 )
+		return THROWERROR( RET_INVALID_ARGUMENTS );
+
+	/* nothing to do */
+	if ( printlevel != PL_MEDIUM )
+		return SUCCESSFUL_RETURN;
+
+
+	/* 1) Print header at first iteration. */
+ 	if ( iteration == 0 )
+	{
+		sprintf( myPrintfString,"\n##############  qpOASES  --  QP NO.%4.1d  ###############\n", count );
+		myPrintf( myPrintfString );
+
+		sprintf( myPrintfString,"   Iter   |   StepLength    |       Info      |   nFX   \n" );
+		myPrintf( myPrintfString );
+	}
+
+	/* 2) Print iteration line. */
+	if ( BC_status == ST_UNDEFINED )
+	{
+		sprintf( myPrintfString,"   %4.1d   |   %1.5e   |    QP SOLVED    |  %4.1d   \n", iteration,tau,getNFX( ) );
+		myPrintf( myPrintfString );
+	}
+	else
+	{
+		char info[8];
+
+		if ( BC_status == ST_INACTIVE )
+			sprintf( info,"REM BND" );
+		else
+			sprintf( info,"ADD BND" );
+
+		sprintf( myPrintfString,"   %4.1d   |   %1.5e   |   %s%4.1d   |  %4.1d   \n", iteration,tau,info,BC_idx,getNFX( ) );
+		myPrintf( myPrintfString );
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+#endif  /* PC_DEBUG */
+
+
+
+/*
+ *	c h e c k K K T c o n d i t i o n s
+ */
+returnValue QProblemB::checkKKTconditions( )
+{
+	#ifdef __PERFORM_KKT_TEST__
+
+	int i, j;
+	int nV = getNV( );
+
+	real_t tmp;
+	real_t maxKKTviolation = 0.0;
+
+
+	/* 1) Check for Hx + g - y*A' = 0  (here: A = Id). */
+	for( i=0; i<nV; ++i )
+	{
+		tmp = g[i];
+
+		for( j=0; j<nV; ++j )
+			tmp += H[i*nV + j] * x[j];
+
+		tmp -= y[i];
+
+		if ( getAbs( tmp ) > maxKKTviolation )
+			maxKKTviolation = getAbs( tmp );
+	}
+
+	/* 2) Check for lb <= x <= ub. */
+	for( i=0; i<nV; ++i )
+	{
+		if ( lb[i] - x[i] > maxKKTviolation )
+			maxKKTviolation = lb[i] - x[i];
+
+		if ( x[i] - ub[i] > maxKKTviolation )
+			maxKKTviolation = x[i] - ub[i];
+	}
+
+	/* 3) Check for correct sign of y and for complementary slackness. */
+	for( i=0; i<nV; ++i )
+	{
+		switch ( bounds.getStatus( i ) )
+		{
+			case ST_LOWER:
+				if ( -y[i] > maxKKTviolation )
+					maxKKTviolation = -y[i];
+				if ( getAbs( ( x[i] - lb[i] ) * y[i] ) > maxKKTviolation )
+					maxKKTviolation = getAbs( ( x[i] - lb[i] ) * y[i] );
+				break;
+
+			case ST_UPPER:
+				if ( y[i] > maxKKTviolation )
+					maxKKTviolation = y[i];
+				if ( getAbs( ( ub[i] - x[i] ) * y[i] ) > maxKKTviolation )
+					maxKKTviolation = getAbs( ( ub[i] - x[i] ) * y[i] );
+				break;
+
+			default: /* inactive */
+			if ( getAbs( y[i] ) > maxKKTviolation )
+					maxKKTviolation = getAbs( y[i] );
+				break;
+		}
+	}
+
+	if ( maxKKTviolation > CRITICALACCURACY )
+		return RET_NO_SOLUTION;
+
+	if ( maxKKTviolation > DESIREDACCURACY )
+		return RET_INACCURATE_SOLUTION;
+
+	#endif /* __PERFORM_KKT_TEST__ */
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/QProblemB.ipp b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/QProblemB.ipp
new file mode 100644
index 0000000..0b03130
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/QProblemB.ipp
@@ -0,0 +1,425 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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 SRC/QProblemB.ipp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Implementation of inlined member functions of the QProblemB class which 
+ *	is able to use the newly developed online active set strategy for 
+ *	parametric quadratic programming.
+ */
+
+
+
+#include <math.h>
+
+
+
+/*****************************************************************************
+ *  P U B L I C                                                              *
+ *****************************************************************************/
+
+/*
+ *	g e t H
+ */
+inline returnValue QProblemB::getH( real_t* const _H ) const
+{
+	int i;
+
+	for ( i=0; i<getNV( )*getNV( ); ++i )
+		_H[i] = H[i];
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	g e t G
+ */
+inline returnValue QProblemB::getG( real_t* const _g ) const
+{
+	int i;
+
+	for ( i=0; i<getNV( ); ++i )
+		_g[i] = g[i];
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	g e t L B
+ */
+inline returnValue QProblemB::getLB( real_t* const _lb ) const
+{
+	int i;
+
+	for ( i=0; i<getNV( ); ++i )
+		_lb[i] = lb[i];
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	g e t L B
+ */
+inline returnValue QProblemB::getLB( int number, real_t& value ) const
+{
+	if ( ( number >= 0 ) && ( number < getNV( ) ) )
+	{
+		value = lb[number];
+		return SUCCESSFUL_RETURN;
+	}
+	else
+	{
+		return THROWERROR( RET_INDEX_OUT_OF_BOUNDS );
+	}
+}
+
+
+/*
+ *	g e t U B
+ */
+inline returnValue QProblemB::getUB( real_t* const _ub ) const
+{
+	int i;
+
+	for ( i=0; i<getNV( ); ++i )
+		_ub[i] = ub[i];
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	g e t U B
+ */
+inline returnValue QProblemB::getUB( int number, real_t& value ) const
+{
+	if ( ( number >= 0 ) && ( number < getNV( ) ) )
+	{
+		value = ub[number];
+		return SUCCESSFUL_RETURN;
+	}
+	else
+	{
+		return THROWERROR( RET_INDEX_OUT_OF_BOUNDS );
+	}
+}
+
+
+/*
+ *	g e t B o u n d s
+ */
+inline returnValue QProblemB::getBounds( Bounds* const _bounds ) const
+{
+	*_bounds = bounds;
+	
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	g e t N V
+ */
+inline int QProblemB::getNV( ) const
+{
+	return bounds.getNV( );
+}
+
+
+/*
+ *	g e t N F R
+ */
+inline int QProblemB::getNFR( )
+{
+	return bounds.getNFR( );
+}
+
+
+/*
+ *	g e t N F X
+ */
+inline int QProblemB::getNFX( )
+{
+	return bounds.getNFX( );
+}
+
+
+/*
+ *	g e t N F V
+ */
+inline int QProblemB::getNFV( ) const
+{
+	return bounds.getNFV( );
+}
+
+
+/*
+ *	g e t S t a t u s
+ */
+inline QProblemStatus QProblemB::getStatus( ) const
+{
+	return status;
+}
+
+
+/*
+ *	i s I n i t i a l i s e d
+ */
+inline BooleanType QProblemB::isInitialised( ) const
+{
+	if ( status == QPS_NOTINITIALISED )
+		return BT_FALSE;
+	else
+		return BT_TRUE;
+}
+
+
+/*
+ *	i s S o l v e d
+ */
+inline BooleanType QProblemB::isSolved( ) const
+{
+	if ( status == QPS_SOLVED )
+		return BT_TRUE;
+	else
+		return BT_FALSE;
+}
+
+
+/*
+ *	i s I n f e a s i b l e
+ */
+inline BooleanType QProblemB::isInfeasible( ) const
+{
+	return infeasible;
+}
+
+
+/*
+ *	i s U n b o u n d e d
+ */
+inline BooleanType QProblemB::isUnbounded( ) const
+{
+	return unbounded;
+}
+
+
+/*
+ *	g e t P r i n t L e v e l
+ */
+inline PrintLevel QProblemB::getPrintLevel( ) const
+{
+	return printlevel;
+}
+
+
+/*
+ *	g e t H e s s i a n T y p e
+ */
+inline HessianType QProblemB::getHessianType( ) const
+{
+	return hessianType;
+}
+
+
+/*
+ *	s e t H e s s i a n T y p e
+ */
+inline returnValue QProblemB::setHessianType( HessianType _hessianType )
+{
+	hessianType = _hessianType;
+	return SUCCESSFUL_RETURN;
+}
+
+
+
+/*****************************************************************************
+ *  P R O T E C T E D                                                        *
+ *****************************************************************************/
+
+/*
+ *	s e t H
+ */
+inline returnValue QProblemB::setH( const real_t* const H_new )
+{
+	int i, j;
+
+	int nV = getNV();
+
+	for( i=0; i<nV; ++i )
+		for( j=0; j<nV; ++j )
+			H[i*NVMAX + j] = H_new[i*nV + j];
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s e t G
+ */
+inline returnValue QProblemB::setG( const real_t* const g_new )
+{
+	int i;
+
+	int nV = getNV();
+
+	for( i=0; i<nV; ++i )
+		g[i] = g_new[i];
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s e t L B
+ */
+inline returnValue QProblemB::setLB( const real_t* const lb_new )
+{
+	int i;
+
+	int nV = getNV();
+
+	for( i=0; i<nV; ++i )
+		lb[i] = lb_new[i];
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s e t L B
+ */
+inline returnValue QProblemB::setLB( int number, real_t value )
+{
+	if ( ( number >= 0 ) && ( number < getNV( ) ) )
+	{
+		lb[number] = value;
+		return SUCCESSFUL_RETURN;
+	}
+	else
+	{
+		return THROWERROR( RET_INDEX_OUT_OF_BOUNDS );
+	}
+}
+
+
+/*
+ *	s e t U B
+ */
+inline returnValue QProblemB::setUB( const real_t* const ub_new )
+{
+	int i;
+
+	int nV = getNV();
+
+	for( i=0; i<nV; ++i )
+		ub[i] = ub_new[i];
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s e t U B
+ */
+inline returnValue QProblemB::setUB( int number, real_t value )
+{
+	if ( ( number >= 0 ) && ( number < getNV( ) ) )
+	{
+		ub[number] = value;
+
+		return SUCCESSFUL_RETURN;
+	}
+	else
+	{
+		return THROWERROR( RET_INDEX_OUT_OF_BOUNDS );
+	}
+}
+
+
+/*
+ *	c o m p u t e G i v e n s
+ */
+inline void QProblemB::computeGivens(	real_t xold, real_t yold, real_t& xnew, real_t& ynew,
+										real_t& c, real_t& s 
+										) const
+{
+    if ( getAbs( yold ) <= ZERO )
+	{
+        c = 1.0;
+        s = 0.0;
+		
+		xnew = xold;
+		ynew = yold;
+	}
+    else
+	{
+		real_t t, mu;
+
+        mu = getAbs( xold );
+		if ( getAbs( yold ) > mu )
+			mu = getAbs( yold );
+		
+        t = mu * sqrt( (xold/mu)*(xold/mu) + (yold/mu)*(yold/mu) );
+		
+		if ( xold < 0.0 )
+            t = -t;
+		
+        c = xold/t;
+        s = yold/t;
+        xnew = t;
+        ynew = 0.0;
+	}
+	
+	return;
+}
+
+		
+/*
+ *	a p p l y G i v e n s
+ */
+inline void QProblemB::applyGivens(	real_t c, real_t s, real_t xold, real_t yold,
+									real_t& xnew, real_t& ynew 
+									) const
+{
+	/* Usual Givens plane rotation requiring four multiplications. */
+	xnew =  c*xold + s*yold;
+	ynew = -s*xold + c*yold;
+// 	double nu = s/(1.0+c);
+// 
+// 	xnew = xold*c + yold*s;
+// 	ynew = (xnew+xold)*nu - yold;
+	
+	return;
+}
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/SubjectTo.cpp b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/SubjectTo.cpp
new file mode 100644
index 0000000..371f0d7
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/SubjectTo.cpp
@@ -0,0 +1,200 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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 SRC/SubjectTo.cpp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Implementation of the SubjectTo class designed to manage working sets of
+ *	constraints and bounds within a QProblem.
+ */
+
+
+#include <SubjectTo.hpp>
+
+
+/*****************************************************************************
+ *  P U B L I C                                                              *
+ *****************************************************************************/
+
+
+/*
+ *	S u b j e c t T o
+ */
+SubjectTo::SubjectTo( ) :	noLower( BT_TRUE ),
+							noUpper( BT_TRUE ),
+							size( 0 )
+{
+	int i;
+
+	for( i=0; i<size; ++i )
+	{
+		type[i] = ST_UNKNOWN;
+		status[i] = ST_UNDEFINED;
+	}
+}
+
+
+/*
+ *	S u b j e c t T o
+ */
+SubjectTo::SubjectTo( const SubjectTo& rhs ) :	noLower( rhs.noLower ),
+												noUpper( rhs.noUpper ),
+												size( rhs.size )
+{
+	int i;
+
+	for( i=0; i<size; ++i )
+	{
+		type[i] = rhs.type[i];
+		status[i] = rhs.status[i];
+	}
+}
+
+
+/*
+ *	~ S u b j e c t T o
+ */
+SubjectTo::~SubjectTo( )
+{
+}
+
+
+/*
+ *	o p e r a t o r =
+ */
+SubjectTo& SubjectTo::operator=( const SubjectTo& rhs )
+{
+	int i;
+
+	if ( this != &rhs )
+	{
+		size = rhs.size;
+
+		for( i=0; i<size; ++i )
+		{
+			type[i] = rhs.type[i];
+			status[i] = rhs.status[i];
+		}
+
+		noLower = rhs.noLower;
+		noUpper = rhs.noUpper;
+	}
+
+	return *this;
+}
+
+
+
+/*
+ *	i n i t
+ */
+returnValue SubjectTo::init( int n )
+{
+	int i;
+
+	size = n;
+
+	noLower = BT_TRUE;
+	noUpper = BT_TRUE;
+
+	for( i=0; i<size; ++i )
+	{
+		type[i] = ST_UNKNOWN;
+		status[i] = ST_UNDEFINED;
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+
+/*****************************************************************************
+ *  P R O T E C T E D                                                        *
+ *****************************************************************************/
+
+/*
+ *	a d d I n d e x
+ */
+returnValue SubjectTo::addIndex(	Indexlist* const indexlist,
+									int newnumber, SubjectToStatus newstatus
+									)
+{
+	/* consistency check */
+	if ( status[newnumber] == newstatus )
+		return THROWERROR( RET_INDEX_ALREADY_OF_DESIRED_STATUS );
+
+	status[newnumber] = newstatus;
+
+	if ( indexlist->addNumber( newnumber ) == RET_INDEXLIST_EXCEEDS_MAX_LENGTH )
+		return THROWERROR( RET_ADDINDEX_FAILED );
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	r e m o v e I n d e x
+ */
+returnValue SubjectTo::removeIndex(	Indexlist* const indexlist, 
+									int removenumber
+									)
+{
+	status[removenumber] = ST_UNDEFINED;
+
+	if ( indexlist->removeNumber( removenumber ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_UNKNOWN_BUG );
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s w a p I n d e x
+ */
+returnValue SubjectTo::swapIndex(	Indexlist* const indexlist,
+									int number1, int number2
+									)
+{
+	/* consistency checks */
+	if ( status[number1] != status[number2] )
+		return THROWERROR( RET_SWAPINDEX_FAILED );
+
+	if ( number1 == number2 )
+	{
+		THROWWARNING( RET_NOTHING_TO_DO );
+		return SUCCESSFUL_RETURN;
+	}
+
+	if ( indexlist->swapNumbers( number1,number2 ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_SWAPINDEX_FAILED );
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/SubjectTo.ipp b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/SubjectTo.ipp
new file mode 100644
index 0000000..32215ba
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/SubjectTo.ipp
@@ -0,0 +1,132 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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 SRC/SubjectTo.ipp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Implementation of the inlined member functions of the SubjectTo class 
+ *	designed to manage working sets of constraints and bounds within a QProblem.
+ */
+
+
+/*****************************************************************************
+ *  P U B L I C                                                              *
+ *****************************************************************************/
+ 
+
+/*
+ *	g e t T y p e
+ */
+inline SubjectToType SubjectTo::getType( int i ) const
+{
+	if ( ( i >= 0 ) && ( i < size ) )
+		return type[i];
+	else
+		return ST_UNKNOWN;
+}
+
+
+/*
+ *	g e t S t a t u s
+ */
+inline SubjectToStatus SubjectTo::getStatus( int i ) const
+{
+	if ( ( i >= 0 ) && ( i < size ) )
+		return status[i];
+	else
+		return ST_UNDEFINED;
+}
+
+
+/*
+ *	s e t T y p e
+ */
+inline returnValue SubjectTo::setType( int i, SubjectToType value )
+{
+	if ( ( i >= 0 ) && ( i < size ) )
+	{
+		type[i] = value;
+		return SUCCESSFUL_RETURN;
+	}
+	else
+		return THROWERROR( RET_INDEX_OUT_OF_BOUNDS );
+}
+
+
+/*
+ *	s e t S t a t u s
+ */
+inline returnValue SubjectTo::setStatus( int i, SubjectToStatus value )
+{
+	if ( ( i >= 0 ) && ( i < size ) )
+	{
+		status[i] = value;
+		return SUCCESSFUL_RETURN;
+	}
+	else
+		return THROWERROR( RET_INDEX_OUT_OF_BOUNDS );
+}
+
+
+/*
+ *	s e t N o L o w e r
+ */
+inline void SubjectTo::setNoLower( BooleanType _status )
+{
+	noLower = _status;
+}
+ 
+
+/*
+ *	s e t N o U p p e r
+ */
+inline void SubjectTo::setNoUpper( BooleanType _status )
+{
+	noUpper = _status;
+}
+
+
+/*
+ *	i s N o L o w e r
+ */
+inline BooleanType SubjectTo::isNoLower( ) const
+{
+	return noLower;
+}
+
+ 
+/*
+ *	i s N o L o w e r
+ */
+inline BooleanType SubjectTo::isNoUpper( ) const
+{
+	return noUpper;
+}
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Utils.cpp b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Utils.cpp
new file mode 100644
index 0000000..c11722c
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Utils.cpp
@@ -0,0 +1,471 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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 SRC/Utils.cpp
+ *	\author Hans Joachim Ferreau, Eckhard Arnold
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Implementation of some inlined utilities for working with the different QProblem
+ *  classes.
+ */
+
+
+#include <math.h>
+
+#if defined(__WIN32__) || defined(WIN32)
+  #include <windows.h>
+#elif defined(LINUX)
+  #include <sys/stat.h>
+  #include <sys/time.h>
+#endif
+
+#ifdef __MATLAB__
+  #include <mex.h>
+#endif
+
+
+#include <Utils.hpp>
+
+
+
+#ifdef PC_DEBUG  /* Define print functions only for debugging! */
+/*
+ *	p r i n t
+ */
+returnValue print( const real_t* const v, int n )
+{
+	int i;
+	char myPrintfString[160];
+
+	/* Print a vector. */
+	myPrintf( "[\t" );
+	for( i=0; i<n; ++i )
+	{
+		sprintf( myPrintfString," %.16e\t", v[i] );
+		myPrintf( myPrintfString );
+	}
+	myPrintf( "]\n" );
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	p r i n t
+ */
+returnValue print(	const real_t* const v, int n,
+					const int* const V_idx
+					)
+{
+	int i;
+	char myPrintfString[160];
+
+	/* Print a permuted vector. */
+	myPrintf( "[\t" );
+	for( i=0; i<n; ++i )
+	{
+		sprintf( myPrintfString," %.16e\t", v[ V_idx[i] ] );
+		myPrintf( myPrintfString );
+	}
+	myPrintf( "]\n" );
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	p r i n t
+ */
+returnValue print(	const real_t* const v, int n,
+					const char* name
+					)
+{
+	char myPrintfString[160];
+
+	/* Print vector name ... */
+	sprintf( myPrintfString,"%s = ", name );
+	myPrintf( myPrintfString );
+
+	/* ... and the vector itself. */
+	return print( v, n );
+}
+
+
+/*
+ *	p r i n t
+ */
+returnValue print( const real_t* const M, int nrow, int ncol )
+{
+	int i;
+
+	/* Print a matrix as a collection of row vectors. */
+	for( i=0; i<nrow; ++i )
+		print( &(M[i*ncol]), ncol );
+	myPrintf( "\n" );
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	p r i n t
+ */
+returnValue print(	const real_t* const M, int nrow, int ncol,
+					const int* const ROW_idx, const int* const COL_idx
+					)
+{
+	int i;
+
+	/* Print a permuted matrix as a collection of permuted row vectors. */
+	for( i=0; i<nrow; ++i )
+		print( &( M[ ROW_idx[i]*ncol ] ), ncol, COL_idx );
+	myPrintf( "\n" );
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	p r i n t
+ */
+returnValue print(	const real_t* const M, int nrow, int ncol,
+					const char* name
+					)
+{
+	char myPrintfString[160];
+
+	/* Print matrix name ... */
+	sprintf( myPrintfString,"%s = ", name );
+	myPrintf( myPrintfString );
+
+	/* ... and the matrix itself. */
+	return print( M, nrow, ncol );
+}
+
+
+/*
+ *	p r i n t
+ */
+returnValue print( const int* const index, int n )
+{
+	int i;
+	char myPrintfString[160];
+
+	/* Print a indexlist. */
+	myPrintf( "[\t" );
+	for( i=0; i<n; ++i )
+	{
+		sprintf( myPrintfString," %d\t", index[i] );
+		myPrintf( myPrintfString );
+	}
+	myPrintf( "]\n" );
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	p r i n t
+ */
+returnValue print(	const int* const index, int n,
+					const char* name
+					)
+{
+	char myPrintfString[160];
+
+	/* Print indexlist name ... */
+	sprintf( myPrintfString,"%s = ", name );
+	myPrintf( myPrintfString );
+
+	/* ... and the indexlist itself. */
+	return print( index, n );
+}
+
+
+/*
+ *	m y P r i n t f
+ */
+returnValue myPrintf( const char* s )
+{
+	#ifdef __MATLAB__
+	mexPrintf( s );
+	#else
+	myFILE* outputfile = getGlobalMessageHandler( )->getOutputFile( );
+	if ( outputfile == 0 )
+		return THROWERROR( RET_NO_GLOBAL_MESSAGE_OUTPUTFILE );
+
+	fprintf( outputfile, "%s", s );
+	#endif
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	p r i n t C o p y r i g h t N o t i c e
+ */
+returnValue printCopyrightNotice( )
+{
+	return myPrintf( "\nqpOASES -- An Implementation of the Online Active Set Strategy.\nCopyright (C) 2007-2008 by Hans Joachim Ferreau et al. All rights reserved.\n\nqpOASES is distributed under the terms of the \nGNU Lesser General Public License 2.1 in the hope that it will be \nuseful, but WITHOUT ANY WARRANTY; without even the implied warranty \nof MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. \nSee the GNU Lesser General Public License for more details.\n\n" );
+}
+
+
+/*
+ *	r e a d F r o m F i l e
+ */
+returnValue readFromFile(	real_t* data, int nrow, int ncol,
+							const char* datafilename
+							)
+{
+	int i, j;
+	float float_data;
+	myFILE* datafile;
+
+	/* 1) Open file. */
+	if ( ( datafile = fopen( datafilename, "r" ) ) == 0 )
+	{
+		char errstr[80];
+		sprintf( errstr,"(%s)",datafilename );
+		return getGlobalMessageHandler( )->throwError( RET_UNABLE_TO_OPEN_FILE,errstr,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE );
+	}
+
+	/* 2) Read data from file. */
+	for( i=0; i<nrow; ++i )
+	{
+		for( j=0; j<ncol; ++j )
+		{
+			if ( fscanf( datafile, "%f ", &float_data ) == 0 )
+			{
+				fclose( datafile );
+				char errstr[80];
+				sprintf( errstr,"(%s)",datafilename );
+				return getGlobalMessageHandler( )->throwError( RET_UNABLE_TO_READ_FILE,errstr,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE );
+			}
+			data[i*ncol + j] = ( (real_t) float_data );
+		}
+	}
+
+	/* 3) Close file. */
+	fclose( datafile );
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	r e a d F r o m F i l e
+ */
+returnValue readFromFile(	real_t* data, int n,
+							const char* datafilename
+							)
+{
+	return readFromFile( data, n, 1, datafilename );
+}
+
+
+
+/*
+ *	r e a d F r o m F i l e
+ */
+returnValue readFromFile(	int* data, int n,
+							const char* datafilename
+							)
+{
+	int i;
+	myFILE* datafile;
+
+	/* 1) Open file. */
+	if ( ( datafile = fopen( datafilename, "r" ) ) == 0 )
+	{
+		char errstr[80];
+		sprintf( errstr,"(%s)",datafilename );
+		return getGlobalMessageHandler( )->throwError( RET_UNABLE_TO_OPEN_FILE,errstr,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE );
+	}
+
+	/* 2) Read data from file. */
+	for( i=0; i<n; ++i )
+	{
+		if ( fscanf( datafile, "%d\n", &(data[i]) ) == 0 )
+		{
+			fclose( datafile );
+			char errstr[80];
+			sprintf( errstr,"(%s)",datafilename );
+			return getGlobalMessageHandler( )->throwError( RET_UNABLE_TO_READ_FILE,errstr,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE );
+		}
+	}
+
+	/* 3) Close file. */
+	fclose( datafile );
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	w r i t e I n t o F i l e
+ */
+returnValue writeIntoFile(	const real_t* const data, int nrow, int ncol,
+							const char* datafilename, BooleanType append
+							)
+{
+	int i, j;
+	myFILE* datafile;
+
+	/* 1) Open file. */
+	if ( append == BT_TRUE )
+	{
+		/* append data */
+		if ( ( datafile = fopen( datafilename, "a" ) ) == 0 )
+		{
+			char errstr[80];
+			sprintf( errstr,"(%s)",datafilename );
+			return getGlobalMessageHandler( )->throwError( RET_UNABLE_TO_OPEN_FILE,errstr,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE );
+		}
+	}
+	else
+	{
+		/* do not append data */
+		if ( ( datafile = fopen( datafilename, "w" ) ) == 0 )
+		{
+			char errstr[80];
+			sprintf( errstr,"(%s)",datafilename );
+			return getGlobalMessageHandler( )->throwError( RET_UNABLE_TO_OPEN_FILE,errstr,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE );
+		}
+	}
+
+	/* 2) Write data into file. */
+	for( i=0; i<nrow; ++i )
+	{
+		for( j=0; j<ncol; ++j )
+		 	fprintf( datafile, "%.16e ", data[i*ncol+j] );
+
+		fprintf( datafile, "\n" );
+	}
+
+	/* 3) Close file. */
+	fclose( datafile );
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	w r i t e I n t o F i l e
+ */
+returnValue writeIntoFile(	const real_t* const data, int n,
+							const char* datafilename, BooleanType append
+							)
+{
+	return writeIntoFile( data,1,n,datafilename,append );
+}
+
+
+/*
+ *	w r i t e I n t o F i l e
+ */
+returnValue writeIntoFile(	const int* const data, int n,
+							const char* datafilename, BooleanType append
+							)
+{
+	int i;
+
+	myFILE* datafile;
+
+	/* 1) Open file. */
+	if ( append == BT_TRUE )
+	{
+		/* append data */
+		if ( ( datafile = fopen( datafilename, "a" ) ) == 0 )
+		{
+			char errstr[80];
+			sprintf( errstr,"(%s)",datafilename );
+			return getGlobalMessageHandler( )->throwError( RET_UNABLE_TO_OPEN_FILE,errstr,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE );
+		}
+	}
+	else
+	{
+		/* do not append data */
+		if ( ( datafile = fopen( datafilename, "w" ) ) == 0 )
+		{
+			char errstr[80];
+			sprintf( errstr,"(%s)",datafilename );
+			return getGlobalMessageHandler( )->throwError( RET_UNABLE_TO_OPEN_FILE,errstr,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE );
+		}
+	}
+
+	/* 2) Write data into file. */
+	for( i=0; i<n; ++i )
+		fprintf( datafile, "%d\n", data[i] );
+
+	/* 3) Close file. */
+	fclose( datafile );
+
+	return SUCCESSFUL_RETURN;
+}
+#endif  /* PC_DEBUG */
+
+
+/*
+ *	g e t C P U t i m e
+ */
+real_t getCPUtime( )
+{
+	real_t current_time = -1.0;
+
+	#if defined(__WIN32__) || defined(WIN32)
+	LARGE_INTEGER counter, frequency;
+	QueryPerformanceFrequency(&frequency);
+	QueryPerformanceCounter(&counter);
+	current_time = ((real_t) counter.QuadPart) / ((real_t) frequency.QuadPart);
+	#elif defined(LINUX)
+	struct timeval theclock;
+	gettimeofday( &theclock,0 );
+	current_time = 1.0*theclock.tv_sec + 1.0e-6*theclock.tv_usec;
+	#endif
+
+	return current_time;
+}
+
+
+/*
+ *	g e t N o r m
+ */
+real_t getNorm( const real_t* const v, int n )
+{
+	int i;
+
+	real_t norm = 0.0;
+
+	for( i=0; i<n; ++i )
+		norm += v[i]*v[i];
+
+	return sqrt( norm );
+}
+
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Utils.ipp b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Utils.ipp
new file mode 100644
index 0000000..861bdb3
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/SRC/Utils.ipp
@@ -0,0 +1,51 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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 SRC/Utils.ipp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Implementation of some inlined utilities for working with the different QProblem 
+ *  classes.
+ */
+
+
+
+/*
+ *	g e t A b s
+ */
+inline real_t getAbs( real_t x )
+{
+	if ( x < 0.0 )
+		return -x;
+	else
+		return x;
+}
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/VERSIONS.txt b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/VERSIONS.txt
new file mode 100644
index 0000000..35a6740
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/qpoases/VERSIONS.txt
@@ -0,0 +1,87 @@
+##
+##	qpOASES -- An Implementation of the Online Active Set Strategy.
+##	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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
+##
+
+
+
+VERSION HISTORY
+===============
+
+1.3embedded (last updated on 30th April 2009):
+-----------------------------------------------------------------------
+
++ Re-programming of internal memory management to avoid dynamic memory allocations 
++ Most #ifdef directives removed
++ Almost all type definitions gathered within INCLUDE/Types.hpp
++ Irrelevant functionality removed (like the SQProblem class, functionality 
+  for loading data from files or the SCILAB interface)
++ Replacement of all doubles by real_t
++ Introduction of define "PC_DEBUG" for switching off all print functions
++ stdio.h was made optional, string.h is no longer needed
++ relative paths removed from #include directives
++ made auxiliary objects locally static within solveInitialQP()
++ Matlab interface fixed for single precision
++ New return value -2 from Legacy wrapper added to Matlab/Simulink interfaces
++ KKT optimality check moved into QProblem(B) class, SolutionAnalysis class removed
+
+
+1.3 (released on 2nd June 2008, last updated on 19th June 2008):
+-----------------------------------------------------------------------
+
++ Implementation of "initialised homotopy" concept
++ Addition of the SolutionAnalysis class
++ Utility functions for solving test problems in OQP format added
++ Flexibility of Matlab(R) interface enhanced
++ Major source code cleanup
+  (Attention: a few class names and calling interfaces have changed!)
+
+
+
+1.2 (released on 9th October 2007):
+-----------------------------------------------------------------------
+
++ Special treatment of diagonal Hessians
++ Improved infeasibility detection
++ Further improved Matlab(R) interface
++ Extended Simulink(R) interface
++ scilab interface added
++ Code cleanup and several bugfixes
+
+
+
+1.1 (released on 8th July 2007):
+--------------------------------
+
++ Implementation of the QProblemB class
++ Basic implementation of the SQProblem class
++ Improved Matlab(R) interface
++ Enabling/Disabling of constraints introduced
++ Several bugfixes
+
+
+
+1.0 (released on 17th April 2007):
+----------------------------------
+
+Initial release.
+
+
+
+##
+##	end of file
+##
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/setup_custom_pythonpath.sh b/mav_control_rw/mav_nonlinear_mpc/solver/setup_custom_pythonpath.sh
new file mode 100644
index 0000000..5217696
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/setup_custom_pythonpath.sh
@@ -0,0 +1,5 @@
+#!/usr/bin/env sh
+# generated from dynamic_reconfigure/cmake/setup_custom_pythonpath.sh.in
+
+PYTHONPATH=/home/simhe502/catkin_ws/src/mav_control_rw/mav_nonlinear_mpc/solver/devel/lib/python3/dist-packages:$PYTHONPATH
+exec /usr/bin/python3 "$@"
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/test b/mav_control_rw/mav_nonlinear_mpc/solver/test
new file mode 100644
index 0000000000000000000000000000000000000000..7f40bcc80315c0692ef3ed8079c190a2b94751a9
GIT binary patch
literal 199936
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
FegITs8Cn1U

literal 0
HcmV?d00001

diff --git a/mav_control_rw/mav_nonlinear_mpc/solver/test.c b/mav_control_rw/mav_nonlinear_mpc/solver/test.c
new file mode 100644
index 0000000..3999531
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver/test.c
@@ -0,0 +1,119 @@
+/*
+ *    This file was auto-generated using the ACADO Toolkit.
+ *    
+ *    While ACADO Toolkit is free software released under the terms of
+ *    the GNU Lesser General Public License (LGPL), the generated code
+ *    as such remains the property of the user who used ACADO Toolkit
+ *    to generate this code. In particular, user dependent data of the code
+ *    do not inherit the GNU LGPL license. On the other hand, parts of the
+ *    generated code that are a direct copy of source code from the
+ *    ACADO Toolkit or the software tools it is based on, remain, as derived
+ *    work, automatically covered by the LGPL license.
+ *    
+ *    ACADO Toolkit 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.
+ *    
+ */
+
+
+
+/*
+
+IMPORTANT: This file should serve as a starting point to develop the user
+code for the OCP solver. The code below is for illustration purposes. Most
+likely you will not get good results if you execute this code without any
+modification(s).
+
+Please read the examples in order to understand how to write user code how
+to run the OCP solver. You can find more info on the website:
+www.acadotoolkit.org
+
+*/
+
+#include "acado_common.h"
+#include "acado_auxiliary_functions.h"
+
+#include <stdio.h>
+
+/* Some convenient definitions. */
+#define NX          ACADO_NX  /* Number of differential state variables.  */
+#define NXA         ACADO_NXA /* Number of algebraic variables. */
+#define NU          ACADO_NU  /* Number of control inputs. */
+#define NOD         ACADO_NOD  /* Number of online data values. */
+
+#define NY          ACADO_NY  /* Number of measurements/references on nodes 0..N - 1. */
+#define NYN         ACADO_NYN /* Number of measurements/references on node N. */
+
+#define N           ACADO_N   /* Number of intervals in the horizon. */
+
+#define NUM_STEPS   10        /* Number of real-time iterations. */
+#define VERBOSE     1         /* Show iterations: 1, silent: 0.  */
+
+/* Global variables used by the solver. */
+ACADOvariables acadoVariables;
+ACADOworkspace acadoWorkspace;
+
+/* A template for testing of the solver. */
+int main( )
+{
+	/* Some temporary variables. */
+	int    i, iter;
+	acado_timer t;
+
+	/* Initialize the solver. */
+	acado_initializeSolver();
+
+	/* Initialize the states and controls. */
+	for (i = 0; i < NX * (N + 1); ++i)  acadoVariables.x[ i ] = 0.0;
+	for (i = 0; i < NU * N; ++i)  acadoVariables.u[ i ] = 0.0;
+
+	/* Initialize the measurements/reference. */
+	for (i = 0; i < NY * N; ++i)  acadoVariables.y[ i ] = 0.0;
+	for (i = 0; i < NYN; ++i)  acadoVariables.yN[ i ] = 0.0;
+
+	/* MPC: initialize the current state feedback. */
+#if ACADO_INITIAL_STATE_FIXED
+	for (i = 0; i < NX; ++i) acadoVariables.x0[ i ] = 0.1;
+#endif
+
+	if( VERBOSE ) acado_printHeader();
+
+	/* Prepare first step */
+	acado_preparationStep();
+
+	/* Get the time before start of the loop. */
+	acado_tic( &t );
+
+	/* The "real-time iterations" loop. */
+	for(iter = 0; iter < NUM_STEPS; ++iter)
+	{
+        /* Perform the feedback step. */
+		acado_feedbackStep( );
+
+		/* Apply the new control immediately to the process, first NU components. */
+
+		if( VERBOSE ) printf("\tReal-Time Iteration %d:  KKT Tolerance = %.3e\n\n", iter, acado_getKKT() );
+
+		/* Optional: shift the initialization (look at acado_common.h). */
+        /* acado_shiftStates(2, 0, 0); */
+		/* acado_shiftControls( 0 ); */
+
+		/* Prepare for the next step. */
+		acado_preparationStep();
+	}
+	/* Read the elapsed time. */
+	real_t te = acado_toc( &t );
+
+	if( VERBOSE ) printf("\n\nEnd of the RTI loop. \n\n\n");
+
+	/* Eye-candy. */
+
+	if( !VERBOSE )
+	printf("\n\n Average time of one real-time iteration:   %.3g microseconds\n\n", 1e6 * te / NUM_STEPS);
+
+	acado_printDifferentialVariables();
+	acado_printControlVariables();
+
+    return 0;
+}
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/CMakeLists.txt b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/CMakeLists.txt
new file mode 100644
index 0000000..679dcbe
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/CMakeLists.txt
@@ -0,0 +1,27 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.8.4)
+PROJECT(nmpc_solver)
+
+# CMake module(s) path
+set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/")
+set (CMAKE_CXX_FLAGS  "-std=c++11 -g")
+#
+# Prerequisites
+#
+FIND_PACKAGE(ACADO REQUIRED)
+
+#
+# Include directories
+#
+INCLUDE_DIRECTORIES( ${ACADO_INCLUDE_DIRS} )
+
+#
+# Build an executable
+#
+ADD_EXECUTABLE(../solver/nmpc_solver_setup nmpc_solver_setup.cpp )
+
+TARGET_LINK_LIBRARIES(../solver/nmpc_solver_setup 
+  ${ACADO_SHARED_LIBRARIES}
+)
+
+SET_TARGET_PROPERTIES(../solver/nmpc_solver_setup PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} )
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/README.md b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/README.md
new file mode 100644
index 0000000..bd175fa
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/README.md
@@ -0,0 +1,35 @@
+Author: Oskar Ljungqvist
+Date: 2017-11-23
+Description:
+
+This folder contains code to Automatically generate an MPC controller using ACADO toolkit.
+
+The file nmpc_solver_setup.cpp is what defines the MPC controller and it is this you should change in order the change the controller. Then build/install it using the explanation below. As an example it easy to change the prediction horizon if that is prefered.
+
+Prerequests: 
+
+ACADO toolkit needs to be properly installed. Follow the instructions here: http://acado.github.io/install_linux.html
+
+In your ~/.bashrc add the line:
+source [pathToAcado]/build/acado_env.sh
+
+Build/Install: 
+
+From this folder do:
+
+mkdir build
+cd build
+cmake ..
+make
+
+The executable is now placed in the folder ../solver
+
+Execute it by running the following commands:
+
+cd ../../solver
+./nmpc_solver_setup
+
+Then the controller is generated.
+
+
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/cmake/FindACADO.cmake b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/cmake/FindACADO.cmake
new file mode 100644
index 0000000..19fa7d4
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/cmake/FindACADO.cmake
@@ -0,0 +1,157 @@
+################################################################################
+#
+# Description:
+#	ACADO Toolkit package configuration file
+#
+#	Defines:
+#		- Variable: ACADO_INCLUDE_DIRS
+#		- Variable: ACADO_LIBRARY_DIRS
+#		- Variable: ACADO_STATIC_LIBS_FOUND
+#		- Variable: ACADO_STATIC_LIBRARIES
+#		- Variable: ACADO_SHARED_LIBS_FOUND
+#		- Variable: ACADO_SHARED_LIBRARIES
+#
+# Authors:
+#	Milan Vukov, milan.vukov@esat.kuleuven.be
+#
+# Year:
+#	2011 - 2013.
+#
+# NOTE:
+#	- This script is for Linux/Unix use only.
+#	- Use this script only (and only :)) if you do not want to install ACADO
+#		toolkit. If you install ACADO toolkit you do not need this script.
+#
+#	- PREREQUISITE: sourced acado_env.sh in your ~/.bashrc file. This script
+#		will try to find ACADO folders, libraries etc., but looking for them
+#		in enviromental variables.
+#
+# Usage:
+#	- Linux/Unix: TODO
+#
+################################################################################
+
+################################################################################
+#
+# Search for package components
+#
+################################################################################
+
+MESSAGE( STATUS "********************************************************************************" )
+MESSAGE( STATUS "---> Looking for ACADO toolkit:" )
+
+#
+# Include folders
+#
+SET( ACADO_INCLUDE_DIRS $ENV{ACADO_ENV_INCLUDE_DIRS} )
+IF( ACADO_INCLUDE_DIRS )
+	MESSAGE( STATUS "Found ACADO toolkit include directories: ${ACADO_INCLUDE_DIRS}" )
+	SET( ACADO_INCLUDE_DIRS_FOUND TRUE )
+ELSE( ACADO_INCLUDE_DIRS )
+	MESSAGE( STATUS "Could not find ACADO toolkit include directories" )
+ENDIF( ACADO_INCLUDE_DIRS )
+
+#
+# Library folders
+#
+SET( ACADO_LIBRARY_DIRS $ENV{ACADO_ENV_LIBRARY_DIRS} )
+IF( ACADO_LIBRARY_DIRS )
+	MESSAGE( STATUS "Found ACADO toolkit library directories: ${ACADO_LIBRARY_DIRS}" )
+	SET( ACADO_LIBRARY_DIRS_FOUND TRUE )
+ELSE( ACADO_LIBRARY_DIRS )
+	MESSAGE( STATUS "Could not find ACADO toolkit library directories" )
+ENDIF( ACADO_LIBRARY_DIRS )
+
+#
+# Static libs
+#
+
+SET ( STATIC_TMP $ENV{ACADO_ENV_STATIC_LIBRARIES})
+IF ( NOT STATIC_TMP )
+	MESSAGE( STATUS "Could not find ACADO static library." )
+	SET( ACADO_STATIC_LIBS_FOUND FALSE )
+ELSE()
+	SET( ACADO_STATIC_LIBS_FOUND TRUE )
+	UNSET( ACADO_STATIC_LIBRARIES )
+	FOREACH( LIB $ENV{ACADO_ENV_STATIC_LIBRARIES} )
+		UNSET( ACADO_TOOLKIT_STATIC_${LIB} )
+	
+		FIND_LIBRARY( ACADO_TOOLKIT_STATIC_${LIB}
+			NAMES ${LIB}
+			PATHS ${ACADO_LIBRARY_DIRS}
+			NO_DEFAULT_PATH
+		)
+	
+		IF( ACADO_TOOLKIT_STATIC_${LIB} )
+			MESSAGE( STATUS "Found ACADO static library: ${LIB}" )
+			SET( ACADO_STATIC_LIBRARIES
+				${ACADO_STATIC_LIBRARIES} ${ACADO_TOOLKIT_STATIC_${LIB}}
+			)
+		ELSE( )
+			MESSAGE( STATUS "Could not find ACADO static library: ${LIB}" )
+ 			SET( ACADO_STATIC_LIBS_FOUND FALSE )
+		ENDIF( )
+	ENDFOREACH()
+ENDIF()
+
+SET( ACADO_BUILD_STATIC ${ACADO_STATIC_LIBS_FOUND} )
+
+IF( VERBOSE )
+	MESSAGE( STATUS "Static libraries: ${ACADO_STATIC_LIBRARIES}\n" )
+ENDIF()
+
+#
+# Shared libs
+#
+SET( SHARED_TMP $ENV{ACADO_ENV_SHARED_LIBRARIES} )
+IF ( NOT SHARED_TMP )
+	MESSAGE( STATUS "Could not find ACADO shared library." )
+	SET( ACADO_SHARED_LIBS_FOUND FALSE )
+ELSE()
+SET( ACADO_SHARED_LIBS_FOUND TRUE )
+	UNSET( ACADO_SHARED_LIBRARIES )
+	FOREACH( LIB $ENV{ACADO_ENV_SHARED_LIBRARIES} )
+		UNSET( ACADO_TOOLKIT_SHARED_${LIB} )
+	
+		FIND_LIBRARY( ACADO_TOOLKIT_SHARED_${LIB}
+			NAMES ${LIB}
+			PATHS ${ACADO_LIBRARY_DIRS}
+			NO_DEFAULT_PATH
+		)
+	
+		IF( ACADO_TOOLKIT_SHARED_${LIB} )
+			MESSAGE( STATUS "Found ACADO shared library: ${LIB}" )
+			SET( ACADO_SHARED_LIBRARIES
+				${ACADO_SHARED_LIBRARIES} ${ACADO_TOOLKIT_SHARED_${LIB}}
+			)
+		ELSE( )
+			MESSAGE( STATUS "Could not find ACADO shared library: ${LIB}" )
+ 			SET( ACADO_SHARED_LIBS_FOUND FALSE )
+		ENDIF( )
+	ENDFOREACH()
+ENDIF()
+
+SET( ACADO_BUILD_SHARED ${ACADO_SHARED_LIBS_FOUND} )
+
+IF( VERBOSE )
+	MESSAGE( STATUS "${ACADO_SHARED_LIBRARIES}\n" )
+ENDIF()
+
+#
+# qpOASES embedded source files and include folders
+# TODO: checks
+#
+SET( ACADO_QPOASES_EMBEDDED_SOURCES $ENV{ACADO_ENV_QPOASES_EMBEDDED_SOURCES} )
+SET( ACADO_QPOASES_EMBEDDED_INC_DIRS $ENV{ACADO_ENV_QPOASES_EMBEDDED_INC_DIRS} )
+
+
+#
+# And finally set found flag...
+#
+IF( ACADO_INCLUDE_DIRS_FOUND AND ACADO_LIBRARY_DIRS_FOUND 
+		AND (ACADO_STATIC_LIBS_FOUND OR ACADO_SHARED_LIBS_FOUND) )
+	SET( ACADO_FOUND TRUE )
+ENDIF()
+
+MESSAGE( STATUS "********************************************************************************" )
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/nmpc_solver_setup.cpp b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/nmpc_solver_setup.cpp
new file mode 100644
index 0000000..d81c809
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/nmpc_solver_setup.cpp
@@ -0,0 +1,107 @@
+#include <acado_code_generation.hpp>
+#include <acado_toolkit.hpp>
+#include <acado_optimal_control.hpp>
+#include <acado_gnuplot.hpp>
+#include <matrix_vector/vector.hpp>
+
+USING_NAMESPACE_ACADO
+
+int main()
+{
+    double Ts = 0.3;  // Prediction sampling time
+    double N  = 20;   // Prediction horizon
+    double margin = 1.0;
+
+    DifferentialState x, y;                     // Position of robot
+    DifferentialState heading;                  // Heading of robot
+    DifferentialState vel_forward, vel_angular; // Velocity forward and angular
+
+    Control acc_forward, acc_angular;           // Control variables
+
+    // Online scan data, contains position instead of only range, so mpc can solve it
+    OnlineData scan_x1, scan_x2, scan_x3, scan_x4, scan_x5, scan_x6, scan_x7, scan_x8, scan_x9, scan_x10;
+    OnlineData scan_y1, scan_y2, scan_y3, scan_y4, scan_y5, scan_y6, scan_y7, scan_y8, scan_y9, scan_y10;
+
+    // Proximity IntermediateState variables
+    IntermediateState proximity1 = sqrt((x-scan_x1)*(x-scan_x1) + (y-scan_y1)*(y-scan_y1));
+    IntermediateState proximity2 = sqrt((x-scan_x2)*(x-scan_x2) + (y-scan_y2)*(y-scan_y2));
+    IntermediateState proximity3 = sqrt((x-scan_x3)*(x-scan_x3) + (y-scan_y3)*(y-scan_y3));
+    IntermediateState proximity4 = sqrt((x-scan_x4)*(x-scan_x4) + (y-scan_y4)*(y-scan_y4));
+    IntermediateState proximity5 = sqrt((x-scan_x5)*(x-scan_x5) + (y-scan_y5)*(y-scan_y5));
+    IntermediateState proximity6 = sqrt((x-scan_x6)*(x-scan_x6) + (y-scan_y6)*(y-scan_y6));
+    IntermediateState proximity7 = sqrt((x-scan_x7)*(x-scan_x7) + (y-scan_y7)*(y-scan_y7));
+    IntermediateState proximity8 = sqrt((x-scan_x8)*(x-scan_x8) + (y-scan_y8)*(y-scan_y8));
+    IntermediateState proximity9 = sqrt((x-scan_x9)*(x-scan_x9) + (y-scan_y9)*(y-scan_y9));
+    IntermediateState proximity10 = sqrt((x-scan_x10)*(x-scan_x10) + (y-scan_y10)*(y-scan_y10));
+
+    IntermediateState general_proximity = exp(2*margin-proximity1) + exp(2*margin-proximity2)
+                                        + exp(2*margin-proximity3) + exp(2*margin-proximity4)
+                                        + exp(2*margin-proximity5) + exp(2*margin-proximity6)
+                                        + exp(2*margin-proximity7) + exp(2*margin-proximity8)
+                                        + exp(2*margin-proximity9) + exp(2*margin-proximity10);
+
+    // Define OCP problem:
+    OCP ocp(0.0, N*Ts, N);
+
+    // Model equations
+    DifferentialEquation f(0.0, N);
+    f << dot(x)           == cos(heading) * vel_forward;
+    f << dot(y)           == sin(heading) * vel_forward;
+    f << dot(heading)     == vel_angular;
+    f << dot(vel_forward) == acc_forward;
+    f << dot(vel_angular) == acc_angular;
+    ocp.subjectTo(f);
+
+    // Constraints taken from Husky docs
+    ocp.subjectTo(-1.0 <= vel_forward <= 1.0); // m/s
+    ocp.subjectTo(-3.0 <= acc_forward <= 3.0); // m/s^2
+    ocp.subjectTo(-3.0 <= vel_angular <= 3.0); // rad/s
+    ocp.subjectTo(-3.0 <= acc_angular <= 3.0); // rad/s^2
+
+    // Constraints for obstacle avoidance
+    ocp.subjectTo(proximity1 >= margin);
+    ocp.subjectTo(proximity2 >= margin);
+    ocp.subjectTo(proximity3 >= margin);
+    ocp.subjectTo(proximity4 >= margin);
+    ocp.subjectTo(proximity5 >= margin);
+    ocp.subjectTo(proximity6 >= margin);
+    ocp.subjectTo(proximity7 >= margin);
+    ocp.subjectTo(proximity8 >= margin);
+    ocp.subjectTo(proximity9 >= margin);
+    ocp.subjectTo(proximity10 >= margin);
+
+    // Weight matrices
+    BMatrix W = eye<bool>(8);
+    BMatrix WN = eye<bool>(5);
+
+    Function h, hN;
+    h << x << y << heading << vel_forward << vel_angular << acc_forward << acc_angular << general_proximity;
+    hN << x << y << heading << vel_forward << vel_angular;
+
+    ocp.minimizeLSQ(W, h);
+    ocp.minimizeLSQEndTerm(WN, hN);
+    ocp.setNOD(20);
+
+    // Export the code:
+    OCPexport mpc(ocp);
+
+    mpc.set(HESSIAN_APPROXIMATION, GAUSS_NEWTON);
+    mpc.set(DISCRETIZATION_TYPE, MULTIPLE_SHOOTING);
+    mpc.set(SPARSE_QP_SOLUTION, FULL_CONDENSING_N2);
+    mpc.set(INTEGRATOR_TYPE, INT_IRK_GL2);
+    mpc.set(QP_SOLVER, QP_QPOASES);
+    mpc.set(HOTSTART_QP, NO);
+    mpc.set(LEVENBERG_MARQUARDT, 1e-10);
+    mpc.set(LINEAR_ALGEBRA_SOLVER, GAUSS_LU);
+    mpc.set(IMPLICIT_INTEGRATOR_NUM_ITS, 2);
+    mpc.set(CG_USE_OPENMP, YES);
+    mpc.set(CG_HARDCODE_CONSTRAINT_VALUES, NO);
+    mpc.set(CG_USE_VARIABLE_WEIGHTING_MATRIX, YES);
+
+    if (mpc.exportCode( "." ) != SUCCESSFUL_RETURN)
+        exit( EXIT_FAILURE );
+
+    mpc.printDimensionsQP();
+
+    return EXIT_SUCCESS;
+}
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/EXAMPLES/example1.cpp b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/EXAMPLES/example1.cpp
new file mode 100644
index 0000000..92b47fc
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/EXAMPLES/example1.cpp
@@ -0,0 +1,74 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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 EXAMPLES/example1.cpp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Very simple example for testing qpOASES (using QProblem class).
+ */
+
+
+#include <QProblem.hpp>
+
+
+/** Example for qpOASES main function using the QProblem class. */
+int main( )
+{
+	/* Setup data of first QP. */
+	real_t H[2*2] = { 1.0, 0.0, 0.0, 0.5 };
+	real_t A[1*2] = { 1.0, 1.0 };
+	real_t g[2] = { 1.5, 1.0 };
+	real_t lb[2] = { 0.5, -2.0 };
+	real_t ub[2] = { 5.0, 2.0 };
+	real_t lbA[1] = { -1.0 };
+	real_t ubA[1] = { 2.0 };
+
+	/* Setup data of second QP. */
+	real_t g_new[2] = { 1.0, 1.5 };
+	real_t lb_new[2] = { 0.0, -1.0 };
+	real_t ub_new[2] = { 5.0, -0.5 };
+	real_t lbA_new[1] = { -2.0 };
+	real_t ubA_new[1] = { 1.0 };
+
+
+	/* Setting up QProblem object. */
+	QProblem example( 2,1 );
+
+	/* Solve first QP. */
+	int nWSR = 10;
+	example.init( H,g,A,lb,ub,lbA,ubA, nWSR,0 );
+
+	/* Solve second QP. */
+	nWSR = 10;
+	example.hotstart( g_new,lb_new,ub_new,lbA_new,ubA_new, nWSR,0 );
+
+	return 0;
+}
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/EXAMPLES/example1b.cpp b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/EXAMPLES/example1b.cpp
new file mode 100644
index 0000000..331f19d
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/EXAMPLES/example1b.cpp
@@ -0,0 +1,69 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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 EXAMPLES/example1b.cpp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3
+ *	\date 2007-2008
+ *
+ *	Very simple example for testing qpOASES using the QProblemB class.
+ */
+
+
+#include <QProblemB.hpp>
+
+
+/** Example for qpOASES main function using the QProblemB class. */
+int main( )
+{
+	/* Setup data of first QP. */
+	real_t H[2*2] = { 1.0, 0.0, 0.0, 0.5 };
+	real_t g[2] = { 1.5, 1.0 };
+	real_t lb[2] = { 0.5, -2.0 };
+	real_t ub[2] = { 5.0, 2.0 };
+
+	/* Setup data of second QP. */
+	real_t g_new[2] = { 1.0, 1.5 };
+	real_t lb_new[2] = { 0.0, -1.0 };
+	real_t ub_new[2] = { 5.0, -0.5 };
+
+
+	/* Setting up QProblemB object. */
+	QProblemB example( 2 );
+
+	/* Solve first QP. */
+	int nWSR = 10;
+	example.init( H,g,lb,ub, nWSR,0 );
+
+	/* Solve second QP. */
+	nWSR = 10;
+	example.hotstart( g_new,lb_new,ub_new, nWSR,0 );
+
+	return 0;
+}
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/Bounds.hpp b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/Bounds.hpp
new file mode 100644
index 0000000..7260756
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/Bounds.hpp
@@ -0,0 +1,189 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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/Bounds.hpp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Declaration of the Bounds class designed to manage working sets of
+ *	bounds within a QProblem.
+ */
+
+
+#ifndef QPOASES_BOUNDS_HPP
+#define QPOASES_BOUNDS_HPP
+
+
+#include <SubjectTo.hpp>
+
+
+
+/** This class manages working sets of bounds by storing
+ *	index sets and other status information.
+ *
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ */
+class Bounds : public SubjectTo
+{
+	/*
+	 *	PUBLIC MEMBER FUNCTIONS
+	 */
+	public:
+		/** Default constructor. */
+		Bounds( );
+
+		/** Copy constructor (deep copy). */
+		Bounds(	const Bounds& rhs	/**< Rhs object. */
+				);
+
+		/** Destructor. */
+		~Bounds( );
+
+		/** Assignment operator (deep copy). */
+		Bounds& operator=(	const Bounds& rhs	/**< Rhs object. */
+							);
+
+
+		/** Pseudo-constructor takes the number of bounds.
+		 *	\return SUCCESSFUL_RETURN */
+		returnValue init(	int n	/**< Number of bounds. */
+							);
+
+
+		/** Initially adds number of a new (i.e. not yet in the list) bound to
+		 *  given index set.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_SETUP_BOUND_FAILED \n
+					RET_INDEX_OUT_OF_BOUNDS \n
+					RET_INVALID_ARGUMENTS */
+		returnValue setupBound(	int _number,					/**< Number of new bound. */
+								SubjectToStatus _status			/**< Status of new bound. */
+								);
+
+		/** Initially adds all numbers of new (i.e. not yet in the list) bounds to
+		 *  to the index set of free bounds; the order depends on the SujectToType
+		 *  of each index.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_SETUP_BOUND_FAILED */
+		returnValue setupAllFree( );
+
+
+		/** Moves index of a bound from index list of fixed to that of free bounds.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_MOVING_BOUND_FAILED \n
+					RET_INDEX_OUT_OF_BOUNDS */
+		returnValue moveFixedToFree(	int _number				/**< Number of bound to be freed. */
+										);
+
+		/** Moves index of a bound from index list of free to that of fixed bounds.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_MOVING_BOUND_FAILED \n
+					RET_INDEX_OUT_OF_BOUNDS */
+		returnValue moveFreeToFixed(	int _number,			/**< Number of bound to be fixed. */
+										SubjectToStatus _status	/**< Status of bound to be fixed. */
+										);
+
+		/** Swaps the indices of two free bounds within the index set.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_SWAPINDEX_FAILED */
+		returnValue swapFree(	int number1,					/**< Number of first constraint or bound. */
+								int number2						/**< Number of second constraint or bound. */
+								);
+
+
+		/** Returns number of variables.
+		 *	\return Number of variables. */
+		inline int getNV( ) const;
+
+		/** Returns number of implicitly fixed variables.
+		 *	\return Number of implicitly fixed variables. */
+		inline int getNFV( ) const;
+
+		/** Returns number of bounded (but possibly free) variables.
+		 *	\return Number of bounded (but possibly free) variables. */
+		inline int getNBV( ) const;
+
+		/** Returns number of unbounded variables.
+		 *	\return Number of unbounded variables. */
+		inline int getNUV( ) const;
+
+
+		/** Sets number of implicitly fixed variables.
+		 *	\return SUCCESSFUL_RETURN */
+		inline returnValue setNFV(	int n	/**< Number of implicitly fixed variables. */
+									);
+
+		/** Sets number of bounded (but possibly free) variables.
+		 *	\return SUCCESSFUL_RETURN */
+		inline returnValue setNBV(	int n	/**< Number of bounded (but possibly free) variables. */
+									);
+
+		/** Sets number of unbounded variables.
+		 *	\return SUCCESSFUL_RETURN */
+		inline returnValue setNUV(	int n	/**< Number of unbounded variables */
+									);
+
+
+		/** Returns number of free variables.
+		 *	\return Number of free variables. */
+		inline int getNFR( );
+
+		/** Returns number of fixed variables.
+		 *	\return Number of fixed variables. */
+		inline int getNFX( );
+
+
+		/** Returns a pointer to free variables index list.
+		 *	\return Pointer to free variables index list. */
+		inline Indexlist* getFree( );
+
+		/** Returns a pointer to fixed variables index list.
+		 *	\return Pointer to fixed variables index list. */
+		inline Indexlist* getFixed( );
+
+
+	/*
+	 *	PROTECTED MEMBER VARIABLES
+	 */
+	protected:
+		int nV;					/**< Number of variables (nV = nFV + nBV + nUV). */
+		int nFV;				/**< Number of implicitly fixed variables. */
+		int	nBV;				/**< Number of bounded (but possibly free) variables. */
+		int nUV;				/**< Number of unbounded variables. */
+
+		Indexlist free;			/**< Index list of free variables. */
+		Indexlist fixed;		/**< Index list of fixed variables. */
+};
+
+#include <Bounds.ipp>
+
+#endif	/* QPOASES_BOUNDS_HPP */
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/Constants.hpp b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/Constants.hpp
new file mode 100644
index 0000000..92ee812
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/Constants.hpp
@@ -0,0 +1,108 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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/Constants.hpp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2008
+ *
+ *	Definition of all global constants.
+ */
+
+
+#ifndef QPOASES_CONSTANTS_HPP
+#define QPOASES_CONSTANTS_HPP
+
+#ifndef QPOASES_CUSTOM_INTERFACE
+#include "acado_qpoases_interface.hpp"
+#else
+  #define XSTR(x) #x
+  #define STR(x) XSTR(x)
+  #include STR(QPOASES_CUSTOM_INTERFACE)
+#endif
+
+/** Maximum number of variables within a QP formulation.
+	Note: this value has to be positive! */
+const int NVMAX = QPOASES_NVMAX;
+
+/** Maximum number of constraints within a QP formulation.
+	Note: this value has to be positive! */
+const int NCMAX = QPOASES_NCMAX;
+
+/** Redefinition of NCMAX used for memory allocation, to avoid zero sized arrays
+    and compiler errors. */
+const int NCMAX_ALLOC = (NCMAX == 0) ? 1 : NCMAX;
+
+/**< Maximum number of working set recalculations.
+	Note: this value has to be positive! */
+const int NWSRMAX = QPOASES_NWSRMAX;
+
+/** Desired KKT tolerance of QP solution; a warning RET_INACCURATE_SOLUTION is
+ *  issued if this tolerance is not met.
+ *	Note: this value has to be positive! */
+const real_t DESIREDACCURACY = (real_t) 1.0e-3;
+
+/** Critical KKT tolerance of QP solution; an error is issued if this
+ *  tolerance is not met.
+ *	Note: this value has to be positive! */
+const real_t CRITICALACCURACY = (real_t) 1.0e-2;
+
+
+
+/** Numerical value of machine precision (min eps, s.t. 1+eps > 1).
+	Note: this value has to be positive! */
+const real_t EPS = (real_t) QPOASES_EPS;
+
+/** Numerical value of zero (for situations in which it would be
+ *	unreasonable to compare with 0.0).
+ *	Note: this value has to be positive! */
+const real_t ZERO = (real_t) 1.0e-50;
+
+/** Numerical value of infinity (e.g. for non-existing bounds).
+ *	Note: this value has to be positive! */
+const real_t INFTY = (real_t) 1.0e12;
+
+
+/** Lower/upper (constraints') bound tolerance (an inequality constraint
+ *	whose lower and upper bound differ by less than BOUNDTOL is regarded
+ *	to be an equality constraint).
+ *	Note: this value has to be positive! */
+const real_t BOUNDTOL = (real_t) 1.0e-10;
+
+/** Offset for relaxing (constraints') bounds at beginning of an initial homotopy.
+ *	Note: this value has to be positive! */
+const real_t BOUNDRELAXATION = (real_t) 1.0e3;
+
+
+/** Factor that determines physical lengths of index lists.
+ *	Note: this value has to be greater than 1! */
+const int INDEXLISTFACTOR = 5;
+
+
+#endif	/* QPOASES_CONSTANTS_HPP */
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/Constraints.hpp b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/Constraints.hpp
new file mode 100644
index 0000000..8991679
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/Constraints.hpp
@@ -0,0 +1,181 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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/Constraints.hpp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Declaration of the Constraints class designed to manage working sets of
+ *	constraints within a QProblem.
+ */
+
+
+#ifndef QPOASES_CONSTRAINTS_HPP
+#define QPOASES_CONSTRAINTS_HPP
+
+
+#include <SubjectTo.hpp>
+
+
+
+/** This class manages working sets of constraints by storing
+ *	index sets and other status information.
+ *
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ */
+class Constraints : public SubjectTo
+{
+	/*
+	 *	PUBLIC MEMBER FUNCTIONS
+	 */
+	public:
+		/** Default constructor. */
+		Constraints( );
+
+		/** Copy constructor (deep copy). */
+		Constraints(	const Constraints& rhs	/**< Rhs object. */
+						);
+
+		/** Destructor. */
+		~Constraints( );
+
+		/** Assignment operator (deep copy). */
+		Constraints& operator=(	const Constraints& rhs	/**< Rhs object. */
+								);
+
+
+		/** Pseudo-constructor takes the number of constraints.
+		 *	\return SUCCESSFUL_RETURN */
+		returnValue init(	int n	/**< Number of constraints. */
+							);
+
+
+		/** Initially adds number of a new (i.e. not yet in the list) constraint to
+		 *  a given index set.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_SETUP_CONSTRAINT_FAILED \n
+					RET_INDEX_OUT_OF_BOUNDS \n
+					RET_INVALID_ARGUMENTS */
+		returnValue setupConstraint(	int _number,				/**< Number of new constraint. */
+										SubjectToStatus _status		/**< Status of new constraint. */
+										);
+
+		/** Initially adds all enabled numbers of new (i.e. not yet in the list) constraints to
+		 *  to the index set of inactive constraints; the order depends on the SujectToType
+		 *  of each index. Only disabled constraints are added to index set of disabled constraints!
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_SETUP_CONSTRAINT_FAILED */
+		returnValue setupAllInactive( );
+
+
+		/** Moves index of a constraint from index list of active to that of inactive constraints.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_MOVING_CONSTRAINT_FAILED */
+		returnValue moveActiveToInactive(	int _number				/**< Number of constraint to become inactive. */
+											);
+
+		/** Moves index of a constraint from index list of inactive to that of active constraints.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_MOVING_CONSTRAINT_FAILED */
+		returnValue moveInactiveToActive(	int _number,			/**< Number of constraint to become active. */
+											SubjectToStatus _status	/**< Status of constraint to become active. */
+											);
+
+
+		/** Returns the number of constraints.
+		 *	\return Number of constraints. */
+		inline int getNC( ) const;
+
+		/** Returns the number of implicit equality constraints.
+		 *	\return Number of implicit equality constraints. */
+		inline int getNEC( ) const;
+
+		/** Returns the number of "real" inequality constraints.
+		 *	\return Number of "real" inequality constraints. */
+		inline int getNIC( ) const;
+
+		/** Returns the number of unbounded constraints (i.e. without any bounds).
+		 *	\return Number of unbounded constraints (i.e. without any bounds). */
+		inline int getNUC( ) const;
+
+
+		/** Sets number of implicit equality constraints.
+		 *	\return SUCCESSFUL_RETURN */
+		inline returnValue setNEC(	int n	/**< Number of implicit equality constraints. */
+							);
+
+		/** Sets number of "real" inequality constraints.
+		 *	\return SUCCESSFUL_RETURN */
+		inline returnValue setNIC(	int n	/**< Number of "real" inequality constraints. */
+									);
+
+		/** Sets number of unbounded constraints (i.e. without any bounds).
+		 *	\return SUCCESSFUL_RETURN */
+		inline returnValue setNUC(	int n	/**< Number of unbounded constraints (i.e. without any bounds). */
+									);
+
+
+		/** Returns the number of active constraints.
+		 *	\return Number of constraints. */
+		inline int getNAC( );
+
+		/** Returns the number of inactive constraints.
+		 *	\return Number of constraints. */
+		inline int getNIAC( );
+
+
+		/** Returns a pointer to active constraints index list.
+		 *	\return Pointer to active constraints index list. */
+		inline Indexlist* getActive( );
+
+		/** Returns a pointer to inactive constraints index list.
+		 *	\return Pointer to inactive constraints index list. */
+		inline Indexlist* getInactive( );
+
+
+	/*
+	 *	PROTECTED MEMBER VARIABLES
+	 */
+	protected:
+		int nC;					/**< Number of constraints (nC = nEC + nIC + nUC). */
+		int nEC;				/**< Number of implicit equality constraints. */
+		int	nIC;				/**< Number of "real" inequality constraints. */
+		int nUC;				/**< Number of unbounded constraints (i.e. without any bounds). */
+
+		Indexlist active;		/**< Index list of active constraints. */
+		Indexlist inactive;		/**< Index list of inactive constraints. */
+};
+
+
+#include <Constraints.ipp>
+
+#endif	/* QPOASES_CONSTRAINTS_HPP */
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/CyclingManager.hpp b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/CyclingManager.hpp
new file mode 100644
index 0000000..b4410b1
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/CyclingManager.hpp
@@ -0,0 +1,126 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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/CyclingManager.hpp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Declaration of the CyclingManager class designed to detect
+ *	and handle possible cycling during QP iterations.
+ */
+
+
+#ifndef QPOASES_CYCLINGMANAGER_HPP
+#define QPOASES_CYCLINGMANAGER_HPP
+
+
+#include <Utils.hpp>
+
+
+
+/** This class is intended to detect and handle possible cycling during QP iterations.
+ *	As cycling seems to occur quite rarely, this class is NOT FULLY IMPLEMENTED YET!
+ *
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ */
+class CyclingManager
+{
+	/*
+	 *	PUBLIC MEMBER FUNCTIONS
+	 */
+	public:
+		/** Default constructor. */
+		CyclingManager( );
+
+		/** Copy constructor (deep copy). */
+		CyclingManager(	const CyclingManager& rhs	/**< Rhs object. */
+						);
+
+		/** Destructor. */
+		~CyclingManager( );
+
+		/** Copy asingment operator (deep copy). */
+		CyclingManager& operator=(	const CyclingManager& rhs	/**< Rhs object. */
+									);
+
+
+		/** Pseudo-constructor which takes the number of bounds/constraints.
+		 *	\return SUCCESSFUL_RETURN */
+		returnValue init(	int _nV,	/**< Number of bounds to be managed. */
+							int _nC		/**< Number of constraints to be managed. */
+							);
+
+
+		/** Stores index of a bound/constraint that might cause cycling.
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_INDEX_OUT_OF_BOUNDS */
+		returnValue setCyclingStatus(	int number,				/**< Number of bound/constraint. */
+										BooleanType isBound,	/**< Flag that indicates if given number corresponds to a
+																 *   bound (BT_TRUE) or a constraint (BT_FALSE). */
+										CyclingStatus _status	/**< Cycling status of bound/constraint. */
+										);
+
+		/** Returns if bound/constraint might cause cycling.
+		 *	\return BT_TRUE: bound/constraint might cause cycling \n
+		 			BT_FALSE: otherwise */
+		CyclingStatus getCyclingStatus(	int number,			/**< Number of bound/constraint. */
+										BooleanType isBound	/**< Flag that indicates if given number corresponds to
+															 *   a bound (BT_TRUE) or a constraint (BT_FALSE). */
+										) const;
+
+
+		/** Clears all previous cycling information.
+		 *	\return SUCCESSFUL_RETURN */
+		returnValue clearCyclingData( );
+
+
+		/** Returns if cycling was detected.
+		 *	\return BT_TRUE iff cycling was detected. */
+		inline BooleanType isCyclingDetected( ) const;
+
+
+	/*
+	 *	PROTECTED MEMBER VARIABLES
+	 */
+	protected:
+		int	nV;									/**< Number of managed bounds. */
+		int	nC;									/**< Number of managed constraints. */
+
+		CyclingStatus status[NVMAX+NCMAX];		/**< Array to store cycling status of all bounds/constraints. */
+
+		BooleanType cyclingDetected;			/**< Flag if cycling was detected. */
+};
+
+
+#include <CyclingManager.ipp>
+
+#endif	/* QPOASES_CYCLINGMANAGER_HPP */
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/EXTRAS/SolutionAnalysis.hpp b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/EXTRAS/SolutionAnalysis.hpp
new file mode 100644
index 0000000..056bb26
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/EXTRAS/SolutionAnalysis.hpp
@@ -0,0 +1,107 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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/EXTRAS/SolutionAnalysis.hpp
+ *	\author Milan Vukov, Boris Houska, Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2012
+ *
+ *	Solution analysis class, based on a class in the standard version of the qpOASES
+ */
+
+
+//
+
+#ifndef QPOASES_SOLUTIONANALYSIS_HPP
+#define QPOASES_SOLUTIONANALYSIS_HPP
+
+#include <QProblem.hpp>
+
+/** Enables the computation of variance as is in the standard version of qpOASES */
+#define QPOASES_USE_OLD_VERSION 0
+
+#if QPOASES_USE_OLD_VERSION
+#define KKT_DIM (2 * NVMAX + NCMAX)
+#endif
+
+class SolutionAnalysis
+{
+public:
+	
+	/** Default constructor. */
+	SolutionAnalysis( );
+	
+	/** Copy constructor (deep copy). */
+	SolutionAnalysis( 	const SolutionAnalysis& rhs	/**< Rhs object. */
+						);
+	
+	/** Destructor. */
+	~SolutionAnalysis( );
+	
+	/** Copy asingment operator (deep copy). */
+	SolutionAnalysis& operator=(	const SolutionAnalysis& rhs	/**< Rhs object. */
+									);
+	
+	/** A routine for computation of inverse of the Hessian matrix. */
+	returnValue getHessianInverse(
+									QProblem* qp,			/** QP */
+									real_t* hessianInverse	/** Inverse of the Hessian matrix*/
+									);
+	
+	/** A routine for computation of inverse of the Hessian matrix. */
+	returnValue getHessianInverse(	QProblemB* qp,			/** QP */
+									real_t* hessianInverse	/** Inverse of the Hessian matrix*/
+									);
+
+#if QPOASES_USE_OLD_VERSION
+	returnValue getVarianceCovariance(
+										QProblem* qp,
+										real_t* g_b_bA_VAR,
+										real_t* Primal_Dual_VAR
+										);
+#endif
+	
+private:
+	
+	real_t delta_g_cov[ NVMAX ];		/** A covariance-vector of g */
+	real_t delta_lb_cov[ NVMAX ];		/** A covariance-vector of lb */
+	real_t delta_ub_cov[ NVMAX ];		/** A covariance-vector of ub */
+	real_t delta_lbA_cov[ NCMAX_ALLOC ];		/** A covariance-vector of lbA */
+	real_t delta_ubA_cov[ NCMAX_ALLOC ];		/** A covariance-vector of ubA */
+	
+#if QPOASES_USE_OLD_VERSION
+	real_t K[KKT_DIM * KKT_DIM];		/** A matrix to store an intermediate result */
+#endif
+	
+	int FR_idx[ NVMAX ];				/** Index array for free variables */
+	int FX_idx[ NVMAX ];				/** Index array for fixed variables */
+	int AC_idx[ NCMAX_ALLOC ];				/** Index array for active constraints */
+	
+	real_t delta_xFR[ NVMAX ];			/** QP reaction, primal, w.r.t. free */
+	real_t delta_xFX[ NVMAX ];			/** QP reaction, primal, w.r.t. fixed */
+	real_t delta_yAC[ NVMAX ];			/** QP reaction, dual, w.r.t. active */
+	real_t delta_yFX[ NVMAX ];			/** QP reaction, dual, w.r.t. fixed*/
+};
+
+#endif // QPOASES_SOLUTIONANALYSIS_HPP
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/Indexlist.hpp b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/Indexlist.hpp
new file mode 100644
index 0000000..21c31dd
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/Indexlist.hpp
@@ -0,0 +1,154 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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/Indexlist.hpp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Declaration of the Indexlist class designed to manage index lists of
+ *	constraints and bounds within a SubjectTo object.
+ */
+
+
+#ifndef QPOASES_INDEXLIST_HPP
+#define QPOASES_INDEXLIST_HPP
+
+
+#include <Utils.hpp>
+
+
+/** This class manages index lists.
+ *
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ */
+class Indexlist
+{
+	/*
+	 *	PUBLIC MEMBER FUNCTIONS
+	 */
+	public:
+		/** Default constructor. */
+		Indexlist( );
+
+		/** Copy constructor (deep copy). */
+		Indexlist(	const Indexlist& rhs	/**< Rhs object. */
+					);
+
+		/** Destructor. */
+		~Indexlist( );
+
+		/** Assingment operator (deep copy). */
+		Indexlist& operator=(	const Indexlist& rhs	/**< Rhs object. */
+								);
+
+		/** Pseudo-constructor.
+		 *	\return SUCCESSFUL_RETURN */
+		returnValue init( );
+
+
+		/** Creates an array of all numbers within the index set in correct order.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_INDEXLIST_CORRUPTED */
+		returnValue	getNumberArray(	int* const numberarray	/**< Output: Array of numbers (NULL on error). */
+									) const;
+
+
+		/** Determines the index within the index list at with a given number is stored.
+		 *	\return >= 0: Index of given number. \n
+		 			-1: Number not found. */
+		int	getIndex(	int givennumber	/**< Number whose index shall be determined. */
+						) const;
+
+		/** Determines the physical index within the index list at with a given number is stored.
+		 *	\return >= 0: Index of given number. \n
+		 			-1: Number not found. */
+		int	getPhysicalIndex(	int givennumber	/**< Number whose physical index shall be determined. */
+								) const;
+
+		/** Returns the number stored at a given physical index.
+		 *	\return >= 0: Number stored at given physical index. \n
+		 			-RET_INDEXLIST_OUTOFBOUNDS */
+		int	getNumber(	int physicalindex	/**< Physical index of the number to be returned. */
+						) const;
+
+
+		/** Returns the current length of the index list.
+		 *	\return Current length of the index list. */
+		inline int getLength( );
+
+		/** Returns last number within the index list.
+		 *	\return Last number within the index list. */
+		inline int getLastNumber( ) const;
+
+
+		/** Adds number to index list.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_INDEXLIST_MUST_BE_REORDERD \n
+		 			RET_INDEXLIST_EXCEEDS_MAX_LENGTH */
+		returnValue addNumber(	int addnumber	/**< Number to be added. */
+								);
+
+		/** Removes number from index list.
+		 *	\return SUCCESSFUL_RETURN */
+		returnValue removeNumber(	int removenumber	/**< Number to be removed. */
+									);
+
+		/** Swaps two numbers within index list.
+		 *	\return SUCCESSFUL_RETURN */
+		returnValue swapNumbers(	int number1,/**< First number for swapping. */
+									int number2	/**< Second number for swapping. */
+									);
+
+		/** Determines if a given number is contained in the index set.
+		 *	\return BT_TRUE iff number is contain in the index set */
+		inline BooleanType isMember(	int _number	/**< Number to be tested for membership. */
+										) const;
+
+
+	/*
+	 *	PROTECTED MEMBER VARIABLES
+	 */
+	protected:
+		int number[INDEXLISTFACTOR*(NVMAX+NCMAX)];		/**< Array to store numbers of constraints or bounds. */
+		int next[INDEXLISTFACTOR*(NVMAX+NCMAX)];		/**< Array to store physical index of successor. */
+		int previous[INDEXLISTFACTOR*(NVMAX+NCMAX)];	/**< Array to store physical index of predecossor. */
+		int	length;										/**< Length of index list. */
+		int	first;										/**< Physical index of first element. */
+		int	last;										/**< Physical index of last element. */
+		int	lastusedindex;								/**< Physical index of last entry in index list. */
+		int	physicallength;								/**< Physical length of index list. */
+};
+
+
+#include <Indexlist.ipp>
+
+#endif	/* QPOASES_INDEXLIST_HPP */
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/MessageHandling.hpp b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/MessageHandling.hpp
new file mode 100644
index 0000000..3d17498
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/MessageHandling.hpp
@@ -0,0 +1,415 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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/MessageHandling.hpp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Declaration of the MessageHandling class including global return values.
+ */
+
+
+#ifndef QPOASES_MESSAGEHANDLING_HPP
+#define QPOASES_MESSAGEHANDLING_HPP
+
+// #define PC_DEBUG
+
+#ifdef PC_DEBUG
+  #include <stdio.h>
+
+  /** Defines an alias for  FILE  from stdio.h. */
+  #define myFILE FILE
+  /** Defines an alias for  stderr  from stdio.h. */
+  #define myStderr stderr
+  /** Defines an alias for  stdout  from stdio.h. */
+  #define myStdout stdout
+#else
+  /** Defines an alias for  FILE  from stdio.h. */
+  #define myFILE int
+  /** Defines an alias for  stderr  from stdio.h. */
+  #define myStderr 0
+  /** Defines an alias for  stdout  from stdio.h. */
+  #define myStdout 0
+#endif
+
+
+#include <Types.hpp>
+#include <Constants.hpp>
+
+
+/** Defines symbols for global return values. \n
+ *  Important: All return values are assumed to be nonnegative! */
+enum returnValue
+{
+TERMINAL_LIST_ELEMENT = -1,						/**< Terminal list element, internal usage only! */
+/* miscellaneous */
+SUCCESSFUL_RETURN = 0,							/**< Successful return. */
+RET_DIV_BY_ZERO,		   						/**< Division by zero. */
+RET_INDEX_OUT_OF_BOUNDS,						/**< Index out of bounds. */
+RET_INVALID_ARGUMENTS,							/**< At least one of the arguments is invalid. */
+RET_ERROR_UNDEFINED,							/**< Error number undefined. */
+RET_WARNING_UNDEFINED,							/**< Warning number undefined. */
+RET_INFO_UNDEFINED,								/**< Info number undefined. */
+RET_EWI_UNDEFINED,								/**< Error/warning/info number undefined. */
+RET_AVAILABLE_WITH_LINUX_ONLY,					/**< This function is available under Linux only. */
+RET_UNKNOWN_BUG,								/**< The error occured is not yet known. */
+RET_PRINTLEVEL_CHANGED,							/**< 10 Print level changed. */
+RET_NOT_YET_IMPLEMENTED,						/**< Requested function is not yet implemented in this version of qpOASES. */
+/* Indexlist */
+RET_INDEXLIST_MUST_BE_REORDERD,					/**< Index list has to be reordered. */
+RET_INDEXLIST_EXCEEDS_MAX_LENGTH,				/**< Index list exceeds its maximal physical length. */
+RET_INDEXLIST_CORRUPTED,						/**< Index list corrupted. */
+RET_INDEXLIST_OUTOFBOUNDS,						/**< Physical index is out of bounds. */
+RET_INDEXLIST_ADD_FAILED,						/**< Adding indices from another index set failed. */
+RET_INDEXLIST_INTERSECT_FAILED,					/**< Intersection with another index set failed. */
+/* SubjectTo / Bounds / Constraints */
+RET_INDEX_ALREADY_OF_DESIRED_STATUS,			/**< Index is already of desired status. */
+RET_ADDINDEX_FAILED,							/**< Cannot swap between different indexsets. */
+RET_SWAPINDEX_FAILED,							/**< 20 Adding index to index set failed. */
+RET_NOTHING_TO_DO,								/**< Nothing to do. */
+RET_SETUP_BOUND_FAILED,							/**< Setting up bound index failed. */
+RET_SETUP_CONSTRAINT_FAILED,					/**< Setting up constraint index failed. */
+RET_MOVING_BOUND_FAILED,						/**< Moving bound between index sets failed. */
+RET_MOVING_CONSTRAINT_FAILED,					/**< Moving constraint between index sets failed. */
+/* QProblem */
+RET_QP_ALREADY_INITIALISED,						/**< QProblem has already been initialised. */
+RET_NO_INIT_WITH_STANDARD_SOLVER,				/**< Initialisation via extern QP solver is not yet implemented. */
+RET_RESET_FAILED,								/**< Reset failed. */
+RET_INIT_FAILED,								/**< Initialisation failed. */
+RET_INIT_FAILED_TQ,								/**< 30 Initialisation failed due to TQ factorisation. */
+RET_INIT_FAILED_CHOLESKY,						/**< Initialisation failed due to Cholesky decomposition. */
+RET_INIT_FAILED_HOTSTART,						/**< Initialisation failed! QP could not be solved! */
+RET_INIT_FAILED_INFEASIBILITY,					/**< Initial QP could not be solved due to infeasibility! */
+RET_INIT_FAILED_UNBOUNDEDNESS,					/**< Initial QP could not be solved due to unboundedness! */
+RET_INIT_SUCCESSFUL,							/**< Initialisation done. */
+RET_OBTAINING_WORKINGSET_FAILED,				/**< Failed to obtain working set for auxiliary QP. */
+RET_SETUP_WORKINGSET_FAILED,					/**< Failed to setup working set for auxiliary QP. */
+RET_SETUP_AUXILIARYQP_FAILED,					/**< Failed to setup auxiliary QP for initialised homotopy. */
+RET_NO_EXTERN_SOLVER,							/**< No extern QP solver available. */
+RET_QP_UNBOUNDED,								/**< 40 QP is unbounded. */
+RET_QP_INFEASIBLE,								/**< QP is infeasible. */
+RET_QP_NOT_SOLVED,								/**< Problems occured while solving QP with standard solver. */
+RET_QP_SOLVED,									/**< QP successfully solved. */
+RET_UNABLE_TO_SOLVE_QP,							/**< Problems occured while solving QP. */
+RET_INITIALISATION_STARTED,						/**< Starting problem initialisation. */
+RET_HOTSTART_FAILED,							/**< Unable to perform homotopy due to internal error. */
+RET_HOTSTART_FAILED_TO_INIT,					/**< Unable to initialise problem. */
+RET_HOTSTART_FAILED_AS_QP_NOT_INITIALISED,		/**< Unable to perform homotopy as previous QP is not solved. */
+RET_ITERATION_STARTED,							/**< Iteration... */
+RET_SHIFT_DETERMINATION_FAILED,					/**< 50 Determination of shift of the QP data failed. */
+RET_STEPDIRECTION_DETERMINATION_FAILED,			/**< Determination of step direction failed. */
+RET_STEPLENGTH_DETERMINATION_FAILED,			/**< Determination of step direction failed. */
+RET_OPTIMAL_SOLUTION_FOUND,						/**< Optimal solution of neighbouring QP found. */
+RET_HOMOTOPY_STEP_FAILED,						/**< Unable to perform homotopy step. */
+RET_HOTSTART_STOPPED_INFEASIBILITY,				/**< Premature homotopy termination because QP is infeasible. */
+RET_HOTSTART_STOPPED_UNBOUNDEDNESS,				/**< Premature homotopy termination because QP is unbounded. */
+RET_WORKINGSET_UPDATE_FAILED,					/**< Unable to update working sets according to initial guesses. */
+RET_MAX_NWSR_REACHED,							/**< Maximum number of working set recalculations performed. */
+RET_CONSTRAINTS_NOT_SPECIFIED,					/**< Problem does comprise constraints! You also have to specify new constraints' bounds. */
+RET_INVALID_FACTORISATION_FLAG,					/**< 60 Invalid factorisation flag. */
+RET_UNABLE_TO_SAVE_QPDATA,						/**< Unable to save QP data. */
+RET_STEPDIRECTION_FAILED_TQ,					/**< Abnormal termination due to TQ factorisation. */
+RET_STEPDIRECTION_FAILED_CHOLESKY,				/**< Abnormal termination due to Cholesky factorisation. */
+RET_CYCLING_DETECTED,							/**< Cycling detected. */
+RET_CYCLING_NOT_RESOLVED,						/**< Cycling cannot be resolved, QP probably infeasible. */
+RET_CYCLING_RESOLVED,							/**< Cycling probably resolved. */
+RET_STEPSIZE,									/**< For displaying performed stepsize. */
+RET_STEPSIZE_NONPOSITIVE,						/**< For displaying non-positive stepsize. */
+RET_SETUPSUBJECTTOTYPE_FAILED,					/**< Setup of SubjectToTypes failed. */
+RET_ADDCONSTRAINT_FAILED,						/**< 70 Addition of constraint to working set failed. */
+RET_ADDCONSTRAINT_FAILED_INFEASIBILITY,			/**< Addition of constraint to working set failed (due to QP infeasibility). */
+RET_ADDBOUND_FAILED,							/**< Addition of bound to working set failed. */
+RET_ADDBOUND_FAILED_INFEASIBILITY,				/**< Addition of bound to working set failed (due to QP infeasibility). */
+RET_REMOVECONSTRAINT_FAILED,					/**< Removal of constraint from working set failed. */
+RET_REMOVEBOUND_FAILED,							/**< Removal of bound from working set failed. */
+RET_REMOVE_FROM_ACTIVESET,						/**< Removing from active set... */
+RET_ADD_TO_ACTIVESET,							/**< Adding to active set... */
+RET_REMOVE_FROM_ACTIVESET_FAILED,				/**< Removing from active set failed. */
+RET_ADD_TO_ACTIVESET_FAILED,					/**< Adding to active set failed. */
+RET_CONSTRAINT_ALREADY_ACTIVE,					/**< 80 Constraint is already active. */
+RET_ALL_CONSTRAINTS_ACTIVE,						/**< All constraints are active, no further constraint can be added. */
+RET_LINEARLY_DEPENDENT,							/**< New bound/constraint is linearly dependent. */
+RET_LINEARLY_INDEPENDENT,						/**< New bound/constraint is linearly independent. */
+RET_LI_RESOLVED,								/**< Linear independence of active contraint matrix successfully resolved. */
+RET_ENSURELI_FAILED,							/**< Failed to ensure linear indepence of active contraint matrix. */
+RET_ENSURELI_FAILED_TQ,							/**< Abnormal termination due to TQ factorisation. */
+RET_ENSURELI_FAILED_NOINDEX,					/**< No index found, QP probably infeasible. */
+RET_ENSURELI_FAILED_CYCLING,					/**< Cycling detected, QP probably infeasible. */
+RET_BOUND_ALREADY_ACTIVE,						/**< Bound is already active. */
+RET_ALL_BOUNDS_ACTIVE,							/**< 90 All bounds are active, no further bound can be added. */
+RET_CONSTRAINT_NOT_ACTIVE,						/**< Constraint is not active. */
+RET_BOUND_NOT_ACTIVE,							/**< Bound is not active. */
+RET_HESSIAN_NOT_SPD,							/**< Projected Hessian matrix not positive definite. */
+RET_MATRIX_SHIFT_FAILED,						/**< Unable to update matrices or to transform vectors. */
+RET_MATRIX_FACTORISATION_FAILED,				/**< Unable to calculate new matrix factorisations. */
+RET_PRINT_ITERATION_FAILED,						/**< Unable to print information on current iteration. */
+RET_NO_GLOBAL_MESSAGE_OUTPUTFILE,				/**< No global message output file initialised. */
+/* Utils */
+RET_UNABLE_TO_OPEN_FILE,						/**< Unable to open file. */
+RET_UNABLE_TO_WRITE_FILE,						/**< Unable to write into file. */
+RET_UNABLE_TO_READ_FILE,						/**< 100 Unable to read from file. */
+RET_FILEDATA_INCONSISTENT,						/**< File contains inconsistent data. */
+/* SolutionAnalysis */
+RET_NO_SOLUTION, 								/**< QP solution does not satisfy KKT optimality conditions. */
+RET_INACCURATE_SOLUTION							/**< KKT optimality conditions not satisfied to sufficient accuracy. */
+};
+
+
+
+/** This class handles all kinds of messages (errors, warnings, infos) initiated
+ *  by qpOASES modules and stores the correspoding global preferences.
+ *
+ *	\author Hans Joachim Ferreau (special thanks to Leonard Wirsching)
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ */
+class MessageHandling
+{
+	/*
+	 *	INTERNAL DATA STRUCTURES
+	 */
+	public:
+		/** Data structure for entries in global message list. */
+		typedef struct {
+			returnValue key;							/**< Global return value. */
+			const char* data;							/**< Corresponding message. */
+			VisibilityStatus globalVisibilityStatus; 	/**< Determines if message can be printed.
+														* 	 If this value is set to VS_HIDDEN, no message is printed! */
+		} ReturnValueList;
+
+
+	/*
+	 *	PUBLIC MEMBER FUNCTIONS
+	 */
+	public:
+		/** Default constructor. */
+		MessageHandling( );
+
+		/** Constructor which takes the desired output file. */
+		MessageHandling(  myFILE* _outputFile					/**< Output file. */
+						  );
+
+		/** Constructor which takes the desired visibility states. */
+		MessageHandling(	VisibilityStatus _errorVisibility,	/**< Visibility status for error messages. */
+							VisibilityStatus _warningVisibility,/**< Visibility status for warning messages. */
+							VisibilityStatus _infoVisibility	/**< Visibility status for info messages. */
+							);
+
+		/** Constructor which takes the desired output file and desired visibility states. */
+		MessageHandling(	myFILE* _outputFile,				/**< Output file. */
+							VisibilityStatus _errorVisibility,	/**< Visibility status for error messages. */
+							VisibilityStatus _warningVisibility,/**< Visibility status for warning messages. */
+							VisibilityStatus _infoVisibility	/**< Visibility status for info messages. */
+							);
+
+		/** Copy constructor (deep copy). */
+		MessageHandling(	const MessageHandling& rhs	/**< Rhs object. */
+							);
+
+		/** Destructor. */
+		~MessageHandling( );
+
+		/** Assignment operator (deep copy). */
+		MessageHandling& operator=(	const MessageHandling& rhs	/**< Rhs object. */
+									);
+
+
+		/** Prints an error message(a simplified macro THROWERROR is also provided). \n
+		 *  Errors are definied as abnormal events which cause an immediate termination of the current (sub) function.
+		 *  Errors of a sub function should be commented by the calling function by means of a warning message
+		 *  (if this error does not cause an error of the calling function, either)!
+		 *  \return Error number returned by sub function call
+		 */
+		returnValue throwError(
+			returnValue Enumber,					/**< Error number returned by sub function call. */
+			const char* additionaltext,				/**< Additional error text (0, if none). */
+			const char* functionname,				/**< Name of function which caused the error. */
+			const char* filename,					/**< Name of file which caused the error. */
+			const unsigned long linenumber,			/**< Number of line which caused the error.incompatible binary file */
+			VisibilityStatus localVisibilityStatus	/**< Determines (locally) if error message can be printed to myStderr.
+			   									 *   If GLOBAL visibility status of the message is set to VS_HIDDEN,
+	   			 								 *   no message is printed, anyway! */
+		);
+
+		/** Prints a warning message (a simplified macro THROWWARNING is also provided).
+		 *  Warnings are definied as abnormal events which does NOT cause an immediate termination of the current (sub) function.
+		 *  \return Warning number returned by sub function call
+		 */
+		returnValue throwWarning(
+			returnValue Wnumber,	 				/**< Warning number returned by sub function call. */
+			const char* additionaltext,				/**< Additional warning text (0, if none). */
+			const char* functionname,				/**< Name of function which caused the warning. */
+			const char* filename,   				/**< Name of file which caused the warning. */
+			const unsigned long linenumber,	 		/**< Number of line which caused the warning. */
+			VisibilityStatus localVisibilityStatus	/**< Determines (locally) if warning message can be printed to myStderr.
+		   		  									 *   If GLOBAL visibility status of the message is set to VS_HIDDEN,
+					 								 *   no message is printed, anyway! */
+			);
+
+	   /** Prints a info message (a simplified macro THROWINFO is also provided).
+		 *  \return Info number returned by sub function call
+		 */
+		returnValue throwInfo(
+			returnValue Inumber,	 				/**< Info number returned by sub function call. */
+			const char* additionaltext,	 			/**< Additional warning text (0, if none). */
+			const char* functionname,				/**< Name of function which submitted the info. */
+			const char* filename,   				/**< Name of file which submitted the info. */
+			const unsigned long linenumber,			/**< Number of line which submitted the info. */
+			VisibilityStatus localVisibilityStatus	/**< Determines (locally) if info message can be printed to myStderr.
+				  									 *   If GLOBAL visibility status of the message is set to VS_HIDDEN,
+				   									 *   no message is printed, anyway! */
+			);
+
+
+		/** Resets all preferences to default values.
+		 *	\return SUCCESSFUL_RETURN */
+		returnValue reset( );
+
+
+		/** Prints a complete list of all messages to output file.
+		 *	\return SUCCESSFUL_RETURN */
+		returnValue listAllMessages( );
+
+
+		/** Returns visibility status for error messages.
+		 *	\return Visibility status for error messages. */
+		inline VisibilityStatus getErrorVisibilityStatus( ) const;
+
+		/** Returns visibility status for warning messages.
+		 *	\return Visibility status for warning messages. */
+		inline VisibilityStatus getWarningVisibilityStatus( ) const;
+
+		/** Returns visibility status for info messages.
+		 *	\return Visibility status for info messages. */
+		inline VisibilityStatus getInfoVisibilityStatus( ) const;
+
+		/** Returns pointer to output file.
+		 *	\return Pointer to output file. */
+		inline myFILE* getOutputFile( ) const;
+
+		/** Returns error count value.
+		 *	\return Error count value. */
+		inline int getErrorCount( ) const;
+
+
+		/** Changes visibility status for error messages. */
+		inline void setErrorVisibilityStatus(	VisibilityStatus _errorVisibility	/**< New visibility status for error messages. */
+												);
+
+		/** Changes visibility status for warning messages. */
+		inline void setWarningVisibilityStatus(	VisibilityStatus _warningVisibility	/**< New visibility status for warning messages. */
+												);
+
+		/** Changes visibility status for info messages. */
+		inline void setInfoVisibilityStatus(	VisibilityStatus _infoVisibility	/**< New visibility status for info messages. */
+												);
+
+		/** Changes output file for messages. */
+		inline void setOutputFile(	myFILE* _outputFile	/**< New output file for messages. */
+									);
+
+		/** Changes error count.
+		 * \return SUCCESSFUL_RETURN \n
+		 *		   RET_INVALID_ARGUMENT */
+		inline returnValue setErrorCount(	int _errorCount	/**< New error count value. */
+											);
+
+		/** Return the error code string. */
+		static const char* getErrorString(int error);
+
+	/*
+	 *	PROTECTED MEMBER FUNCTIONS
+	 */
+	protected:
+		/** Prints a info message to myStderr (auxiliary function).
+		 *  \return Error/warning/info number returned by sub function call
+		 */
+		returnValue throwMessage(
+			returnValue RETnumber,	 				/**< Error/warning/info number returned by sub function call. */
+			const char* additionaltext,				/**< Additional warning text (0, if none). */
+			const char* functionname,				/**< Name of function which caused the error/warning/info. */
+			const char* filename,   				/**< Name of file which caused the error/warning/info. */
+			const unsigned long linenumber,			/**< Number of line which caused the error/warning/info. */
+			VisibilityStatus localVisibilityStatus,	/**< Determines (locally) if info message can be printed to myStderr.
+					  								 *   If GLOBAL visibility status of the message is set to VS_HIDDEN,
+				   									 *   no message is printed, anyway! */
+			const char* RETstring					/**< Leading string of error/warning/info message. */
+			);
+
+
+	/*
+	 *	PROTECTED MEMBER VARIABLES
+	 */
+	protected:
+		VisibilityStatus errorVisibility;		/**< Error messages visible? */
+		VisibilityStatus warningVisibility;		/**< Warning messages visible? */
+		VisibilityStatus infoVisibility;		/**< Info messages visible? */
+
+		myFILE* outputFile;						/**< Output file for messages. */
+
+		int errorCount; 						/**< Counts number of errors (for nicer output only). */
+};
+
+
+#ifndef __FUNCTION__
+  /** Ensures that __FUNCTION__ macro is defined. */
+  #define __FUNCTION__ 0
+#endif
+
+#ifndef __FILE__
+  /** Ensures that __FILE__ macro is defined. */
+  #define __FILE__ 0
+#endif
+
+#ifndef __LINE__
+  /** Ensures that __LINE__ macro is defined. */
+  #define __LINE__ 0
+#endif
+
+
+/** Short version of throwError with default values, only returnValue is needed */
+#define THROWERROR(retval) ( getGlobalMessageHandler( )->throwError((retval),0,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE) )
+
+/** Short version of throwWarning with default values, only returnValue is needed */
+#define THROWWARNING(retval) ( getGlobalMessageHandler( )->throwWarning((retval),0,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE) )
+
+/** Short version of throwInfo with default values, only returnValue is needed */
+#define THROWINFO(retval) ( getGlobalMessageHandler( )->throwInfo((retval),0,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE) )
+
+
+/** Returns a pointer to global message handler.
+ *  \return Pointer to global message handler.
+ */
+MessageHandling* getGlobalMessageHandler( );
+
+
+#include <MessageHandling.ipp>
+
+#endif /* QPOASES_MESSAGEHANDLING_HPP */
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/QProblem.hpp b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/QProblem.hpp
new file mode 100644
index 0000000..91dc434
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/QProblem.hpp
@@ -0,0 +1,666 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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/QProblem.hpp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Declaration of the QProblem class which is able to use the newly
+ *	developed online active set strategy for parametric quadratic programming.
+ */
+
+
+
+#ifndef QPOASES_QPROBLEM_HPP
+#define QPOASES_QPROBLEM_HPP
+
+
+#include <QProblemB.hpp>
+#include <Constraints.hpp>
+#include <CyclingManager.hpp>
+
+
+/** A class for setting up and solving quadratic programs. The main feature is
+ *	the possibily to use the newly developed online active set strategy for
+ * 	parametric quadratic programming.
+ *
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ */
+class QProblem : public QProblemB
+{
+	/* allow SolutionAnalysis class to access private members */
+	friend class SolutionAnalysis;
+	
+	/*
+	 *	PUBLIC MEMBER FUNCTIONS
+	 */
+	public:
+		/** Default constructor. */
+		QProblem( );
+
+		/** Constructor which takes the QP dimensions only. */
+		QProblem(	int _nV,	  				/**< Number of variables. */
+					int _nC  					/**< Number of constraints. */
+					);
+
+		/** Copy constructor (deep copy). */
+		QProblem(	const QProblem& rhs	/**< Rhs object. */
+					);
+
+		/** Destructor. */
+		~QProblem( );
+
+		/** Assignment operator (deep copy). */
+		QProblem& operator=(	const QProblem& rhs		/**< Rhs object. */
+								);
+
+
+		/** Clears all data structures of QProblemB except for QP data.
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_RESET_FAILED */
+		returnValue reset( );
+
+
+		/** Initialises a QProblem with given QP data and solves it
+		 *	using an initial homotopy with empty working set (at most nWSR iterations).
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_INIT_FAILED \n
+					RET_INIT_FAILED_CHOLESKY \n
+					RET_INIT_FAILED_TQ \n
+					RET_INIT_FAILED_HOTSTART \n
+					RET_INIT_FAILED_INFEASIBILITY \n
+					RET_INIT_FAILED_UNBOUNDEDNESS \n
+					RET_MAX_NWSR_REACHED \n
+					RET_INVALID_ARGUMENTS \n
+					RET_INACCURATE_SOLUTION \n
+		 			RET_NO_SOLUTION */
+		returnValue init(	const real_t* const _H, 		/**< Hessian matrix. */
+							const real_t* const _g, 		/**< Gradient vector. */
+							const real_t* const _A,  		/**< Constraint matrix. */
+							const real_t* const _lb,		/**< Lower bound vector (on variables). \n
+																If no lower bounds exist, a NULL pointer can be passed. */
+							const real_t* const _ub,		/**< Upper bound vector (on variables). \n
+																If no upper bounds exist, a NULL pointer can be passed. */
+							const real_t* const _lbA,		/**< Lower constraints' bound vector. \n
+																If no lower constraints' bounds exist, a NULL pointer can be passed. */
+							const real_t* const _ubA,		/**< Upper constraints' bound vector. \n
+																If no lower constraints' bounds exist, a NULL pointer can be passed. */
+							int& nWSR,						/**< Input: Maximum number of working set recalculations when using initial homotopy.
+																Output: Number of performed working set recalculations. */
+							const real_t* const yOpt = 0,	/**< Initial guess for dual solution vector. */
+							real_t* const cputime = 0		/**< Output: CPU time required to initialise QP. */
+							);
+
+
+		/** Initialises a QProblem with given QP data and solves it
+		 *	using an initial homotopy with empty working set (at most nWSR iterations).
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_INIT_FAILED \n
+					RET_INIT_FAILED_CHOLESKY \n
+					RET_INIT_FAILED_TQ \n
+					RET_INIT_FAILED_HOTSTART \n
+					RET_INIT_FAILED_INFEASIBILITY \n
+					RET_INIT_FAILED_UNBOUNDEDNESS \n
+					RET_MAX_NWSR_REACHED \n
+					RET_INVALID_ARGUMENTS \n
+					RET_INACCURATE_SOLUTION \n
+		 			RET_NO_SOLUTION */
+		returnValue init(	const real_t* const _H, 		/**< Hessian matrix. */
+							const real_t* const _R, 		/**< Cholesky factorization of the Hessian matrix. */
+							const real_t* const _g, 		/**< Gradient vector. */
+							const real_t* const _A,  		/**< Constraint matrix. */
+							const real_t* const _lb,		/**< Lower bound vector (on variables). \n
+																If no lower bounds exist, a NULL pointer can be passed. */
+							const real_t* const _ub,		/**< Upper bound vector (on variables). \n
+																If no upper bounds exist, a NULL pointer can be passed. */
+							const real_t* const _lbA,		/**< Lower constraints' bound vector. \n
+																If no lower constraints' bounds exist, a NULL pointer can be passed. */
+							const real_t* const _ubA,		/**< Upper constraints' bound vector. \n
+																If no lower constraints' bounds exist, a NULL pointer can be passed. */
+							int& nWSR,						/**< Input: Maximum number of working set recalculations when using initial homotopy.
+																Output: Number of performed working set recalculations. */
+							const real_t* const yOpt = 0,	/**< Initial guess for dual solution vector. */
+							real_t* const cputime = 0		/**< Output: CPU time required to initialise QP. */
+							);
+
+
+		/** Solves QProblem using online active set strategy.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_MAX_NWSR_REACHED \n
+		 			RET_HOTSTART_FAILED_AS_QP_NOT_INITIALISED \n
+					RET_HOTSTART_FAILED \n
+					RET_SHIFT_DETERMINATION_FAILED \n
+					RET_STEPDIRECTION_DETERMINATION_FAILED \n
+					RET_STEPLENGTH_DETERMINATION_FAILED \n
+					RET_HOMOTOPY_STEP_FAILED \n
+					RET_HOTSTART_STOPPED_INFEASIBILITY \n
+					RET_HOTSTART_STOPPED_UNBOUNDEDNESS \n
+					RET_INACCURATE_SOLUTION \n
+		 			RET_NO_SOLUTION */
+		returnValue hotstart(	const real_t* const g_new,		/**< Gradient of neighbouring QP to be solved. */
+								const real_t* const lb_new,		/**< Lower bounds of neighbouring QP to be solved. \n
+													 			 	 If no lower bounds exist, a NULL pointer can be passed. */
+								const real_t* const ub_new,		/**< Upper bounds of neighbouring QP to be solved. \n
+													 			 	 If no upper bounds exist, a NULL pointer can be passed. */
+								const real_t* const lbA_new,	/**< Lower constraints' bounds of neighbouring QP to be solved. \n
+													 			 	 If no lower constraints' bounds exist, a NULL pointer can be passed. */
+								const real_t* const ubA_new,	/**< Upper constraints' bounds of neighbouring QP to be solved. \n
+													 			 	 If no upper constraints' bounds exist, a NULL pointer can be passed. */
+								int& nWSR,						/**< Input: Maximum number of working set recalculations; \n
+															 		 Output: Number of performed working set recalculations. */
+								real_t* const cputime			/**< Output: CPU time required to solve QP (or to perform nWSR iterations). */
+								);
+
+
+		/** Returns constraint matrix of the QP (deep copy).
+		  *	\return SUCCESSFUL_RETURN */
+		inline returnValue getA(	real_t* const _A	/**< Array of appropriate dimension for copying constraint matrix.*/
+									) const;
+
+		/** Returns a single row of constraint matrix of the QP (deep copy).
+		  *	\return SUCCESSFUL_RETURN \n
+					RET_INDEX_OUT_OF_BOUNDS */
+		inline returnValue getA(	int number,			/**< Number of entry to be returned. */
+									real_t* const row	/**< Array of appropriate dimension for copying (number)th constraint. */
+									) const;
+
+		/** Returns lower constraints' bound vector of the QP (deep copy).
+		  *	\return SUCCESSFUL_RETURN */
+		inline returnValue getLBA(	real_t* const _lbA	/**< Array of appropriate dimension for copying lower constraints' bound vector.*/
+									) const;
+
+		/** Returns single entry of lower constraints' bound vector of the QP.
+		  *	\return SUCCESSFUL_RETURN \n
+					RET_INDEX_OUT_OF_BOUNDS */
+		inline returnValue getLBA(	int number,		/**< Number of entry to be returned. */
+									real_t& value	/**< Output: lbA[number].*/
+									) const;
+
+		/** Returns upper constraints' bound vector of the QP (deep copy).
+		  *	\return SUCCESSFUL_RETURN */
+		inline returnValue getUBA(	real_t* const _ubA	/**< Array of appropriate dimension for copying upper constraints' bound vector.*/
+									) const;
+
+		/** Returns single entry of upper constraints' bound vector of the QP.
+		  *	\return SUCCESSFUL_RETURN \n
+					RET_INDEX_OUT_OF_BOUNDS */
+		inline returnValue getUBA(	int number,		/**< Number of entry to be returned. */
+									real_t& value	/**< Output: ubA[number].*/
+									) const;
+
+
+		/** Returns current constraints object of the QP (deep copy).
+		  *	\return SUCCESSFUL_RETURN */
+		inline returnValue getConstraints(	Constraints* const _constraints	/** Output: Constraints object. */
+											) const;
+
+
+		/** Returns the number of constraints.
+		 *	\return Number of constraints. */
+		inline int getNC( ) const;
+
+		/** Returns the number of (implicitly defined) equality constraints.
+		 *	\return Number of (implicitly defined) equality constraints. */
+		inline int getNEC( ) const;
+
+		/** Returns the number of active constraints.
+		 *	\return Number of active constraints. */
+		inline int getNAC( );
+
+		/** Returns the number of inactive constraints.
+		 *	\return Number of inactive constraints. */
+		inline int getNIAC( );
+
+		/** Returns the dimension of null space.
+		 *	\return Dimension of null space. */
+		int getNZ( );
+
+
+		/** Returns the dual solution vector (deep copy).
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_QP_NOT_SOLVED */
+		returnValue getDualSolution(	real_t* const yOpt	/**< Output: Dual solution vector (if QP has been solved). */
+										) const;
+
+
+	/*
+	 *	PROTECTED MEMBER FUNCTIONS
+	 */
+	protected:
+		/** Determines type of constraints and bounds (i.e. implicitly fixed, unbounded etc.).
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_SETUPSUBJECTTOTYPE_FAILED */
+		returnValue setupSubjectToType( );
+
+		/** Computes the Cholesky decomposition R of the projected Hessian (i.e. R^T*R = Z^T*H*Z).
+		 *	\return SUCCESSFUL_RETURN \n
+		 *			RET_INDEXLIST_CORRUPTED */
+		returnValue setupCholeskyDecompositionProjected( );
+
+		/** Initialises TQ factorisation of A (i.e. A*Q = [0 T]) if NO constraint is active.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_INDEXLIST_CORRUPTED */
+		returnValue setupTQfactorisation( );
+
+
+		/** Solves a QProblem whose QP data is assumed to be stored in the member variables.
+		 *  A guess for its primal/dual optimal solution vectors and the corresponding
+		 *  working sets of bounds and constraints can be provided.
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_INIT_FAILED \n
+					RET_INIT_FAILED_CHOLESKY \n
+					RET_INIT_FAILED_TQ \n
+					RET_INIT_FAILED_HOTSTART \n
+					RET_INIT_FAILED_INFEASIBILITY \n
+					RET_INIT_FAILED_UNBOUNDEDNESS \n
+					RET_MAX_NWSR_REACHED */
+		returnValue solveInitialQP(	const real_t* const xOpt,						/**< Optimal primal solution vector.
+																					 *	 A NULL pointer can be passed. */
+									const real_t* const yOpt,						/**< Optimal dual solution vector.
+																					 *	 A NULL pointer can be passed. */
+									const Bounds* const guessedBounds,				/**< Guessed working set of bounds for solution (xOpt,yOpt).
+																		 			 *	 A NULL pointer can be passed. */
+									const Constraints* const guessedConstraints,	/**< Optimal working set of constraints for solution (xOpt,yOpt).
+																		 			 *	 A NULL pointer can be passed. */
+									int& nWSR, 										/**< Input: Maximum number of working set recalculations; \n
+																 					 *	 Output: Number of performed working set recalculations. */
+									real_t* const cputime							/**< Output: CPU time required to solve QP (or to perform nWSR iterations). */
+									);
+
+		/** Obtains the desired working set for the auxiliary initial QP in
+		 *  accordance with the user specifications
+		 *  (assumes that member AX has already been initialised!)
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_OBTAINING_WORKINGSET_FAILED \n
+					RET_INVALID_ARGUMENTS */
+		returnValue obtainAuxiliaryWorkingSet(	const real_t* const xOpt,						/**< Optimal primal solution vector.
+																								 *	 If a NULL pointer is passed, all entries are assumed to be zero. */
+												const real_t* const yOpt,						/**< Optimal dual solution vector.
+																								 *	 If a NULL pointer is passed, all entries are assumed to be zero. */
+												const Bounds* const guessedBounds,				/**< Guessed working set of bounds for solution (xOpt,yOpt). */
+												const Constraints* const guessedConstraints,	/**< Guessed working set for solution (xOpt,yOpt). */
+												Bounds* auxiliaryBounds,						/**< Input: Allocated bound object. \n
+																								 *	 Ouput: Working set of constraints for auxiliary QP. */
+												Constraints* auxiliaryConstraints				/**< Input: Allocated bound object. \n
+																								 *	 Ouput: Working set for auxiliary QP. */
+												) const;
+
+		/** Setups bound and constraints data structures according to auxiliaryBounds/Constraints.
+		 *  (If the working set shall be setup afresh, make sure that
+		 *  bounds and constraints data structure have been resetted
+		 *  and the TQ factorisation has been initialised!)
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_SETUP_WORKINGSET_FAILED \n
+					RET_INVALID_ARGUMENTS \n
+					RET_UNKNOWN BUG */
+		returnValue setupAuxiliaryWorkingSet(	const Bounds* const auxiliaryBounds,			/**< Working set of bounds for auxiliary QP. */
+												const Constraints* const auxiliaryConstraints,	/**< Working set of constraints for auxiliary QP. */
+												BooleanType setupAfresh							/**< Flag indicating if given working set shall be
+																								 *    setup afresh or by updating the current one. */
+												);
+
+		/** Setups the optimal primal/dual solution of the auxiliary initial QP.
+		 *	\return SUCCESSFUL_RETURN */
+		returnValue setupAuxiliaryQPsolution(	const real_t* const xOpt,			/**< Optimal primal solution vector.
+																				 	*	 If a NULL pointer is passed, all entries are set to zero. */
+												const real_t* const yOpt			/**< Optimal dual solution vector.
+																					 *	 If a NULL pointer is passed, all entries are set to zero. */
+												);
+
+		/** Setups gradient of the auxiliary initial QP for given
+		 *  optimal primal/dual solution and given initial working set
+		 *  (assumes that members X, Y and BOUNDS, CONSTRAINTS have already been initialised!).
+		 *	\return SUCCESSFUL_RETURN */
+		returnValue setupAuxiliaryQPgradient( );
+
+		/** Setups (constraints') bounds of the auxiliary initial QP for given
+		 *  optimal primal/dual solution and given initial working set
+		 *  (assumes that members X, Y and BOUNDS, CONSTRAINTS have already been initialised!).
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_UNKNOWN BUG */
+		returnValue setupAuxiliaryQPbounds(	const Bounds* const auxiliaryBounds,			/**< Working set of bounds for auxiliary QP. */
+											const Constraints* const auxiliaryConstraints,	/**< Working set of constraints for auxiliary QP. */
+											BooleanType useRelaxation						/**< Flag indicating if inactive (constraints') bounds shall be relaxed. */
+											);
+
+
+		/** Adds a constraint to active set.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_ADDCONSTRAINT_FAILED \n
+					RET_ADDCONSTRAINT_FAILED_INFEASIBILITY \n
+					RET_ENSURELI_FAILED */
+		returnValue addConstraint(	int number,					/**< Number of constraint to be added to active set. */
+									SubjectToStatus C_status,	/**< Status of new active constraint. */
+									BooleanType updateCholesky	/**< Flag indicating if Cholesky decomposition shall be updated. */
+									);
+
+		/** Checks if new active constraint to be added is linearly dependent from
+		 *	from row of the active constraints matrix.
+		 *	\return	 RET_LINEARLY_DEPENDENT \n
+		 			 RET_LINEARLY_INDEPENDENT \n
+					 RET_INDEXLIST_CORRUPTED */
+		returnValue addConstraint_checkLI(	int number			/**< Number of constraint to be added to active set. */
+											);
+
+		/** Ensures linear independence of constraint matrix when a new constraint is added.
+		 * 	To this end a bound or constraint is removed simultaneously if necessary.
+		 *	\return	 SUCCESSFUL_RETURN \n
+		 			 RET_LI_RESOLVED \n
+					 RET_ENSURELI_FAILED \n
+					 RET_ENSURELI_FAILED_TQ \n
+					 RET_ENSURELI_FAILED_NOINDEX \n
+					 RET_REMOVE_FROM_ACTIVESET */
+		returnValue addConstraint_ensureLI(	int number,					/**< Number of constraint to be added to active set. */
+											SubjectToStatus C_status	/**< Status of new active bound. */
+											);
+
+		/** Adds a bound to active set.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_ADDBOUND_FAILED \n
+					RET_ADDBOUND_FAILED_INFEASIBILITY \n
+					RET_ENSURELI_FAILED */
+		returnValue addBound(	int number,					/**< Number of bound to be added to active set. */
+								SubjectToStatus B_status,	/**< Status of new active bound. */
+								BooleanType updateCholesky	/**< Flag indicating if Cholesky decomposition shall be updated. */
+								);
+
+		/** Checks if new active bound to be added is linearly dependent from
+		 *	from row of the active constraints matrix.
+		 *	\return	 RET_LINEARLY_DEPENDENT \n
+		 			 RET_LINEARLY_INDEPENDENT */
+		returnValue addBound_checkLI(	int number			/**< Number of bound to be added to active set. */
+										);
+
+		/** Ensures linear independence of constraint matrix when a new bound is added.
+		 *	To this end a bound or constraint is removed simultaneously if necessary.
+		 *	\return	 SUCCESSFUL_RETURN \n
+		 			 RET_LI_RESOLVED \n
+					 RET_ENSURELI_FAILED \n
+					 RET_ENSURELI_FAILED_TQ \n
+					 RET_ENSURELI_FAILED_NOINDEX \n
+					 RET_REMOVE_FROM_ACTIVESET */
+		returnValue addBound_ensureLI(	int number,					/**< Number of bound to be added to active set. */
+										SubjectToStatus B_status	/**< Status of new active bound. */
+										);
+
+		/** Removes a constraint from active set.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_CONSTRAINT_NOT_ACTIVE \n
+					RET_REMOVECONSTRAINT_FAILED \n
+					RET_HESSIAN_NOT_SPD */
+		returnValue removeConstraint(	int number,					/**< Number of constraint to be removed from active set. */
+										BooleanType updateCholesky	/**< Flag indicating if Cholesky decomposition shall be updated. */
+										);
+
+		/** Removes a bounds from active set.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_BOUND_NOT_ACTIVE \n
+					RET_HESSIAN_NOT_SPD \n
+					RET_REMOVEBOUND_FAILED */
+		returnValue removeBound(	int number,					/**< Number of bound to be removed from active set. */
+									BooleanType updateCholesky	/**< Flag indicating if Cholesky decomposition shall be updated. */
+									);
+
+
+		/** Solves the system Ra = b or R^Ta = b where R is an upper triangular matrix.
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_DIV_BY_ZERO */
+		returnValue backsolveR(	const real_t* const b,	/**< Right hand side vector. */
+								BooleanType transposed,	/**< Indicates if the transposed system shall be solved. */
+								real_t* const a 		/**< Output: Solution vector */
+								);
+
+		/** Solves the system Ra = b or R^Ta = b where R is an upper triangular matrix. \n
+		 *  Special variant for the case that this function is called from within "removeBound()".
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_DIV_BY_ZERO */
+		returnValue backsolveR(	const real_t* const b,		/**< Right hand side vector. */
+								BooleanType transposed,		/**< Indicates if the transposed system shall be solved. */
+								BooleanType removingBound,	/**< Indicates if function is called from "removeBound()". */
+								real_t* const a 			/**< Output: Solution vector */
+								);
+
+
+		/** Solves the system Ta = b or T^Ta = b where T is a reverse upper triangular matrix.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_DIV_BY_ZERO */
+		returnValue backsolveT(	const real_t* const b,	/**< Right hand side vector. */
+								BooleanType transposed,	/**< Indicates if the transposed system shall be solved. */
+								real_t* const a 		/**< Output: Solution vector */
+								);
+
+
+		/** Determines step direction of the shift of the QP data.
+		 *	\return SUCCESSFUL_RETURN */
+		returnValue hotstart_determineDataShift(const int* const FX_idx, 	/**< Index array of fixed variables. */
+												const int* const AC_idx, 	/**< Index array of active constraints. */
+												const real_t* const g_new,	/**< New gradient vector. */
+												const real_t* const lbA_new,/**< New lower constraints' bounds. */
+												const real_t* const ubA_new,/**< New upper constraints' bounds. */
+												const real_t* const lb_new,	/**< New lower bounds. */
+												const real_t* const ub_new,	/**< New upper bounds. */
+												real_t* const delta_g,	 	/**< Output: Step direction of gradient vector. */
+												real_t* const delta_lbA,	/**< Output: Step direction of lower constraints' bounds. */
+												real_t* const delta_ubA,	/**< Output: Step direction of upper constraints' bounds. */
+												real_t* const delta_lb,	 	/**< Output: Step direction of lower bounds. */
+												real_t* const delta_ub,	 	/**< Output: Step direction of upper bounds. */
+												BooleanType& Delta_bC_isZero,/**< Output: Indicates if active constraints' bounds are to be shifted. */
+												BooleanType& Delta_bB_isZero/**< Output: Indicates if active bounds are to be shifted. */
+												);
+
+		/** Determines step direction of the homotopy path.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_STEPDIRECTION_FAILED_TQ \n
+					RET_STEPDIRECTION_FAILED_CHOLESKY */
+		returnValue hotstart_determineStepDirection(const int* const FR_idx, 		/**< Index array of free variables. */
+													const int* const FX_idx, 		/**< Index array of fixed variables. */
+													const int* const AC_idx, 		/**< Index array of active constraints. */
+													const real_t* const delta_g,	/**< Step direction of gradient vector. */
+													const real_t* const delta_lbA,	/**< Step direction of lower constraints' bounds. */
+													const real_t* const delta_ubA,	/**< Step direction of upper constraints' bounds. */
+													const real_t* const delta_lb,	/**< Step direction of lower bounds. */
+													const real_t* const delta_ub,	/**< Step direction of upper bounds. */
+													BooleanType Delta_bC_isZero, 	/**< Indicates if active constraints' bounds are to be shifted. */
+													BooleanType Delta_bB_isZero,	/**< Indicates if active bounds are to be shifted. */
+													real_t* const delta_xFX, 		/**< Output: Primal homotopy step direction of fixed variables. */
+													real_t* const delta_xFR,	 	/**< Output: Primal homotopy step direction of free variables. */
+													real_t* const delta_yAC, 		/**< Output: Dual homotopy step direction of active constraints' multiplier. */
+													real_t* const delta_yFX 		/**< Output: Dual homotopy step direction of fixed variables' multiplier. */
+													);
+
+		/** Determines the maximum possible step length along the homotopy path.
+		 *	\return SUCCESSFUL_RETURN */
+		returnValue hotstart_determineStepLength(	const int* const FR_idx, 			/**< Index array of free variables. */
+													const int* const FX_idx, 			/**< Index array of fixed variables. */
+													const int* const AC_idx, 			/**< Index array of active constraints. */
+													const int* const IAC_idx, 			/**< Index array of inactive constraints. */
+													const real_t* const delta_lbA,		/**< Step direction of lower constraints' bounds. */
+													const real_t* const delta_ubA,		/**< Step direction of upper constraints' bounds. */
+													const real_t* const delta_lb,	 	/**< Step direction of lower bounds. */
+													const real_t* const delta_ub,	 	/**< Step direction of upper bounds. */
+													const real_t* const delta_xFX, 		/**< Primal homotopy step direction of fixed variables. */
+													const real_t* const delta_xFR,		/**< Primal homotopy step direction of free variables. */
+													const real_t* const delta_yAC,		/**< Dual homotopy step direction of active constraints' multiplier. */
+													const real_t* const delta_yFX,		/**< Dual homotopy step direction of fixed variables' multiplier. */
+													real_t* const delta_Ax,				/**< Output: Step in vector Ax. */
+													int& BC_idx, 						/**< Output: Index of blocking constraint. */
+													SubjectToStatus& BC_status,			/**< Output: Status of blocking constraint. */
+													BooleanType& BC_isBound 			/**< Output: Indicates if blocking constraint is a bound. */
+													);
+
+		/** Performs a step along the homotopy path (and updates active set).
+		 *	\return  SUCCESSFUL_RETURN \n
+		 			 RET_OPTIMAL_SOLUTION_FOUND \n
+		 			 RET_REMOVE_FROM_ACTIVESET_FAILED \n
+					 RET_ADD_TO_ACTIVESET_FAILED \n
+					 RET_QP_INFEASIBLE */
+		returnValue hotstart_performStep(	const int* const FR_idx, 			/**< Index array of free variables. */
+											const int* const FX_idx, 			/**< Index array of fixed variables. */
+											const int* const AC_idx, 			/**< Index array of active constraints. */
+											const int* const IAC_idx, 			/**< Index array of inactive constraints. */
+											const real_t* const delta_g,	 	/**< Step direction of gradient vector. */
+											const real_t* const delta_lbA,	 	/**< Step direction of lower constraints' bounds. */
+											const real_t* const delta_ubA,	 	/**< Step direction of upper constraints' bounds. */
+											const real_t* const delta_lb,	 	/**< Step direction of lower bounds. */
+											const real_t* const delta_ub,	 	/**< Step direction of upper bounds. */
+											const real_t* const delta_xFX, 		/**< Primal homotopy step direction of fixed variables. */
+											const real_t* const delta_xFR,	 	/**< Primal homotopy step direction of free variables. */
+											const real_t* const delta_yAC,	 	/**< Dual homotopy step direction of active constraints' multiplier. */
+											const real_t* const delta_yFX, 		/**< Dual homotopy step direction of fixed variables' multiplier. */
+											const real_t* const delta_Ax, 		/**< Step in vector Ax. */
+											int BC_idx, 						/**< Index of blocking constraint. */
+											SubjectToStatus BC_status,			/**< Status of blocking constraint. */
+											BooleanType BC_isBound 				/**< Indicates if blocking constraint is a bound. */
+											);
+
+
+		/** Checks if lower/upper (constraints') bounds remain consistent
+		 *  (i.e. if lb <= ub and lbA <= ubA ) during the current step.
+		 *	\return BT_TRUE iff (constraints") bounds remain consistent
+		 */
+		BooleanType areBoundsConsistent(	const real_t* const delta_lb,	/**< Step direction of lower bounds. */
+											const real_t* const delta_ub,	/**< Step direction of upper bounds. */
+											const real_t* const delta_lbA,	/**< Step direction of lower constraints' bounds. */
+											const real_t* const delta_ubA	/**< Step direction of upper constraints' bounds. */
+											) const;
+
+
+		/** Setups internal QP data.
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_INVALID_ARGUMENTS */
+		returnValue setupQPdata(	const real_t* const _H, 	/**< Hessian matrix. */
+									const real_t* const _R, 	/**< Cholesky factorization of the Hessian matrix. */
+									const real_t* const _g, 	/**< Gradient vector. */
+									const real_t* const _A,  	/**< Constraint matrix. */
+									const real_t* const _lb,	/**< Lower bound vector (on variables). \n
+																	 If no lower bounds exist, a NULL pointer can be passed. */
+									const real_t* const _ub,	/**< Upper bound vector (on variables). \n
+																	 If no upper bounds exist, a NULL pointer can be passed. */
+									const real_t* const _lbA,	/**< Lower constraints' bound vector. \n
+																	 If no lower constraints' bounds exist, a NULL pointer can be passed. */
+									const real_t* const _ubA	/**< Upper constraints' bound vector. \n
+																	 If no lower constraints' bounds exist, a NULL pointer can be passed. */
+									);
+
+
+		#ifdef PC_DEBUG  /* Define print functions only for debugging! */
+
+		/** Prints concise information on the current iteration.
+		 *	\return  SUCCESSFUL_RETURN \n */
+		returnValue printIteration(	int iteration,				/**< Number of current iteration. */
+									int BC_idx, 				/**< Index of blocking constraint. */
+									SubjectToStatus BC_status,	/**< Status of blocking constraint. */
+									BooleanType BC_isBound 		/**< Indicates if blocking constraint is a bound. */
+									);
+
+		/** Prints concise information on the current iteration.
+		 *  NOTE: ONLY DEFINED FOR SUPPRESSING A COMPILER WARNING!!
+		 *	\return  SUCCESSFUL_RETURN \n */
+		returnValue printIteration(	int iteration,				/**< Number of current iteration. */
+									int BC_idx, 				/**< Index of blocking bound. */
+									SubjectToStatus BC_status	/**< Status of blocking bound. */
+									);
+
+		#endif  /* PC_DEBUG */
+
+
+		/** Determines the maximum violation of the KKT optimality conditions
+		 *  of the current iterate within the QProblem object.
+		 *	\return SUCCESSFUL_RETURN \n
+		 * 			RET_INACCURATE_SOLUTION \n
+		 * 			RET_NO_SOLUTION */
+		returnValue checkKKTconditions( );
+
+
+		/** Sets constraint matrix of the QP. \n
+			(Remark: Also internal vector Ax is recomputed!)
+		 *	\return SUCCESSFUL_RETURN */
+		inline returnValue setA(	const real_t* const A_new	/**< New constraint matrix (with correct dimension!). */
+									);
+
+		/** Changes single row of constraint matrix of the QP. \n
+			(Remark: Also correponding component of internal vector Ax is recomputed!)
+		 *	\return SUCCESSFUL_RETURN  \n
+					RET_INDEX_OUT_OF_BOUNDS */
+		inline returnValue setA(	int number,					/**< Number of row to be changed. */
+									const real_t* const value	/**< New (number)th constraint (with correct dimension!). */
+									);
+
+
+		/** Sets constraints' lower bound vector of the QP.
+		 *	\return SUCCESSFUL_RETURN */
+		inline returnValue setLBA(	const real_t* const lbA_new	/**< New constraints' lower bound vector (with correct dimension!). */
+									);
+
+		/** Changes single entry of lower constraints' bound vector of the QP.
+		 *	\return SUCCESSFUL_RETURN  \n
+					RET_INDEX_OUT_OF_BOUNDS */
+		inline returnValue setLBA(	int number,		/**< Number of entry to be changed. */
+									real_t value	/**< New value for entry of lower constraints' bound vector (with correct dimension!). */
+									);
+
+		/** Sets constraints' upper bound vector of the QP.
+		 *	\return SUCCESSFUL_RETURN */
+		inline returnValue setUBA(	const real_t* const ubA_new	/**< New constraints' upper bound vector (with correct dimension!). */
+									);
+
+		/** Changes single entry of upper constraints' bound vector of the QP.
+		 *	\return SUCCESSFUL_RETURN  \n
+					RET_INDEX_OUT_OF_BOUNDS */
+		inline returnValue setUBA(	int number,		/**< Number of entry to be changed. */
+									real_t value	/**< New value for entry of upper constraints' bound vector (with correct dimension!). */
+									);
+
+
+	/*
+	 *	PROTECTED MEMBER VARIABLES
+	 */
+	protected:
+		real_t A[NCMAX_ALLOC*NVMAX];		/**< Constraint matrix. */
+		real_t lbA[NCMAX_ALLOC];			/**< Lower constraints' bound vector. */
+		real_t ubA[NCMAX_ALLOC];			/**< Upper constraints' bound vector. */
+
+		Constraints constraints;			/**< Data structure for problem's constraints. */
+
+		real_t T[NVMAX*NVMAX];				/**< Reverse triangular matrix, A = [0 T]*Q'. */
+		real_t Q[NVMAX*NVMAX];				/**< Orthonormal quadratic matrix, A = [0 T]*Q'. */
+		int sizeT;							/**< Matrix T is stored in a (sizeT x sizeT) array. */
+
+		real_t Ax[NCMAX_ALLOC];				/**< Stores the current product A*x (for increased efficiency only). */
+
+		CyclingManager cyclingManager;		/**< Data structure for storing (possible) cycling information (NOT YET IMPLEMENTED!). */
+};
+
+
+#include <QProblem.ipp>
+
+#endif	/* QPOASES_QPROBLEM_HPP */
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/QProblemB.hpp b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/QProblemB.hpp
new file mode 100644
index 0000000..49ace9e
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/QProblemB.hpp
@@ -0,0 +1,628 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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/QProblemB.hpp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Declaration of the QProblemB class which is able to use the newly
+ *	developed online active set strategy for parametric quadratic programming
+ *	for problems with (simple) bounds only.
+ */
+
+
+
+#ifndef QPOASES_QPROBLEMB_HPP
+#define QPOASES_QPROBLEMB_HPP
+
+
+#include <Bounds.hpp>
+
+
+
+class SolutionAnalysis;
+
+/** Class for setting up and solving quadratic programs with (simple) bounds only.
+ *	The main feature is the possibily to use the newly developed online active set strategy
+ *	for parametric quadratic programming.
+ *
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ */
+class QProblemB
+{
+	/* allow SolutionAnalysis class to access private members */
+	friend class SolutionAnalysis;
+	
+	/*
+	 *	PUBLIC MEMBER FUNCTIONS
+	 */
+	public:
+		/** Default constructor. */
+		QProblemB( );
+
+		/** Constructor which takes the QP dimension only. */
+		QProblemB(	int _nV						/**< Number of variables. */
+					);
+
+		/** Copy constructor (deep copy). */
+		QProblemB(	const QProblemB& rhs	/**< Rhs object. */
+					);
+
+		/** Destructor. */
+		~QProblemB( );
+
+		/** Assignment operator (deep copy). */
+		QProblemB& operator=(	const QProblemB& rhs	/**< Rhs object. */
+								);
+
+
+		/** Clears all data structures of QProblemB except for QP data.
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_RESET_FAILED */
+		returnValue reset( );
+
+
+		/** Initialises a QProblemB with given QP data and solves it
+		 *	using an initial homotopy with empty working set (at most nWSR iterations).
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_INIT_FAILED \n
+					RET_INIT_FAILED_CHOLESKY \n
+					RET_INIT_FAILED_HOTSTART \n
+					RET_INIT_FAILED_INFEASIBILITY \n
+					RET_INIT_FAILED_UNBOUNDEDNESS \n
+					RET_MAX_NWSR_REACHED \n
+					RET_INVALID_ARGUMENTS \n
+					RET_INACCURATE_SOLUTION \n
+		 			RET_NO_SOLUTION */
+		returnValue init(	const real_t* const _H, 		/**< Hessian matrix. */
+							const real_t* const _g,			/**< Gradient vector. */
+							const real_t* const _lb,		/**< Lower bounds (on variables). \n
+																If no lower bounds exist, a NULL pointer can be passed. */
+							const real_t* const _ub,		/**< Upper bounds (on variables). \n
+																If no upper bounds exist, a NULL pointer can be passed. */
+							int& nWSR, 						/**< Input: Maximum number of working set recalculations when using initial homotopy. \n
+																Output: Number of performed working set recalculations. */
+							const real_t* const yOpt = 0,	/**< Initial guess for dual solution vector. */
+				 			real_t* const cputime = 0		/**< Output: CPU time required to initialise QP. */
+							);
+
+
+		/** Initialises a QProblemB with given QP data and solves it
+		 *	using an initial homotopy with empty working set (at most nWSR iterations).
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_INIT_FAILED \n
+					RET_INIT_FAILED_CHOLESKY \n
+					RET_INIT_FAILED_HOTSTART \n
+					RET_INIT_FAILED_INFEASIBILITY \n
+					RET_INIT_FAILED_UNBOUNDEDNESS \n
+					RET_MAX_NWSR_REACHED \n
+					RET_INVALID_ARGUMENTS \n
+					RET_INACCURATE_SOLUTION \n
+		 			RET_NO_SOLUTION */
+		returnValue init(	const real_t* const _H, 		/**< Hessian matrix. */
+							const real_t* const _R, 		/**< Cholesky factorization of the Hessian matrix. */
+							const real_t* const _g,			/**< Gradient vector. */
+							const real_t* const _lb,		/**< Lower bounds (on variables). \n
+																If no lower bounds exist, a NULL pointer can be passed. */
+							const real_t* const _ub,		/**< Upper bounds (on variables). \n
+																If no upper bounds exist, a NULL pointer can be passed. */
+							int& nWSR, 						/**< Input: Maximum number of working set recalculations when using initial homotopy. \n
+																Output: Number of performed working set recalculations. */
+							const real_t* const yOpt = 0,	/**< Initial guess for dual solution vector. */
+				 			real_t* const cputime = 0		/**< Output: CPU time required to initialise QP. */
+							);
+
+
+		/** Solves an initialised QProblemB using online active set strategy.
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_MAX_NWSR_REACHED \n
+					RET_HOTSTART_FAILED_AS_QP_NOT_INITIALISED \n
+					RET_HOTSTART_FAILED \n
+					RET_SHIFT_DETERMINATION_FAILED \n
+					RET_STEPDIRECTION_DETERMINATION_FAILED \n
+					RET_STEPLENGTH_DETERMINATION_FAILED \n
+					RET_HOMOTOPY_STEP_FAILED \n
+					RET_HOTSTART_STOPPED_INFEASIBILITY \n
+					RET_HOTSTART_STOPPED_UNBOUNDEDNESS \n
+					RET_INACCURATE_SOLUTION \n
+		 			RET_NO_SOLUTION */
+		returnValue hotstart(	const real_t* const g_new,	/**< Gradient of neighbouring QP to be solved. */
+								const real_t* const lb_new,	/**< Lower bounds of neighbouring QP to be solved. \n
+													 			 If no lower bounds exist, a NULL pointer can be passed. */
+								const real_t* const ub_new,	/**< Upper bounds of neighbouring QP to be solved. \n
+													 			 If no upper bounds exist, a NULL pointer can be passed. */
+								int& nWSR,					/**< Input: Maximum number of working set recalculations; \n
+																 Output: Number of performed working set recalculations. */
+								real_t* const cputime		/**< Output: CPU time required to solve QP (or to perform nWSR iterations). */
+								);
+
+
+		/** Returns Hessian matrix of the QP (deep copy).
+		  *	\return SUCCESSFUL_RETURN */
+		inline returnValue getH(	real_t* const _H	/**< Array of appropriate dimension for copying Hessian matrix.*/
+									) const;
+
+		/** Returns gradient vector of the QP (deep copy).
+		  *	\return SUCCESSFUL_RETURN */
+		inline returnValue getG(	real_t* const _g	/**< Array of appropriate dimension for copying gradient vector.*/
+									) const;
+
+		/** Returns lower bound vector of the QP (deep copy).
+		  *	\return SUCCESSFUL_RETURN */
+		inline returnValue getLB(	real_t* const _lb	/**< Array of appropriate dimension for copying lower bound vector.*/
+									) const;
+
+		/** Returns single entry of lower bound vector of the QP.
+		  *	\return SUCCESSFUL_RETURN \n
+					RET_INDEX_OUT_OF_BOUNDS */
+		inline returnValue getLB(	int number,		/**< Number of entry to be returned. */
+									real_t& value	/**< Output: lb[number].*/
+									) const;
+
+		/** Returns upper bound vector of the QP (deep copy).
+		  *	\return SUCCESSFUL_RETURN */
+		inline returnValue getUB(	real_t* const _ub	/**< Array of appropriate dimension for copying upper bound vector.*/
+									) const;
+
+		/** Returns single entry of upper bound vector of the QP.
+		  *	\return SUCCESSFUL_RETURN \n
+					RET_INDEX_OUT_OF_BOUNDS */
+		inline returnValue getUB(	int number,		/**< Number of entry to be returned. */
+									real_t& value	/**< Output: ub[number].*/
+									) const;
+
+
+		/** Returns current bounds object of the QP (deep copy).
+		  *	\return SUCCESSFUL_RETURN */
+		inline returnValue getBounds(	Bounds* const _bounds	/** Output: Bounds object. */
+										) const;
+
+
+		/** Returns the number of variables.
+		 *	\return Number of variables. */
+		inline int getNV( ) const;
+
+		/** Returns the number of free variables.
+		 *	\return Number of free variables. */
+		inline int getNFR( );
+
+		/** Returns the number of fixed variables.
+		 *	\return Number of fixed variables. */
+		inline int getNFX( );
+
+		/** Returns the number of implicitly fixed variables.
+		 *	\return Number of implicitly fixed variables. */
+		inline int getNFV( ) const;
+
+		/** Returns the dimension of null space.
+		 *	\return Dimension of null space. */
+		int getNZ( );
+
+
+		/** Returns the optimal objective function value.
+		 *	\return finite value: Optimal objective function value (QP was solved) \n
+		 			+infinity:	  QP was not yet solved */
+		real_t getObjVal( ) const;
+
+		/** Returns the objective function value at an arbitrary point x.
+		 *	\return Objective function value at point x */
+		real_t getObjVal(	const real_t* const _x	/**< Point at which the objective function shall be evaluated. */
+							) const;
+
+		/** Returns the primal solution vector.
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_QP_NOT_SOLVED */
+		returnValue getPrimalSolution(	real_t* const xOpt			/**< Output: Primal solution vector (if QP has been solved). */
+										) const;
+
+		/** Returns the dual solution vector.
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_QP_NOT_SOLVED */
+		returnValue getDualSolution(	real_t* const yOpt	/**< Output: Dual solution vector (if QP has been solved). */
+										) const;
+
+
+		/** Returns status of the solution process.
+		 *	\return Status of solution process. */
+		inline QProblemStatus getStatus( ) const;
+
+
+		/** Returns if the QProblem object is initialised.
+		 *	\return BT_TRUE:  QProblemB initialised \n
+		 			BT_FALSE: QProblemB not initialised */
+		inline BooleanType isInitialised( ) const;
+
+		/** Returns if the QP has been solved.
+		 *	\return BT_TRUE:  QProblemB solved \n
+		 			BT_FALSE: QProblemB not solved */
+		inline BooleanType isSolved( ) const;
+
+		/** Returns if the QP is infeasible.
+		 *	\return BT_TRUE:  QP infeasible \n
+		 			BT_FALSE: QP feasible (or not known to be infeasible!) */
+		inline BooleanType isInfeasible( ) const;
+
+		/** Returns if the QP is unbounded.
+		 *	\return BT_TRUE:  QP unbounded \n
+		 			BT_FALSE: QP unbounded (or not known to be unbounded!) */
+		inline BooleanType isUnbounded( ) const;
+
+
+		/** Returns the print level.
+		 *	\return Print level. */
+		inline PrintLevel getPrintLevel( ) const;
+
+		/** Changes the print level.
+ 		 *	\return SUCCESSFUL_RETURN */
+		returnValue setPrintLevel(	PrintLevel _printlevel	/**< New print level. */
+									);
+
+
+		/** Returns Hessian type flag (type is not determined due to this call!).
+		 *	\return Hessian type. */
+		inline HessianType getHessianType( ) const;
+
+		/** Changes the print level.
+ 		 *	\return SUCCESSFUL_RETURN */
+		inline returnValue setHessianType(	HessianType _hessianType /**< New Hessian type. */
+											);
+
+
+	/*
+	 *	PROTECTED MEMBER FUNCTIONS
+	 */
+	protected:
+		/** Checks if Hessian happens to be the identity matrix,
+		 *  and sets corresponding status flag (otherwise the flag remains unaltered!).
+		 *	\return SUCCESSFUL_RETURN */
+		returnValue checkForIdentityHessian( );
+
+		/** Determines type of constraints and bounds (i.e. implicitly fixed, unbounded etc.).
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_SETUPSUBJECTTOTYPE_FAILED */
+		returnValue setupSubjectToType( );
+
+		/** Computes the Cholesky decomposition R of the (simply projected) Hessian (i.e. R^T*R = Z^T*H*Z).
+		 *  It only works in the case where Z is a simple projection matrix!
+		 *	\return SUCCESSFUL_RETURN \n
+		 *			RET_INDEXLIST_CORRUPTED */
+		returnValue setupCholeskyDecomposition( );
+
+
+		/** Solves a QProblemB whose QP data is assumed to be stored in the member variables.
+		 *  A guess for its primal/dual optimal solution vectors and the corresponding
+		 *  optimal working set can be provided.
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_INIT_FAILED \n
+					RET_INIT_FAILED_CHOLESKY \n
+					RET_INIT_FAILED_HOTSTART \n
+					RET_INIT_FAILED_INFEASIBILITY \n
+					RET_INIT_FAILED_UNBOUNDEDNESS \n
+					RET_MAX_NWSR_REACHED */
+		returnValue solveInitialQP(	const real_t* const xOpt,			/**< Optimal primal solution vector.
+																		 *	 A NULL pointer can be passed. */
+									const real_t* const yOpt,			/**< Optimal dual solution vector.
+																		 *	 A NULL pointer can be passed. */
+									const Bounds* const guessedBounds,	/**< Guessed working set for solution (xOpt,yOpt).
+																		 *	 A NULL pointer can be passed. */
+									int& nWSR, 							/**< Input: Maximum number of working set recalculations; \n
+																 		 *	 Output: Number of performed working set recalculations. */
+									real_t* const cputime				/**< Output: CPU time required to solve QP (or to perform nWSR iterations). */
+									);
+
+
+		/** Obtains the desired working set for the auxiliary initial QP in
+		 *  accordance with the user specifications
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_OBTAINING_WORKINGSET_FAILED \n
+					RET_INVALID_ARGUMENTS */
+		returnValue obtainAuxiliaryWorkingSet(	const real_t* const xOpt,			/**< Optimal primal solution vector.
+																					 *	 If a NULL pointer is passed, all entries are assumed to be zero. */
+												const real_t* const yOpt,			/**< Optimal dual solution vector.
+																					 *	 If a NULL pointer is passed, all entries are assumed to be zero. */
+												const Bounds* const guessedBounds,	/**< Guessed working set for solution (xOpt,yOpt). */
+												Bounds* auxiliaryBounds				/**< Input: Allocated bound object. \n
+																					 *	 Ouput: Working set for auxiliary QP. */
+												) const;
+
+		/** Setups bound data structure according to auxiliaryBounds.
+		 *  (If the working set shall be setup afresh, make sure that
+		 *  bounds data structure has been resetted!)
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_SETUP_WORKINGSET_FAILED \n
+					RET_INVALID_ARGUMENTS \n
+					RET_UNKNOWN BUG */
+		returnValue setupAuxiliaryWorkingSet(	const Bounds* const auxiliaryBounds,	/**< Working set for auxiliary QP. */
+												BooleanType setupAfresh					/**< Flag indicating if given working set shall be
+																						 *    setup afresh or by updating the current one. */
+												);
+
+		/** Setups the optimal primal/dual solution of the auxiliary initial QP.
+		 *	\return SUCCESSFUL_RETURN */
+		returnValue setupAuxiliaryQPsolution(	const real_t* const xOpt,			/**< Optimal primal solution vector.
+																				 	*	 If a NULL pointer is passed, all entries are set to zero. */
+												const real_t* const yOpt			/**< Optimal dual solution vector.
+																					 *	 If a NULL pointer is passed, all entries are set to zero. */
+												);
+
+		/** Setups gradient of the auxiliary initial QP for given
+		 *  optimal primal/dual solution and given initial working set
+		 *  (assumes that members X, Y and BOUNDS have already been initialised!).
+		 *	\return SUCCESSFUL_RETURN */
+		returnValue setupAuxiliaryQPgradient( );
+
+		/** Setups bounds of the auxiliary initial QP for given
+		 *  optimal primal/dual solution and given initial working set
+		 *  (assumes that members X, Y and BOUNDS have already been initialised!).
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_UNKNOWN BUG */
+		returnValue setupAuxiliaryQPbounds( BooleanType useRelaxation	/**< Flag indicating if inactive bounds shall be relaxed. */
+											);
+
+
+		/** Adds a bound to active set (specialised version for the case where no constraints exist).
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_ADDBOUND_FAILED */
+		returnValue addBound(	int number,					/**< Number of bound to be added to active set. */
+								SubjectToStatus B_status,	/**< Status of new active bound. */
+								BooleanType updateCholesky	/**< Flag indicating if Cholesky decomposition shall be updated. */
+								);
+
+		/** Removes a bounds from active set (specialised version for the case where no constraints exist).
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_HESSIAN_NOT_SPD \n
+					RET_REMOVEBOUND_FAILED */
+		returnValue removeBound(	int number,					/**< Number of bound to be removed from active set. */
+									BooleanType updateCholesky	/**< Flag indicating if Cholesky decomposition shall be updated. */
+									);
+
+
+		/** Solves the system Ra = b or R^Ta = b where R is an upper triangular matrix.
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_DIV_BY_ZERO */
+		returnValue backsolveR(	const real_t* const b,	/**< Right hand side vector. */
+								BooleanType transposed,	/**< Indicates if the transposed system shall be solved. */
+								real_t* const a 		/**< Output: Solution vector */
+								);
+
+		/** Solves the system Ra = b or R^Ta = b where R is an upper triangular matrix. \n
+		 *  Special variant for the case that this function is called from within "removeBound()".
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_DIV_BY_ZERO */
+		returnValue backsolveR(	const real_t* const b,		/**< Right hand side vector. */
+								BooleanType transposed,		/**< Indicates if the transposed system shall be solved. */
+								BooleanType removingBound,	/**< Indicates if function is called from "removeBound()". */
+								real_t* const a 			/**< Output: Solution vector */
+								);
+
+
+		/** Determines step direction of the shift of the QP data.
+		 *	\return SUCCESSFUL_RETURN */
+		returnValue hotstart_determineDataShift(const int* const FX_idx, 	/**< Index array of fixed variables. */
+												const real_t* const g_new,	/**< New gradient vector. */
+												const real_t* const lb_new,	/**< New lower bounds. */
+												const real_t* const ub_new,	/**< New upper bounds. */
+												real_t* const delta_g,	 	/**< Output: Step direction of gradient vector. */
+												real_t* const delta_lb,	 	/**< Output: Step direction of lower bounds. */
+												real_t* const delta_ub,	 	/**< Output: Step direction of upper bounds. */
+												BooleanType& Delta_bB_isZero/**< Output: Indicates if active bounds are to be shifted. */
+												);
+
+
+		/** Checks if lower/upper bounds remain consistent
+		 *  (i.e. if lb <= ub) during the current step.
+		 *	\return BT_TRUE iff bounds remain consistent
+		 */
+		BooleanType areBoundsConsistent(	const real_t* const delta_lb,		/**< Step direction of lower bounds. */
+											const real_t* const delta_ub		/**< Step direction of upper bounds. */
+											) const;
+
+
+		/** Setups internal QP data.
+		 *	\return SUCCESSFUL_RETURN \n
+					RET_INVALID_ARGUMENTS */
+		returnValue setupQPdata(	const real_t* const _H, 	/**< Hessian matrix. */
+									const real_t* const _R, 	/**< Cholesky factorization of the Hessian matrix. */
+									const real_t* const _g,		/**< Gradient vector. */
+									const real_t* const _lb,	/**< Lower bounds (on variables). \n
+																	 If no lower bounds exist, a NULL pointer can be passed. */
+									const real_t* const _ub		/**< Upper bounds (on variables). \n
+																	 If no upper bounds exist, a NULL pointer can be passed. */
+									);
+
+
+		/** Sets Hessian matrix of the QP.
+		 *	\return SUCCESSFUL_RETURN */
+		inline returnValue setH(	const real_t* const H_new	/**< New Hessian matrix (with correct dimension!). */
+									);
+
+		/** Changes gradient vector of the QP.
+		 *	\return SUCCESSFUL_RETURN */
+		inline returnValue setG(	const real_t* const g_new	/**< New gradient vector (with correct dimension!). */
+									);
+
+		/** Changes lower bound vector of the QP.
+		 *	\return SUCCESSFUL_RETURN */
+		inline returnValue setLB(	const real_t* const lb_new	/**< New lower bound vector (with correct dimension!). */
+									);
+
+		/** Changes single entry of lower bound vector of the QP.
+		 *	\return SUCCESSFUL_RETURN  \n
+					RET_INDEX_OUT_OF_BOUNDS */
+		inline returnValue setLB(	int number,		/**< Number of entry to be changed. */
+									real_t value	/**< New value for entry of lower bound vector. */
+									);
+
+		/** Changes upper bound vector of the QP.
+		 *	\return SUCCESSFUL_RETURN */
+		inline returnValue setUB(	const real_t* const ub_new	/**< New upper bound vector (with correct dimension!). */
+									);
+
+		/** Changes single entry of upper bound vector of the QP.
+		 *	\return SUCCESSFUL_RETURN  \n
+					RET_INDEX_OUT_OF_BOUNDS */
+		inline returnValue setUB(	int number,		/**< Number of entry to be changed. */
+									real_t value	/**< New value for entry of upper bound vector. */
+									);
+
+
+		/** Computes parameters for the Givens matrix G for which [x,y]*G = [z,0]
+		 *	\return SUCCESSFUL_RETURN */
+		inline void computeGivens(	real_t xold,	/**< Matrix entry to be normalised. */
+									real_t yold,	/**< Matrix entry to be annihilated. */
+									real_t& xnew,	/**< Output: Normalised matrix entry. */
+									real_t& ynew,	/**< Output: Annihilated matrix entry. */
+									real_t& c,		/**< Output: Cosine entry of Givens matrix. */
+									real_t& s 		/**< Output: Sine entry of Givens matrix. */
+									) const;
+
+		/** Applies Givens matrix determined by c and s (cf. computeGivens).
+		 *	\return SUCCESSFUL_RETURN */
+		inline void applyGivens(	real_t c,		/**< Cosine entry of Givens matrix. */
+									real_t s,		/**< Sine entry of Givens matrix. */
+									real_t xold,	/**< Matrix entry to be transformed corresponding to
+													 *	 the normalised entry of the original matrix. */
+									real_t yold, 	/**< Matrix entry to be transformed corresponding to
+													 *	 the annihilated entry of the original matrix. */
+									real_t& xnew,	/**< Output: Transformed matrix entry corresponding to
+													 *	 the normalised entry of the original matrix. */
+									real_t& ynew	/**< Output: Transformed matrix entry corresponding to
+													 *	 the annihilated entry of the original matrix. */
+									) const;
+
+
+	/*
+	 *	PRIVATE MEMBER FUNCTIONS
+	 */
+	private:
+		/** Determines step direction of the homotopy path.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_STEPDIRECTION_FAILED_CHOLESKY */
+		returnValue hotstart_determineStepDirection(const int* const FR_idx, 		/**< Index array of free variables. */
+													const int* const FX_idx, 		/**< Index array of fixed variables. */
+													const real_t* const delta_g,	/**< Step direction of gradient vector. */
+													const real_t* const delta_lb,	/**< Step direction of lower bounds. */
+													const real_t* const delta_ub,	/**< Step direction of upper bounds. */
+													BooleanType Delta_bB_isZero,	/**< Indicates if active bounds are to be shifted. */
+													real_t* const delta_xFX, 		/**< Output: Primal homotopy step direction of fixed variables. */
+													real_t* const delta_xFR,	 	/**< Output: Primal homotopy step direction of free variables. */
+													real_t* const delta_yFX 		/**< Output: Dual homotopy step direction of fixed variables' multiplier. */
+													);
+
+		/** Determines the maximum possible step length along the homotopy path.
+		 *	\return SUCCESSFUL_RETURN */
+		returnValue hotstart_determineStepLength(	const int* const FR_idx, 		/**< Index array of free variables. */
+													const int* const FX_idx, 		/**< Index array of fixed variables. */
+													const real_t* const delta_lb,	/**< Step direction of lower bounds. */
+													const real_t* const delta_ub,	/**< Step direction of upper bounds. */
+													const real_t* const delta_xFR,	/**< Primal homotopy step direction of free variables. */
+													const real_t* const delta_yFX,	/**< Dual homotopy step direction of fixed variables' multiplier. */
+													int& BC_idx, 					/**< Output: Index of blocking constraint. */
+													SubjectToStatus& BC_status		/**< Output: Status of blocking constraint. */
+													);
+
+		/** Performs a step along the homotopy path (and updates active set).
+		 *	\return  SUCCESSFUL_RETURN \n
+		 			 RET_OPTIMAL_SOLUTION_FOUND \n
+		 			 RET_REMOVE_FROM_ACTIVESET_FAILED \n
+					 RET_ADD_TO_ACTIVESET_FAILED \n
+					 RET_QP_INFEASIBLE */
+		returnValue hotstart_performStep(	const int* const FR_idx, 			/**< Index array of free variables. */
+											const int* const FX_idx, 			/**< Index array of fixed variables. */
+											const real_t* const delta_g,	 	/**< Step direction of gradient vector. */
+											const real_t* const delta_lb,	 	/**< Step direction of lower bounds. */
+											const real_t* const delta_ub,	 	/**< Step direction of upper bounds. */
+											const real_t* const delta_xFX, 		/**< Primal homotopy step direction of fixed variables. */
+											const real_t* const delta_xFR,	 	/**< Primal homotopy step direction of free variables. */
+											const real_t* const delta_yFX, 		/**< Dual homotopy step direction of fixed variables' multiplier. */
+											int BC_idx, 						/**< Index of blocking constraint. */
+											SubjectToStatus BC_status 			/**< Status of blocking constraint. */
+											);
+
+
+		#ifdef PC_DEBUG  /* Define print functions only for debugging! */
+
+		/** Prints concise information on the current iteration.
+		 *	\return  SUCCESSFUL_RETURN \n */
+		returnValue printIteration(	int iteration,				/**< Number of current iteration. */
+									int BC_idx, 				/**< Index of blocking bound. */
+									SubjectToStatus BC_status	/**< Status of blocking bound. */
+									);
+
+		#endif  /* PC_DEBUG */
+
+
+		/** Determines the maximum violation of the KKT optimality conditions
+		 *  of the current iterate within the QProblemB object.
+		 *	\return SUCCESSFUL_RETURN \n
+		 * 			RET_INACCURATE_SOLUTION \n
+		 * 			RET_NO_SOLUTION */
+		returnValue checkKKTconditions( );
+
+
+	/*
+	 *	PROTECTED MEMBER VARIABLES
+	 */
+	protected:
+		real_t H[NVMAX*NVMAX];		/**< Hessian matrix. */
+		BooleanType hasHessian;		/**< Flag indicating whether H contains Hessian or corresponding Cholesky factor R; \sa init. */
+
+		real_t g[NVMAX];			/**< Gradient. */
+		real_t lb[NVMAX];			/**< Lower bound vector (on variables). */
+		real_t ub[NVMAX];			/**< Upper bound vector (on variables). */
+
+		Bounds bounds;				/**< Data structure for problem's bounds. */
+
+		real_t R[NVMAX*NVMAX];		/**< Cholesky decomposition of H (i.e. H = R^T*R). */
+		BooleanType hasCholesky;	/**< Flag indicating whether Cholesky decomposition has already been setup. */
+
+		real_t x[NVMAX];			/**< Primal solution vector. */
+		real_t y[NVMAX+NCMAX];		/**< Dual solution vector. */
+
+		real_t tau;					/**< Last homotopy step length. */
+
+		QProblemStatus status;		/**< Current status of the solution process. */
+
+		BooleanType infeasible;		/**< QP infeasible? */
+		BooleanType unbounded;		/**< QP unbounded? */
+
+		HessianType hessianType;	/**< Type of Hessian matrix. */
+
+		PrintLevel printlevel;		/**< Print level. */
+
+		int count;					/**< Counts the number of hotstart function calls (internal usage only!). */
+};
+
+
+#include <QProblemB.ipp>
+
+#endif	/* QPOASES_QPROBLEMB_HPP */
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/SubjectTo.hpp b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/SubjectTo.hpp
new file mode 100644
index 0000000..e07bf04
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/SubjectTo.hpp
@@ -0,0 +1,178 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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/SubjectTo.hpp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Declaration of the SubjectTo class designed to manage working sets of
+ *	constraints and bounds within a QProblem.
+ */
+
+
+#ifndef QPOASES_SUBJECTTO_HPP
+#define QPOASES_SUBJECTTO_HPP
+
+
+#include <Indexlist.hpp>
+
+
+
+/** This class manages working sets of constraints and bounds by storing
+ *	index sets and other status information.
+ *
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ */
+class SubjectTo
+{
+	/*
+	 *	PUBLIC MEMBER FUNCTIONS
+	 */
+	public:
+		/** Default constructor. */
+		SubjectTo( );
+
+		/** Copy constructor (deep copy). */
+		SubjectTo(	const SubjectTo& rhs	/**< Rhs object. */
+					);
+
+		/** Destructor. */
+		~SubjectTo( );
+
+		/** Assignment operator (deep copy). */
+		SubjectTo& operator=(	const SubjectTo& rhs	/**< Rhs object. */
+								);
+
+
+		/** Pseudo-constructor takes the number of constraints or bounds.
+		 *	\return SUCCESSFUL_RETURN */
+		returnValue init(	int n 	/**< Number of constraints or bounds. */
+							);
+
+
+		/** Returns type of (constraints') bound.
+		 *	\return Type of (constraints') bound \n
+		 			RET_INDEX_OUT_OF_BOUNDS */
+		inline SubjectToType getType(	int i		/**< Number of (constraints') bound. */
+										) const ;
+
+		/** Returns status of (constraints') bound.
+		 *	\return Status of (constraints') bound \n
+		 			ST_UNDEFINED */
+		inline SubjectToStatus getStatus(	int i		/**< Number of (constraints') bound. */
+											) const;
+
+
+		/** Sets type of (constraints') bound.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_INDEX_OUT_OF_BOUNDS */
+		inline returnValue setType(	int i,				/**< Number of (constraints') bound. */
+									SubjectToType value	/**< Type of (constraints') bound. */
+									);
+
+		/** Sets status of (constraints') bound.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_INDEX_OUT_OF_BOUNDS */
+		inline returnValue setStatus(	int i,					/**< Number of (constraints') bound. */
+										SubjectToStatus value	/**< Status of (constraints') bound. */
+										);
+
+
+		/** Sets status of lower (constraints') bounds. */
+		inline void setNoLower(	BooleanType _status		/**< Status of lower (constraints') bounds. */
+								);
+
+		/** Sets status of upper (constraints') bounds. */
+		inline void setNoUpper(	BooleanType _status		/**< Status of upper (constraints') bounds. */
+								);
+
+
+		/** Returns status of lower (constraints') bounds.
+		 *	\return BT_TRUE if there is no lower (constraints') bound on any variable. */
+		inline BooleanType isNoLower( ) const;
+
+		/** Returns status of upper bounds.
+		 *	\return BT_TRUE if there is no upper (constraints') bound on any variable. */
+		inline BooleanType isNoUpper( ) const;
+
+
+	/*
+	 *	PROTECTED MEMBER FUNCTIONS
+	 */
+	protected:
+		/** Adds the index of a new constraint or bound to index set.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_ADDINDEX_FAILED */
+		returnValue addIndex(	Indexlist* const indexlist,	/**< Index list to which the new index shall be added. */
+								int newnumber,				/**< Number of new constraint or bound. */
+								SubjectToStatus newstatus	/**< Status of new constraint or bound. */
+								);
+
+		/** Removes the index of a constraint or bound from index set.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_UNKNOWN_BUG */
+		returnValue removeIndex(	Indexlist* const indexlist,	/**< Index list from which the new index shall be removed. */
+									int removenumber			/**< Number of constraint or bound to be removed. */
+									);
+
+		/** Swaps the indices of two constraints or bounds within the index set.
+		 *	\return SUCCESSFUL_RETURN \n
+		 			RET_SWAPINDEX_FAILED */
+		returnValue swapIndex(	Indexlist* const indexlist,	/**< Index list in which the indices shold be swapped. */
+								int number1,				/**< Number of first constraint or bound. */
+								int number2					/**< Number of second constraint or bound. */
+								);
+
+
+	/*
+	 *	PROTECTED MEMBER VARIABLES
+	 */
+	protected:
+		SubjectToType type[NVMAX+NCMAX]; 		/**< Type of constraints/bounds. */
+		SubjectToStatus status[NVMAX+NCMAX];	/**< Status of constraints/bounds. */
+
+		BooleanType noLower;				 	/**< This flag indicates if there is no lower bound on any variable. */
+		BooleanType noUpper;	 				/**< This flag indicates if there is no upper bound on any variable. */
+
+
+	/*
+	 *	PRIVATE MEMBER VARIABLES
+	 */
+	private:
+		int size;
+};
+
+
+
+#include <SubjectTo.ipp>
+
+#endif	/* QPOASES_SUBJECTTO_HPP */
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/Types.hpp b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/Types.hpp
new file mode 100644
index 0000000..5b873ad
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/Types.hpp
@@ -0,0 +1,131 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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/Types.hpp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2008
+ *
+ *	Declaration of all non-built-in types (except for classes).
+ */
+
+
+#ifndef QPOASES_TYPES_HPP
+#define QPOASES_TYPES_HPP
+
+
+
+/** Define real_t for facilitating switching between double and float. */
+// typedef double real_t;
+
+
+/** Summarises all possible logical values. */
+enum BooleanType
+{
+	BT_FALSE,					/**< Logical value for "false". */
+	BT_TRUE						/**< Logical value for "true". */
+};
+
+
+/** Summarises all possible print levels. Print levels are used to describe
+ *	the desired amount of output during runtime of qpOASES. */
+enum PrintLevel
+{
+	PL_NONE,					/**< No output. */
+	PL_LOW,						/**< Print error messages only. */
+	PL_MEDIUM,					/**< Print error and warning messages as well as concise info messages. */
+	PL_HIGH						/**< Print all messages with full details. */
+};
+
+
+/** Defines visibility status of a message. */
+enum VisibilityStatus
+{
+	VS_VISIBLE,					/**< Message visible. */
+	VS_HIDDEN					/**< Message not visible. */
+};
+
+
+/** Summarises all possible states of the (S)QProblem(B) object during the
+solution process of a QP sequence. */
+enum QProblemStatus
+{
+	QPS_NOTINITIALISED,			/**< QProblem object is freshly instantiated or reset. */
+	QPS_PREPARINGAUXILIARYQP,	/**< An auxiliary problem is currently setup, either at the very beginning
+								 *   via an initial homotopy or after changing the QP matrices. */
+	QPS_AUXILIARYQPSOLVED,		/**< An auxilary problem was solved, either at the very beginning
+								 *   via an initial homotopy or after changing the QP matrices. */
+	QPS_PERFORMINGHOMOTOPY,		/**< A homotopy according to the main idea of the online active
+								 *   set strategy is performed. */
+	QPS_HOMOTOPYQPSOLVED,		/**< An intermediate QP along the homotopy path was solved. */
+	QPS_SOLVED					/**< The solution of the actual QP was found. */
+};
+
+
+/** Summarises all possible types of bounds and constraints. */
+enum SubjectToType
+{
+	ST_UNBOUNDED,				/**< Bound/constraint is unbounded. */
+	ST_BOUNDED,					/**< Bound/constraint is bounded but not fixed. */
+	ST_EQUALITY,				/**< Bound/constraint is fixed (implicit equality bound/constraint). */
+	ST_UNKNOWN					/**< Type of bound/constraint unknown. */
+};
+
+
+/** Summarises all possible states of bounds and constraints. */
+enum SubjectToStatus
+{
+	ST_INACTIVE,				/**< Bound/constraint is inactive. */
+	ST_LOWER,					/**< Bound/constraint is at its lower bound. */
+	ST_UPPER,					/**< Bound/constraint is at its upper bound. */
+	ST_UNDEFINED				/**< Status of bound/constraint undefined. */
+};
+
+
+/** Summarises all possible cycling states of bounds and constraints. */
+enum CyclingStatus
+{
+	CYC_NOT_INVOLVED,			/**< Bound/constraint is not involved in current cycling. */
+	CYC_PREV_ADDED,				/**< Bound/constraint has previously been added during the current cycling. */
+	CYC_PREV_REMOVED			/**< Bound/constraint has previously been removed during the current cycling. */
+};
+
+
+/** Summarises all possible types of the QP's Hessian matrix. */
+enum HessianType
+{
+	HST_SEMIDEF,				/**< Hessian is positive semi-definite. */
+	HST_POSDEF_NULLSPACE,		/**< Hessian is positive definite on null space of active bounds/constraints. */
+	HST_POSDEF,					/**< Hessian is (strictly) positive definite. */
+	HST_IDENTITY				/**< Hessian is identity matrix. */
+};
+
+
+
+#endif	/* QPOASES_TYPES_HPP */
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/Utils.hpp b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/Utils.hpp
new file mode 100644
index 0000000..a91ee78
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/INCLUDE/Utils.hpp
@@ -0,0 +1,197 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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/Utils.hpp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Declaration of global utility functions for working with qpOASES.
+ */
+
+
+#ifndef QPOASES_UTILS_HPP
+#define QPOASES_UTILS_HPP
+
+
+#include <MessageHandling.hpp>
+
+
+#ifdef PC_DEBUG  /* Define print functions only for debugging! */
+
+/** Prints a vector.
+ * \return SUCCESSFUL_RETURN */
+returnValue print(	const real_t* const v,	/**< Vector to be printed. */
+					int n					/**< Length of vector. */
+					);
+
+/** Prints a permuted vector.
+ * \return SUCCESSFUL_RETURN */
+returnValue print(	const real_t* const v,		/**< Vector to be printed. */
+					int n,						/**< Length of vector. */
+					const int* const V_idx		/**< Pemutation vector. */
+					);
+
+/** Prints a named vector.
+ * \return SUCCESSFUL_RETURN */
+returnValue print(	const real_t* const v,	/**< Vector to be printed. */
+					int n,					/**< Length of vector. */
+					const char* name		/** Name of vector. */
+					);
+
+/** Prints a matrix.
+ * \return SUCCESSFUL_RETURN */
+returnValue print(	const real_t* const M,	/**< Matrix to be printed. */
+					int nrow,				/**< Row number of matrix. */
+					int ncol				/**< Column number of matrix. */
+					);
+
+/** Prints a permuted matrix.
+ * \return SUCCESSFUL_RETURN */
+returnValue print(	const real_t* const M,		/**< Matrix to be printed. */
+					int nrow,					/**< Row number of matrix. */
+					int ncol	,				/**< Column number of matrix. */
+					const int* const ROW_idx,	/**< Row pemutation vector. */
+					const int* const COL_idx	/**< Column pemutation vector. */
+					);
+
+/** Prints a named matrix.
+ * \return SUCCESSFUL_RETURN */
+returnValue print(	const real_t* const M,	/**< Matrix to be printed. */
+					int nrow,				/**< Row number of matrix. */
+					int ncol,				/**< Column number of matrix. */
+					const char* name		/** Name of matrix. */
+					);
+
+/** Prints an index array.
+ * \return SUCCESSFUL_RETURN */
+returnValue print(	const int* const index,	/**< Index array to be printed. */
+					int n					/**< Length of index array. */
+					);
+
+/** Prints a named index array.
+ * \return SUCCESSFUL_RETURN */
+returnValue print(	const int* const index,	/**< Index array to be printed. */
+					int n,					/**< Length of index array. */
+					const char* name		/**< Name of index array. */
+					);
+
+
+/** Prints a string to desired output target (useful also for MATLAB output!).
+ * \return SUCCESSFUL_RETURN */
+returnValue myPrintf(	const char* s	/**< String to be written. */
+						);
+
+
+/** Prints qpOASES copyright notice.
+ * \return SUCCESSFUL_RETURN */
+returnValue printCopyrightNotice( );
+
+
+/** Reads a real_t matrix from file.
+ * \return SUCCESSFUL_RETURN \n
+ 		   RET_UNABLE_TO_OPEN_FILE \n
+		   RET_UNABLE_TO_READ_FILE */
+returnValue readFromFile(	real_t* data,				/**< Matrix to be read from file. */
+							int nrow,					/**< Row number of matrix. */
+							int ncol,					/**< Column number of matrix. */
+							const char* datafilename	/**< Data file name. */
+							);
+
+/** Reads a real_t vector from file.
+ * \return SUCCESSFUL_RETURN \n
+ 		   RET_UNABLE_TO_OPEN_FILE \n
+		   RET_UNABLE_TO_READ_FILE */
+returnValue readFromFile(	real_t* data,				/**< Vector to be read from file. */
+							int n,						/**< Length of vector. */
+							const char* datafilename	/**< Data file name. */
+							);
+
+/** Reads an integer (column) vector from file.
+ * \return SUCCESSFUL_RETURN \n
+ 		   RET_UNABLE_TO_OPEN_FILE \n
+		   RET_UNABLE_TO_READ_FILE */
+returnValue readFromFile(	int* data,					/**< Vector to be read from file. */
+							int n,						/**< Length of vector. */
+							const char* datafilename	/**< Data file name. */
+							);
+
+
+/** Writes a real_t matrix into a file.
+ * \return SUCCESSFUL_RETURN \n
+ 		   RET_UNABLE_TO_OPEN_FILE  */
+returnValue writeIntoFile(	const real_t* const data,	/**< Matrix to be written into file. */
+							int nrow,					/**< Row number of matrix. */
+							int ncol,					/**< Column number of matrix. */
+							const char* datafilename,	/**< Data file name. */
+							BooleanType append			/**< Indicates if data shall be appended if the file already exists (otherwise it is overwritten). */
+							);
+
+/** Writes a real_t vector into a file.
+ * \return SUCCESSFUL_RETURN \n
+ 		   RET_UNABLE_TO_OPEN_FILE  */
+returnValue writeIntoFile(	const real_t* const data,	/**< Vector to be written into file. */
+							int n,						/**< Length of vector. */
+							const char* datafilename,	/**< Data file name. */
+							BooleanType append			/**< Indicates if data shall be appended if the file already exists (otherwise it is overwritten). */
+							);
+
+/** Writes an integer (column) vector into a file.
+ * \return SUCCESSFUL_RETURN \n
+ 		   RET_UNABLE_TO_OPEN_FILE */
+returnValue writeIntoFile(	const int* const integer,	/**< Integer vector to be written into file. */
+							int n,						/**< Length of vector. */
+							const char* datafilename,	/**< Data file name. */
+							BooleanType append			/**< Indicates if integer shall be appended if the file already exists (otherwise it is overwritten). */
+							);
+
+#endif  /* PC_DEBUG */
+
+
+/** Returns the current system time.
+ * \return current system time */
+real_t getCPUtime( );
+
+
+/** Returns the Euclidean norm of a vector.
+ * \return 0: successful */
+real_t getNorm(	const real_t* const v,	/**< Vector. */
+				int n					/**< Vector's dimension. */
+				);
+
+/** Returns the absolute value of a real_t.
+ * \return Absolute value of a real_t */
+inline real_t getAbs(	real_t x		/**< Input argument. */
+						);
+
+
+
+#include <Utils.ipp>
+
+#endif	/* QPOASES_UTILS_HPP */
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/LICENSE.txt b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/LICENSE.txt
new file mode 100644
index 0000000..5ab7695
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/LICENSE.txt
@@ -0,0 +1,504 @@
+		  GNU LESSER GENERAL PUBLIC LICENSE
+		       Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+		  GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+  
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+			    NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+           How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library 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.
+
+    This library 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 this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
+
+
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/README.txt b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/README.txt
new file mode 100644
index 0000000..53fc2ab
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/README.txt
@@ -0,0 +1,92 @@
+##
+##	qpOASES -- An Implementation of the Online Active Set Strategy.
+##	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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
+##
+
+
+
+INTRODUCTION
+=============
+
+qpOASES is an open-source C++ implementation of the recently proposed 
+online active set strategy (see [1], [2]), which was inspired by important 
+observations from the field of parametric quadratic programming. It has 
+several theoretical features that make it particularly suited for model 
+predictive control (MPC) applications.
+
+The software package qpOASES implements these ideas and has already been 
+successfully used for closed-loop control of a real-world Diesel engine [3].
+
+
+References:
+
+[1] H.J. Ferreau. An Online Active Set Strategy for Fast Solution of 
+Parametric Quadratic Programs with Applications to Predictive Engine Control. 
+Diplom thesis, University of Heidelberg, 2006.
+
+[2] H.J. Ferreau, H.G. Bock, M. Diehl. An online active set strategy to 
+overcome the limitations of explicit MPC. International Journal of Robust 
+and Nonlinear Control, 18 (8), pp. 816-830, 2008.
+
+[3] H.J. Ferreau, P. Ortner, P. Langthaler, L. del Re, M. Diehl. Predictive 
+Control of a Real-World Diesel Engine using an Extended Online Active Set 
+Strategy. Annual Reviews in Control, 31 (2), pp. 293-301, 2007.
+
+
+
+GETTING STARTED
+================
+
+1. For installation, usage and additional information on this software package 
+   see the qpOASES User's Manual located at ./DOC/manual.pdf!
+
+
+2. The file ./LICENSE.txt contains a copy of the GNU Lesser General Public 
+   License. Please read it carefully before using qpOASES!
+
+
+3. The whole software package can be downloaded from 
+
+        http://homes.esat.kuleuven.be/~optec/software/qpOASES/ 
+
+   On this webpage you will also find a list of frequently asked questions.
+
+
+
+CONTACT THE AUTHORS
+====================
+
+If you have got questions, remarks or comments on qpOASES 
+please contact the main author:
+
+        Hans Joachim Ferreau
+        Katholieke Universiteit Leuven
+        Department of Electrical Engineering (ESAT)
+        Kasteelpark Arenberg 10, bus 2446
+        B-3001 Leuven-Heverlee, Belgium
+
+        Phone: +32 16 32 03 63
+        E-mail: joachim.ferreau@esat.kuleuven.be
+                qpOASES@esat.kuleuven.be
+
+Also bug reports and source code extensions are most welcome!
+
+
+
+##
+##	end of file
+##
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/Bounds.cpp b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/Bounds.cpp
new file mode 100644
index 0000000..cf8ed69
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/Bounds.cpp
@@ -0,0 +1,252 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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 SRC/Bounds.cpp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Implementation of the Bounds class designed to manage working sets of
+ *	bounds within a QProblem.
+ */
+
+
+#include <Bounds.hpp>
+
+
+
+/*****************************************************************************
+ *  P U B L I C                                                              *
+ *****************************************************************************/
+
+
+/*
+ *	B o u n d s
+ */
+Bounds::Bounds( ) :	SubjectTo( ),
+					nV( 0 ),
+					nFV( 0 ),
+					nBV( 0 ),
+					nUV( 0 )
+{
+}
+
+
+/*
+ *	B o u n d s
+ */
+Bounds::Bounds( const Bounds& rhs ) :	SubjectTo( rhs ),
+										nV( rhs.nV ),
+										nFV( rhs.nFV ),
+										nBV( rhs.nBV ),
+										nUV( rhs.nUV )
+{
+	free  = rhs.free;
+	fixed = rhs.fixed;
+}
+
+
+/*
+ *	~ B o u n d s
+ */
+Bounds::~Bounds( )
+{
+}
+
+
+/*
+ *	o p e r a t o r =
+ */
+Bounds& Bounds::operator=( const Bounds& rhs )
+{
+	if ( this != &rhs )
+	{
+		SubjectTo::operator=( rhs );
+
+		nV  = rhs.nV;
+		nFV = rhs.nFV;
+		nBV = rhs.nBV;
+		nUV = rhs.nUV;
+
+		free  = rhs.free;
+		fixed = rhs.fixed;
+	}
+
+	return *this;
+}
+
+
+/*
+ *	i n i t
+ */
+returnValue Bounds::init( int n )
+{
+	nV = n;
+	nFV = 0;
+	nBV = 0;
+	nUV = 0;
+
+	free.init( );
+	fixed.init( );
+
+	return SubjectTo::init( n );
+}
+
+
+/*
+ *	s e t u p B o u n d
+ */
+returnValue Bounds::setupBound(	int _number, SubjectToStatus _status
+								)
+{
+	/* consistency check */
+	if ( ( _number < 0 ) || ( _number >= getNV( ) ) )
+		return THROWERROR( RET_INDEX_OUT_OF_BOUNDS );
+	
+	/* Add bound index to respective index list. */
+	switch ( _status )
+	{
+		case ST_INACTIVE:
+			if ( this->addIndex( this->getFree( ),_number,_status ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_SETUP_BOUND_FAILED );
+			break;
+
+		case ST_LOWER:
+			if ( this->addIndex( this->getFixed( ),_number,_status ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_SETUP_BOUND_FAILED );
+			break;
+
+		case ST_UPPER:
+			if ( this->addIndex( this->getFixed( ),_number,_status ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_SETUP_BOUND_FAILED );
+			break;
+
+		default:
+			return THROWERROR( RET_INVALID_ARGUMENTS );
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s e t u p A l l F r e e
+ */
+returnValue Bounds::setupAllFree( )
+{
+	int i;
+
+	/* 1) Place unbounded variables at the beginning of the index list of free variables. */
+	for( i=0; i<nV; ++i )
+	{
+		if ( getType( i ) == ST_UNBOUNDED )
+		{
+			if ( setupBound( i,ST_INACTIVE ) != SUCCESSFUL_RETURN )
+					return THROWERROR( RET_SETUP_BOUND_FAILED );
+		}
+	}
+
+	/* 2) Add remaining (i.e. bounded but possibly free) variables to the index list of free variables. */
+	for( i=0; i<nV; ++i )
+	{
+		if ( getType( i ) == ST_BOUNDED )
+		{
+			if ( setupBound( i,ST_INACTIVE ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_SETUP_BOUND_FAILED );
+		}
+	}
+
+	/* 3) Place implicitly fixed variables at the end of the index list of free variables. */
+	for( i=0; i<nV; ++i )
+	{
+		if ( getType( i ) == ST_EQUALITY )
+		{
+			if ( setupBound( i,ST_INACTIVE ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_SETUP_BOUND_FAILED );
+		}
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	m o v e F i x e d T o F r e e
+ */
+returnValue Bounds::moveFixedToFree( int _number )
+{
+	/* consistency check */
+	if ( ( _number < 0 ) || ( _number >= getNV( ) ) )
+		return THROWERROR( RET_INDEX_OUT_OF_BOUNDS );
+
+	/* Move index from indexlist of fixed variables to that of free ones. */
+	if ( this->removeIndex( this->getFixed( ),_number ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_MOVING_BOUND_FAILED );
+
+	if ( this->addIndex( this->getFree( ),_number,ST_INACTIVE ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_MOVING_BOUND_FAILED );
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	m o v e F r e e T o F i x e d
+ */
+returnValue Bounds::moveFreeToFixed(	int _number, SubjectToStatus _status
+										)
+{
+	/* consistency check */
+	if ( ( _number < 0 ) || ( _number >= getNV( ) ) )
+		return THROWERROR( RET_INDEX_OUT_OF_BOUNDS );
+
+	/* Move index from indexlist of free variables to that of fixed ones. */
+	if ( this->removeIndex( this->getFree( ),_number ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_MOVING_BOUND_FAILED );
+
+	if ( this->addIndex( this->getFixed( ),_number,_status ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_MOVING_BOUND_FAILED );
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s w a p F r e e
+ */
+returnValue Bounds::swapFree(	int number1, int number2
+								)
+{
+	/* consistency check */
+	if ( ( number1 < 0 ) || ( number1 >= getNV( ) ) || ( number2 < 0 ) || ( number2 >= getNV( ) ) )
+		return THROWERROR( RET_INDEX_OUT_OF_BOUNDS );
+
+	/* Swap index within indexlist of free variables. */
+	return this->swapIndex( this->getFree( ),number1,number2 );
+}
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/Bounds.ipp b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/Bounds.ipp
new file mode 100644
index 0000000..d2ab1ba
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/Bounds.ipp
@@ -0,0 +1,144 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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 SRC/Bounds.ipp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Implementation of inlined member functions of the Bounds class designed 
+ *	to manage working sets of bounds within a QProblem.
+ */
+
+
+/*****************************************************************************
+ *  P U B L I C                                                              *
+ *****************************************************************************/
+
+/*
+ *	g e t N V
+ */
+inline int Bounds::getNV( ) const
+{
+ 	return nV;
+}
+
+
+/*
+ *	g e t N F X
+ */
+inline int Bounds::getNFV( ) const
+{
+ 	return nFV;
+}
+
+
+/*
+ *	g e t N B V
+ */
+inline int Bounds::getNBV( ) const
+{
+ 	return nBV;
+}
+ 
+
+/*
+ *	g e t N U V
+ */
+inline int Bounds::getNUV( ) const
+{
+	return nUV;
+}
+
+
+
+/*
+ *	s e t N F X
+ */
+inline returnValue Bounds::setNFV( int n )
+{
+ 	nFV = n;
+	return SUCCESSFUL_RETURN;	
+}
+ 
+ 
+/*
+ *	s e t N B V
+ */
+inline returnValue Bounds::setNBV( int n )
+{
+ 	nBV = n;
+	return SUCCESSFUL_RETURN;
+}
+ 
+
+/*
+ *	s e t N U V
+ */
+inline returnValue Bounds::setNUV( int n )
+{
+	nUV = n;
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	g e t N F R
+ */
+inline int Bounds::getNFR( )
+{
+ 	return free.getLength( );
+}
+
+
+/*
+ *	g e t N F X
+ */
+inline int Bounds::getNFX( )
+{
+ 	return fixed.getLength( );
+}
+
+
+/*
+ *	g e t F r e e
+ */
+inline Indexlist* Bounds::getFree( )
+{
+	return &free;
+}
+
+
+/*
+ *	g e t F i x e d
+ */
+inline Indexlist* Bounds::getFixed( )
+{
+	return &fixed;
+}
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/Constraints.cpp b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/Constraints.cpp
new file mode 100644
index 0000000..b2ad5bd
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/Constraints.cpp
@@ -0,0 +1,248 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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 SRC/Constraints.cpp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Implementation of the Constraints class designed to manage working sets of
+ *	constraints within a QProblem.
+ */
+
+
+#include <Constraints.hpp>
+
+
+/*****************************************************************************
+ *  P U B L I C                                                              *
+ *****************************************************************************/
+
+
+/*
+ *	C o n s t r a i n t s
+ */
+Constraints::Constraints( ) :	SubjectTo( ),
+								nC( 0 ),
+								nEC( 0 ),
+								nIC( 0 ),
+								nUC( 0 )
+{
+}
+
+
+/*
+ *	C o n s t r a i n t s
+ */
+Constraints::Constraints( const Constraints& rhs ) :	SubjectTo( rhs ),
+														nC( rhs.nC ),
+														nEC( rhs.nEC ),
+														nIC( rhs.nIC ),
+														nUC( rhs.nUC )
+{
+	active =   rhs.active;
+	inactive = rhs.inactive;
+}
+
+
+/*
+ *	~ C o n s t r a i n t s
+ */
+Constraints::~Constraints( )
+{
+}
+
+
+/*
+ *	o p e r a t o r =
+ */
+Constraints& Constraints::operator=( const Constraints& rhs )
+{
+	if ( this != &rhs )
+	{
+		SubjectTo::operator=( rhs );
+
+		nC  = rhs.nC;
+		nEC = rhs.nEC;
+		nIC = rhs.nIC;
+		nUC = rhs.nUC;
+
+		active =   rhs.active;
+		inactive = rhs.inactive;
+	}
+
+	return *this;
+}
+
+
+/*
+ *	i n i t
+ */
+returnValue Constraints::init( int n )
+{
+	nC = n;
+	nEC = 0;
+	nIC = 0;
+	nUC = 0;
+
+	active.init( );
+	inactive.init( );
+
+	return SubjectTo::init( n );
+}
+
+
+/*
+ *	s e t u p C o n s t r a i n t
+ */
+returnValue Constraints::setupConstraint(	int _number, SubjectToStatus _status
+											)
+{
+	/* consistency check */
+	if ( ( _number < 0 ) || ( _number >= getNC( ) ) )
+		return THROWERROR( RET_INDEX_OUT_OF_BOUNDS );
+	
+	/* Add constraint index to respective index list. */
+	switch ( _status )
+	{
+		case ST_INACTIVE:
+			if ( this->addIndex( this->getInactive( ),_number,_status ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_SETUP_CONSTRAINT_FAILED );
+			break;
+
+		case ST_LOWER:
+			if ( this->addIndex( this->getActive( ),_number,_status ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_SETUP_CONSTRAINT_FAILED );
+			break;
+
+		case ST_UPPER:
+			if ( this->addIndex( this->getActive( ),_number,_status ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_SETUP_CONSTRAINT_FAILED );
+			break;
+
+		default:
+			return THROWERROR( RET_INVALID_ARGUMENTS );
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s e t u p A l l I n a c t i v e
+ */
+returnValue Constraints::setupAllInactive( )
+{
+	int i;
+
+
+	/* 1) Place unbounded constraints at the beginning of the index list of inactive constraints. */
+	for( i=0; i<nC; ++i )
+	{
+		if ( getType( i ) == ST_UNBOUNDED )
+		{
+			if ( setupConstraint( i,ST_INACTIVE ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_SETUP_CONSTRAINT_FAILED );
+		}
+	}
+
+	/* 2) Add remaining (i.e. "real" inequality) constraints to the index list of inactive constraints. */
+	for( i=0; i<nC; ++i )
+	{
+		if ( getType( i ) == ST_BOUNDED )
+		{
+			if ( setupConstraint( i,ST_INACTIVE ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_SETUP_CONSTRAINT_FAILED );
+		}
+	}
+
+	/* 3) Place implicit equality constraints at the end of the index list of inactive constraints. */
+	for( i=0; i<nC; ++i )
+	{
+		if ( getType( i ) == ST_EQUALITY )
+		{
+			if ( setupConstraint( i,ST_INACTIVE ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_SETUP_CONSTRAINT_FAILED );
+		}
+	}
+
+	/* 4) Moreover, add all constraints of unknown type. */
+	for( i=0; i<nC; ++i )
+	{
+		if ( getType( i ) == ST_UNKNOWN )
+		{
+			if ( setupConstraint( i,ST_INACTIVE ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_SETUP_CONSTRAINT_FAILED );
+		}
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	m o v e A c t i v e T o I n a c t i v e
+ */
+returnValue Constraints::moveActiveToInactive( int _number )
+{
+	/* consistency check */
+	if ( ( _number < 0 ) || ( _number >= getNC( ) ) )
+		return THROWERROR( RET_INDEX_OUT_OF_BOUNDS );
+
+	/* Move index from indexlist of active constraints to that of inactive ones. */
+	if ( this->removeIndex( this->getActive( ),_number ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_MOVING_BOUND_FAILED );
+
+	if ( this->addIndex( this->getInactive( ),_number,ST_INACTIVE ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_MOVING_BOUND_FAILED );
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	m o v e I n a c t i v e T o A c t i v e
+ */
+returnValue Constraints::moveInactiveToActive(	int _number, SubjectToStatus _status
+												)
+{
+	/* consistency check */
+	if ( ( _number < 0 ) || ( _number >= getNC( ) ) )
+		return THROWERROR( RET_INDEX_OUT_OF_BOUNDS );
+
+	/* Move index from indexlist of inactive constraints to that of active ones. */
+	if ( this->removeIndex( this->getInactive( ),_number ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_MOVING_BOUND_FAILED );
+
+	if ( this->addIndex( this->getActive( ),_number,_status ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_MOVING_BOUND_FAILED );
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/Constraints.ipp b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/Constraints.ipp
new file mode 100644
index 0000000..1b874ef
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/Constraints.ipp
@@ -0,0 +1,144 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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 SRC/Constraints.ipp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Declaration of inlined member functions of the Constraints class designed 
+ *	to manage working sets of constraints within a QProblem.
+ */
+
+
+
+/*****************************************************************************
+ *  P U B L I C                                                              *
+ *****************************************************************************/
+
+/*
+ *	g e t N C
+ */
+inline int Constraints::getNC( ) const
+{
+ 	return nC;
+}
+ 
+
+/*
+ *	g e t N E C
+ */
+inline int Constraints::getNEC( ) const
+{
+ 	return nEC;
+}
+ 
+
+/*
+ *	g e t N I C
+ */
+inline int Constraints::getNIC( ) const
+{
+ 	return nIC;
+}
+ 
+
+/*
+ *	g e t N U C
+ */
+inline int Constraints::getNUC( ) const
+{
+ 	return nUC;
+}
+
+
+/*
+ *	s e t N E C
+ */
+inline returnValue Constraints::setNEC( int n )
+{
+ 	nEC = n;
+	return SUCCESSFUL_RETURN;
+}
+ 
+
+/*
+ *	s e t N I C
+ */
+inline returnValue Constraints::setNIC( int n )
+{
+ 	nIC = n;
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s e t N U C
+ */
+inline returnValue Constraints::setNUC( int n )
+{
+ 	nUC = n;
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	g e t N A C
+ */
+inline int Constraints::getNAC( )
+{
+ 	return active.getLength( );
+}
+
+
+/*
+ *	g e t N I A C
+ */
+inline int Constraints::getNIAC( )
+{
+ 	return inactive.getLength( );
+}
+
+
+/*
+ *	g e t A c t i v e
+ */
+inline Indexlist* Constraints::getActive( )
+{
+	return &active;
+}
+
+
+/*
+ *	g e t I n a c t i v e
+ */
+inline Indexlist* Constraints::getInactive( )
+{
+	return &inactive;
+}
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/CyclingManager.cpp b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/CyclingManager.cpp
new file mode 100644
index 0000000..27c2996
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/CyclingManager.cpp
@@ -0,0 +1,188 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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 SRC/CyclingManager.cpp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Implementation of the CyclingManager class designed to detect
+ *	and handle possible cycling during QP iterations.
+ *
+ */
+
+
+#include <CyclingManager.hpp>
+
+
+/*****************************************************************************
+ *  P U B L I C                                                              *
+ *****************************************************************************/
+
+
+/*
+ *	C y c l i n g M a n a g e r
+ */
+CyclingManager::CyclingManager( ) :	nV( 0 ),
+									nC( 0 )
+{
+	cyclingDetected = BT_FALSE;
+}
+
+
+/*
+ *	C y c l i n g M a n a g e r
+ */
+CyclingManager::CyclingManager( const CyclingManager& rhs ) :	nV( rhs.nV ),
+																nC( rhs.nC ),
+																cyclingDetected( rhs.cyclingDetected )
+{
+	int i;
+
+	for( i=0; i<nV+nC; ++i )
+		status[i] = rhs.status[i];
+}
+
+
+/*
+ *	~ C y c l i n g M a n a g e r
+ */
+CyclingManager::~CyclingManager( )
+{
+}
+
+
+/*
+ *	o p e r a t o r =
+ */
+CyclingManager& CyclingManager::operator=( const CyclingManager& rhs )
+{
+	int i;
+
+	if ( this != &rhs )
+	{
+		nV = rhs.nV;
+		nC = rhs.nC;
+
+		for( i=0; i<nV+nC; ++i )
+			status[i] = rhs.status[i];
+
+		cyclingDetected = rhs.cyclingDetected;
+	}
+
+	return *this;
+}
+
+
+
+/*
+ *	i n i t
+ */
+returnValue CyclingManager::init( int _nV, int _nC )
+{
+	nV = _nV;
+	nC = _nC;
+
+	cyclingDetected = BT_FALSE;
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+
+/*
+ *	s e t C y c l i n g S t a t u s
+ */
+returnValue CyclingManager::setCyclingStatus(	int number,
+												BooleanType isBound, CyclingStatus _status
+												)
+{
+	if ( isBound == BT_TRUE )
+	{
+		/* Set cycling status of a bound. */
+		if ( ( number >= 0 ) && ( number < nV ) )
+		{
+			status[number] = _status;
+			return SUCCESSFUL_RETURN;
+		}
+		else
+			return THROWERROR( RET_INDEX_OUT_OF_BOUNDS );
+	}
+	else
+	{
+		/* Set cycling status of a constraint. */
+		if ( ( number >= 0 ) && ( number < nC ) )
+		{
+			status[nV+number] = _status;
+			return SUCCESSFUL_RETURN;
+		}
+		else
+			return THROWERROR( RET_INDEX_OUT_OF_BOUNDS );
+	}
+}
+
+
+/*
+ *	g e t C y c l i n g S t a t u s
+ */
+CyclingStatus CyclingManager::getCyclingStatus( int number, BooleanType isBound ) const
+{
+	if ( isBound == BT_TRUE )
+	{
+		/* Return cycling status of a bound. */
+		if ( ( number >= 0 ) && ( number < nV ) )
+			return status[number];
+	}
+	else
+	{
+		/* Return cycling status of a constraint. */
+		if ( ( number >= 0 ) && ( number < nC ) )
+			return status[nV+number];
+	}
+
+	return CYC_NOT_INVOLVED;
+}
+
+
+/*
+ *	c l e a r C y c l i n g D a t a
+ */
+returnValue CyclingManager::clearCyclingData( )
+{
+	int i;
+
+	/* Reset all status values ... */
+	for( i=0; i<nV+nC; ++i )
+		status[i] = CYC_NOT_INVOLVED;
+
+	/* ... and the main cycling flag. */
+	cyclingDetected = BT_FALSE;
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/CyclingManager.ipp b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/CyclingManager.ipp
new file mode 100644
index 0000000..386409a
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/CyclingManager.ipp
@@ -0,0 +1,51 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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 SRC/CyclingManager.ipp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Implementation of inlined member functions of the CyclingManager class 
+ *	designed to detect and handle possible cycling during QP iterations.
+ *	
+ */
+
+
+/*****************************************************************************
+ *  P U B L I C                                                              *
+ *****************************************************************************/
+
+/*
+ *	i s C y c l i n g D e t e c t e d
+ */
+inline BooleanType CyclingManager::isCyclingDetected( ) const
+{
+	return cyclingDetected;
+}
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp
new file mode 100644
index 0000000..c744adc
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/EXTRAS/SolutionAnalysis.cpp
@@ -0,0 +1,434 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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 SRC/EXTRAS/SolutionAnalysis.cpp
+ *	\author Milan Vukov, Boris Houska, Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2012
+ *
+ *	Solution analysis class, based on a class in the standard version of the qpOASES
+ */
+
+#include <EXTRAS/SolutionAnalysis.hpp>
+
+/*
+ *	S o l u t i o n A n a l y s i s
+ */
+SolutionAnalysis::SolutionAnalysis( )
+{
+	
+}
+
+/*
+ *	S o l u t i o n A n a l y s i s
+ */
+SolutionAnalysis::SolutionAnalysis( const SolutionAnalysis& rhs )
+{
+	
+}
+
+/*
+ *	~ S o l u t i o n A n a l y s i s
+ */
+SolutionAnalysis::~SolutionAnalysis( )
+{
+	
+}
+
+/*
+ *	o p e r a t o r =
+ */
+SolutionAnalysis& SolutionAnalysis::operator=( const SolutionAnalysis& rhs )
+{
+	if ( this != &rhs )
+	{
+		
+	}
+	
+	return *this;
+}
+
+/*
+ * g e t H e s s i a n I n v e r s e
+ */
+returnValue SolutionAnalysis::getHessianInverse( QProblem* qp, real_t* hessianInverse )
+{
+	returnValue returnvalue; /* the return value */
+	BooleanType Delta_bC_isZero = BT_FALSE; /* (just use FALSE here) */
+	BooleanType Delta_bB_isZero = BT_FALSE; /* (just use FALSE here) */
+	
+	register int run1, run2, run3;
+	
+	register int nFR, nFX;
+	
+	/* Ask for the number of free and fixed variables, assumes that active set
+	 * is constant for the covariance evaluation */
+	nFR = qp->getNFR( );
+	nFX = qp->getNFX( );
+	
+	/* Ask for the corresponding index arrays: */
+	if ( qp->bounds.getFree( )->getNumberArray( FR_idx ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_HOTSTART_FAILED );
+	
+	if ( qp->bounds.getFixed( )->getNumberArray( FX_idx ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_HOTSTART_FAILED );
+	
+	if ( qp->constraints.getActive( )->getNumberArray( AC_idx ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_HOTSTART_FAILED );
+	
+	/* Initialization: */
+	for( run1 = 0; run1 < NVMAX; run1++ )
+		delta_g_cov[ run1 ] = 0.0;
+	
+	for( run1 = 0; run1 < NVMAX; run1++ )
+		delta_lb_cov[ run1 ] = 0.0;
+	
+	for( run1 = 0; run1 < NVMAX; run1++ )
+		delta_ub_cov[ run1 ] = 0.0;
+	
+	for( run1 = 0; run1 < NCMAX; run1++ )
+		delta_lbA_cov[ run1 ] = 0.0;
+	
+	for( run1 = 0; run1 < NCMAX; run1++ )
+		delta_ubA_cov[ run1 ] = 0.0;
+	
+	/* The following loop solves the following:
+	 *
+	 * KKT * x =
+	 *   [delta_g_cov', delta_lbA_cov', delta_ubA_cov', delta_lb_cov', delta_ub_cov]'
+	 *
+	 * for the first NVMAX (negative) elementary vectors in order to get
+	 * transposed inverse of the Hessian. Assuming that the Hessian is
+	 * symmetric, the function will return transposed inverse, instead of the
+	 * true inverse.
+	 *
+	 * Note, that we use negative elementary vectors due because internal
+	 * implementation of the function hotstart_determineStepDirection requires
+	 * so.
+	 *
+	 * */
+	
+	for( run3 = 0; run3 < NVMAX; run3++ )
+	{
+		/* Line wise loading of the corresponding (negative) elementary vector: */
+		delta_g_cov[ run3 ] = -1.0;
+		
+		/* Evaluation of the step: */
+		returnvalue = qp->hotstart_determineStepDirection(
+			FR_idx, FX_idx, AC_idx,
+			delta_g_cov, delta_lbA_cov, delta_ubA_cov, delta_lb_cov, delta_ub_cov,
+			Delta_bC_isZero, Delta_bB_isZero,
+			delta_xFX, delta_xFR, delta_yAC, delta_yFX
+			);
+		if ( returnvalue != SUCCESSFUL_RETURN )
+		{
+			return returnvalue;
+		}
+		
+		/* Line wise storage of the QP reaction: */
+		for( run1 = 0; run1 < nFR; run1++ )
+		{
+			run2 = FR_idx[ run1 ];
+			
+			hessianInverse[run3 * NVMAX + run2] = delta_xFR[ run1 ];
+		} 
+		
+		for( run1 = 0; run1 < nFX; run1++ )
+		{ 
+			run2 = FX_idx[ run1 ];
+			
+			hessianInverse[run3 * NVMAX + run2] = delta_xFX[ run1 ];
+		}
+		
+		/* Prepare for the next iteration */
+		delta_g_cov[ run3 ] = 0.0;
+	}
+	
+	// TODO: Perform the transpose of the inverse of the Hessian matrix
+	
+	return SUCCESSFUL_RETURN; 
+}
+
+/*
+ * g e t H e s s i a n I n v e r s e
+ */
+returnValue SolutionAnalysis::getHessianInverse( QProblemB* qp, real_t* hessianInverse )
+{
+	returnValue returnvalue; /* the return value */
+	BooleanType Delta_bB_isZero = BT_FALSE; /* (just use FALSE here) */
+	
+	register int run1, run2, run3;
+	
+	register int nFR, nFX;
+	
+	/* Ask for the number of free and fixed variables, assumes that active set
+	 * is constant for the covariance evaluation */
+	nFR = qp->getNFR( );
+	nFX = qp->getNFX( );
+	
+	/* Ask for the corresponding index arrays: */
+	if ( qp->bounds.getFree( )->getNumberArray( FR_idx ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_HOTSTART_FAILED );
+	
+	if ( qp->bounds.getFixed( )->getNumberArray( FX_idx ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_HOTSTART_FAILED );
+	
+	/* Initialization: */
+	for( run1 = 0; run1 < NVMAX; run1++ )
+		delta_g_cov[ run1 ] = 0.0;
+	
+	for( run1 = 0; run1 < NVMAX; run1++ )
+		delta_lb_cov[ run1 ] = 0.0;
+	
+	for( run1 = 0; run1 < NVMAX; run1++ )
+		delta_ub_cov[ run1 ] = 0.0;
+	
+	/* The following loop solves the following:
+	 *
+	 * KKT * x =
+	 *   [delta_g_cov', delta_lb_cov', delta_ub_cov']'
+	 *
+	 * for the first NVMAX (negative) elementary vectors in order to get
+	 * transposed inverse of the Hessian. Assuming that the Hessian is
+	 * symmetric, the function will return transposed inverse, instead of the
+	 * true inverse.
+	 *
+	 * Note, that we use negative elementary vectors due because internal
+	 * implementation of the function hotstart_determineStepDirection requires
+	 * so.
+	 *
+	 * */
+	
+	for( run3 = 0; run3 < NVMAX; run3++ )
+	{
+		/* Line wise loading of the corresponding (negative) elementary vector: */
+		delta_g_cov[ run3 ] = -1.0;
+		
+		/* Evaluation of the step: */
+		returnvalue = qp->hotstart_determineStepDirection(
+			FR_idx, FX_idx,
+			delta_g_cov, delta_lb_cov, delta_ub_cov,
+			Delta_bB_isZero,
+			delta_xFX, delta_xFR, delta_yFX
+			);
+		if ( returnvalue != SUCCESSFUL_RETURN )
+		{
+			return returnvalue;
+		}
+				
+		/* Line wise storage of the QP reaction: */
+		for( run1 = 0; run1 < nFR; run1++ )
+		{
+			run2 = FR_idx[ run1 ];
+			
+			hessianInverse[run3 * NVMAX + run2] = delta_xFR[ run1 ];
+		} 
+		
+		for( run1 = 0; run1 < nFX; run1++ )
+		{ 
+			run2 = FX_idx[ run1 ];
+			
+			hessianInverse[run3 * NVMAX + run2] = delta_xFX[ run1 ];
+		}
+		
+		/* Prepare for the next iteration */
+		delta_g_cov[ run3 ] = 0.0;
+	}
+	
+	// TODO: Perform the transpose of the inverse of the Hessian matrix
+	
+	return SUCCESSFUL_RETURN; 
+}
+
+/*
+ * g e t V a r i a n c e C o v a r i a n c e
+ */
+
+#if QPOASES_USE_OLD_VERSION
+
+returnValue SolutionAnalysis::getVarianceCovariance( QProblem* qp, real_t* g_b_bA_VAR, real_t* Primal_Dual_VAR )
+{
+	int run1, run2, run3; /* simple run variables (for loops). */
+	
+	returnValue returnvalue; /* the return value */
+	BooleanType Delta_bC_isZero = BT_FALSE; /* (just use FALSE here) */
+	BooleanType Delta_bB_isZero = BT_FALSE; /* (just use FALSE here) */
+	
+	/* ASK FOR THE NUMBER OF FREE AND FIXED VARIABLES:
+	 * (ASSUMES THAT ACTIVE SET IS CONSTANT FOR THE
+	 *  VARIANCE-COVARIANCE EVALUATION)
+	 * ----------------------------------------------- */
+	int nFR, nFX, nAC;
+	
+	nFR = qp->getNFR( );
+	nFX = qp->getNFX( );
+	nAC = qp->getNAC( );
+	
+	if ( qp->bounds.getFree( )->getNumberArray( FR_idx ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_HOTSTART_FAILED );
+	
+	if ( qp->bounds.getFixed( )->getNumberArray( FX_idx ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_HOTSTART_FAILED );
+	
+	if ( qp->constraints.getActive( )->getNumberArray( AC_idx ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_HOTSTART_FAILED );
+	
+	/* SOME INITIALIZATIONS:
+	 * --------------------- */
+	for( run1 = 0; run1 < KKT_DIM * KKT_DIM; run1++ )
+	{
+		K [run1] = 0.0;
+		Primal_Dual_VAR[run1] = 0.0;
+	}
+	
+	/* ================================================================= */
+	
+	/* FIRST MATRIX MULTIPLICATION (OBTAINS THE INTERMEDIATE RESULT
+	 *  K := [ ("ACTIVE" KKT-MATRIX OF THE QP)^(-1) * g_b_bA_VAR ]^T )
+	 * THE EVALUATION OF THE INVERSE OF THE KKT-MATRIX OF THE QP
+	 * WITH RESPECT TO THE CURRENT ACTIVE SET
+	 * USES THE EXISTING CHOLESKY AND TQ-DECOMPOSITIONS. FOR DETAILS
+	 * cf. THE (protected) FUNCTION determineStepDirection. */
+	
+	for( run3 = 0; run3 < KKT_DIM; run3++ )
+	{
+		
+		for( run1 = 0; run1 < NVMAX; run1++ )
+		{
+			delta_g_cov [run1] = g_b_bA_VAR[run3*KKT_DIM+run1];
+			delta_lb_cov [run1] = g_b_bA_VAR[run3*KKT_DIM+NVMAX+run1]; /*  LINE-WISE LOADING OF THE INPUT */
+			delta_ub_cov [run1] = g_b_bA_VAR[run3*KKT_DIM+NVMAX+run1]; /*  VARIANCE-COVARIANCE            */
+		}
+		for( run1 = 0; run1 < NCMAX; run1++ )
+		{
+			delta_lbA_cov [run1] = g_b_bA_VAR[run3*KKT_DIM+2*NVMAX+run1];
+			delta_ubA_cov [run1] = g_b_bA_VAR[run3*KKT_DIM+2*NVMAX+run1];
+		}
+		
+		/* EVALUATION OF THE STEP:
+		 * ------------------------------------------------------------------------------ */
+		
+		returnvalue = qp->hotstart_determineStepDirection(
+			FR_idx, FX_idx, AC_idx,
+			delta_g_cov, delta_lbA_cov, delta_ubA_cov, delta_lb_cov, delta_ub_cov,
+			Delta_bC_isZero, Delta_bB_isZero, delta_xFX,delta_xFR,
+			delta_yAC,delta_yFX );
+		
+		/* ------------------------------------------------------------------------------ */
+		
+		/* STOP THE ALGORITHM IN THE CASE OF NO SUCCESFUL RETURN:
+		 * ------------------------------------------------------ */
+		if ( returnvalue != SUCCESSFUL_RETURN )
+		{
+			return returnvalue;
+		}
+		
+		/*  LINE WISE                  */
+		/*  STORAGE OF THE QP-REACTION */
+		/*  (uses the index list)      */
+		
+		for( run1=0; run1<nFR; run1++ )
+		{
+			run2 = FR_idx[run1];
+			K[run3*KKT_DIM+run2] = delta_xFR[run1];
+		} 
+		for( run1=0; run1<nFX; run1++ )
+		{ 
+			run2 = FX_idx[run1]; 
+			K[run3*KKT_DIM+run2] = delta_xFX[run1];
+			K[run3*KKT_DIM+NVMAX+run2] = delta_yFX[run1];
+		}
+		for( run1=0; run1<nAC; run1++ )
+		{
+			run2 = AC_idx[run1];
+			K[run3*KKT_DIM+2*NVMAX+run2] = delta_yAC[run1];
+		}
+	}
+	
+	/* ================================================================= */
+	
+	/* SECOND MATRIX MULTIPLICATION (OBTAINS THE FINAL RESULT
+	 * Primal_Dual_VAR := ("ACTIVE" KKT-MATRIX OF THE QP)^(-1) * K )
+	 * THE APPLICATION OF THE KKT-INVERSE IS AGAIN REALIZED
+	 * BY USING THE PROTECTED FUNCTION
+	 * determineStepDirection */
+	
+	for( run3 = 0; run3 < KKT_DIM; run3++ )
+	{
+		
+		for( run1 = 0; run1 < NVMAX; run1++ )
+		{
+			delta_g_cov [run1] = K[run3+ run1*KKT_DIM];
+			delta_lb_cov [run1] = K[run3+(NVMAX+run1)*KKT_DIM]; /*  ROW WISE LOADING OF THE */
+			delta_ub_cov [run1] = K[run3+(NVMAX+run1)*KKT_DIM]; /*  INTERMEDIATE RESULT K   */
+		}
+		for( run1 = 0; run1 < NCMAX; run1++ )
+		{
+			delta_lbA_cov [run1] = K[run3+(2*NVMAX+run1)*KKT_DIM];
+			delta_ubA_cov [run1] = K[run3+(2*NVMAX+run1)*KKT_DIM];
+		}
+		
+		/* EVALUATION OF THE STEP:
+		 * ------------------------------------------------------------------------------ */
+		
+		returnvalue = qp->hotstart_determineStepDirection(
+			FR_idx, FX_idx, AC_idx,
+			delta_g_cov, delta_lbA_cov, delta_ubA_cov, delta_lb_cov, delta_ub_cov,
+			Delta_bC_isZero, Delta_bB_isZero, delta_xFX,delta_xFR,
+			delta_yAC,delta_yFX );
+		
+		/* ------------------------------------------------------------------------------ */
+		
+		/* STOP THE ALGORITHM IN THE CASE OF NO SUCCESFUL RETURN:
+		 * ------------------------------------------------------ */
+		if ( returnvalue != SUCCESSFUL_RETURN )
+		{
+			return returnvalue;
+		}
+		
+		/*  ROW-WISE STORAGE */
+		/*  OF THE RESULT.   */
+		
+		for( run1=0; run1<nFR; run1++ )
+		{
+			run2 = FR_idx[run1];
+			Primal_Dual_VAR[run3+run2*KKT_DIM] = delta_xFR[run1];
+		}
+		for( run1=0; run1<nFX; run1++ )
+		{ 
+			run2 = FX_idx[run1]; 
+			Primal_Dual_VAR[run3+run2*KKT_DIM ] = delta_xFX[run1];
+			Primal_Dual_VAR[run3+(NVMAX+run2)*KKT_DIM] = delta_yFX[run1];
+		}
+		for( run1=0; run1<nAC; run1++ )
+		{
+			run2 = AC_idx[run1];
+			Primal_Dual_VAR[run3+(2*NVMAX+run2)*KKT_DIM] = delta_yAC[run1];
+		}
+	}
+	
+	return SUCCESSFUL_RETURN;
+}
+
+#endif
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/Indexlist.cpp b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/Indexlist.cpp
new file mode 100644
index 0000000..b512569
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/Indexlist.cpp
@@ -0,0 +1,342 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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 SRC/Indexlist.cpp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Implementation of the Indexlist class designed to manage index lists of
+ *	constraints and bounds within a QProblem_SubjectTo.
+ */
+
+
+#include <Indexlist.hpp>
+
+
+/*****************************************************************************
+ *  P U B L I C                                                              *
+ *****************************************************************************/
+
+
+/*
+ *	I n d e x l i s t
+ */
+Indexlist::Indexlist( ) :	length( 0 ),
+							first( -1 ),
+							last( -1 ),
+							lastusedindex( -1 ),
+							physicallength( INDEXLISTFACTOR*(NVMAX+NCMAX) )
+{
+	int i;
+
+	for( i=0; i<physicallength; ++i )
+	{
+		number[i] = -1;
+		next[i] = -1;
+		previous[i] = -1;
+	}
+}
+
+
+/*
+ *	I n d e x l i s t
+ */
+Indexlist::Indexlist( const Indexlist& rhs ) :	length( rhs.length ),
+												first( rhs.first ),
+												last( rhs.last ),
+												lastusedindex( rhs.lastusedindex ),
+												physicallength( rhs.physicallength )
+{
+	int i;
+
+	for( i=0; i<physicallength; ++i )
+	{
+		number[i] = rhs.number[i];
+		next[i] = rhs.next[i];
+		previous[i] = rhs.previous[i];
+	}
+}
+
+
+/*
+ *	~ I n d e x l i s t
+ */
+Indexlist::~Indexlist( )
+{
+}
+
+
+/*
+ *	o p e r a t o r =
+ */
+Indexlist& Indexlist::operator=( const Indexlist& rhs )
+{
+	int i;
+
+	if ( this != &rhs )
+	{
+		length = rhs.length;
+		first = rhs.first;
+		last = rhs.last;
+		lastusedindex = rhs.lastusedindex;
+		physicallength = rhs.physicallength;
+
+		for( i=0; i<physicallength; ++i )
+		{
+			number[i] = rhs.number[i];
+			next[i] = rhs.next[i];
+			previous[i] = rhs.previous[i];
+		}
+	}
+
+	return *this;
+}
+
+
+/*
+ *	i n i t
+ */
+returnValue Indexlist::init( )
+{
+	int i;
+
+	length = 0;
+	first = -1;
+	last = -1;
+	lastusedindex = -1;
+	physicallength = INDEXLISTFACTOR*(NVMAX+NCMAX);
+
+	for( i=0; i<physicallength; ++i )
+	{
+		number[i] = -1;
+		next[i] = -1;
+		previous[i] = -1;
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	g e t N u m b e r A r r a y
+ */
+returnValue Indexlist::getNumberArray( int* const numberarray ) const
+{
+	int i;
+	int n = first;
+
+	/* Run trough indexlist and store numbers in numberarray. */
+	for( i=0; i<length; ++i )
+	{
+		if ( ( n >= 0 ) && ( number[n] >= 0 ) )
+			numberarray[i] = number[n];
+		else
+			return THROWERROR( RET_INDEXLIST_CORRUPTED );
+
+		n = next[n];
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	g e t I n d e x
+ */
+int Indexlist::getIndex( int givennumber ) const
+{
+	int i;
+	int n = first;
+	int index = -1;	/* return -1 by default */
+
+	/* Run trough indexlist until number is found, if so return it index. */
+	for ( i=0; i<length; ++i )
+	{
+		if ( number[n] == givennumber )
+		{
+			index = i;
+			break;
+		}
+
+		n = next[n];
+	}
+
+	return index;
+}
+
+
+/*
+ *	g e t P h y s i c a l I n d e x
+ */
+int Indexlist::getPhysicalIndex( int givennumber ) const
+{
+	int i;
+	int n = first;
+	int index = -1;	/* return -1 by default */
+
+	/* Run trough indexlist until number is found, if so return it physicalindex. */
+	for ( i=0; i<length; ++i )
+	{
+		if ( number[n] == givennumber )
+		{
+			index = n;
+			break;
+		}
+
+		n = next[n];
+	}
+
+	return index;
+}
+
+
+/*
+ *	a d d N u m b e r
+ */
+returnValue Indexlist::addNumber( int addnumber )
+{
+	int i;
+
+	if ( lastusedindex+1 < physicallength )
+	{
+		/* If there is enough storage, add number to indexlist. */
+		++lastusedindex;
+		number[lastusedindex] = addnumber;
+		next[lastusedindex] = 0;
+
+		if ( length == 0 )
+		{
+			first = lastusedindex;
+			previous[lastusedindex] = 0;
+		}
+		else
+		{
+			next[last] = lastusedindex;
+			previous[lastusedindex] = last;
+		}
+
+		last = lastusedindex;
+		++length;
+
+		return SUCCESSFUL_RETURN;
+	}
+	else
+	{
+		/* Rearrangement of index list necessary! */
+		if ( length == physicallength )
+			return THROWERROR( RET_INDEXLIST_EXCEEDS_MAX_LENGTH );
+		else
+		{
+			int numberArray[NVMAX+NCMAX];
+			getNumberArray( numberArray );
+
+			/* copy existing elements */
+			for ( i=0; i<length; ++i )
+			{
+				number[i] = numberArray[i];
+				next[i] = i+1;
+				previous[i] = i-1;
+			}
+
+			/* add new number at end of list */
+			number[length] = addnumber;
+			next[length] = -1;
+			previous[length] = length-1;
+
+			/* and set remaining entries to empty */
+			for ( i=length+1; i<physicallength; ++i )
+			{
+				number[i] = -1;
+				next[i] = -1;
+				previous[i] = -1;
+			}
+
+			first = 0;
+			last = length;
+			lastusedindex = length;
+			++length;
+
+			return THROWWARNING( RET_INDEXLIST_MUST_BE_REORDERD );
+		}
+	}
+}
+
+
+/*
+ *	r e m o v e N u m b e r
+ */
+returnValue Indexlist::removeNumber( int removenumber )
+{
+	int i = getPhysicalIndex( removenumber );
+
+	/* nothing to be done if number is not contained in index set */
+	if ( i < 0 )
+		return SUCCESSFUL_RETURN;
+
+	int p = previous[i];
+	int n = next[i];
+
+	if ( i == last )
+		last = p;
+	else
+		previous[n] = p;
+
+	if ( i == first )
+		first = n;
+	else
+		next[p] = n;
+
+	number[i] = -1;
+	next[i] = -1;
+	previous[i] = -1;
+	--length;
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s w a p N u m b e r s
+ */
+returnValue Indexlist::swapNumbers( int number1, int number2 )
+{
+	int index1 = getPhysicalIndex( number1 );
+	int index2 = getPhysicalIndex( number2 );
+
+	/* consistency check */
+	if ( ( index1 < 0 ) || ( index2 < 0 ) )
+		return THROWERROR( RET_INDEXLIST_CORRUPTED );
+
+	int tmp = number[index1];
+	number[index1] = number[index2];
+	number[index2] = tmp;
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/Indexlist.ipp b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/Indexlist.ipp
new file mode 100644
index 0000000..b75db81
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/Indexlist.ipp
@@ -0,0 +1,85 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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 SRC/Indexlist.ipp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Implementation of inlined member functions of the Indexlist class designed 
+ *	to manage index lists of constraints and bounds within a QProblem_SubjectTo.
+ */
+
+
+
+/*****************************************************************************
+ *  P U B L I C                                                              *
+ *****************************************************************************/
+
+/*
+ *	g e t N u m b e r
+ */
+inline int Indexlist::getNumber( int physicalindex ) const
+{
+	/* consistency check */
+	if ( ( physicalindex < 0 ) || ( physicalindex > length ) )
+		return -RET_INDEXLIST_OUTOFBOUNDS;
+
+	return number[physicalindex];
+}
+
+
+/*
+ *	g e t L e n g t h
+ */
+inline int Indexlist::getLength( )
+{
+	return length;
+}
+
+
+/*
+ *	g e t L a s t N u m b e r
+ */
+inline int Indexlist::getLastNumber( ) const
+{
+	return number[last];
+}
+
+
+/*
+ *	g e t L a s t N u m b e r
+ */
+inline BooleanType Indexlist::isMember( int _number ) const
+{
+	if ( getIndex( _number ) >= 0 )
+		return BT_TRUE;
+	else
+		return BT_FALSE;
+}
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/MessageHandling.cpp b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/MessageHandling.cpp
new file mode 100644
index 0000000..18a7654
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/MessageHandling.cpp
@@ -0,0 +1,529 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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 SRC/MessageHandling.cpp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Implementation of the MessageHandling class including global return values.
+ *
+ */
+
+
+
+#include <MessageHandling.hpp>
+#include <Utils.hpp>
+
+
+
+
+/** Defines pairs of global return values and messages. */
+MessageHandling::ReturnValueList returnValueList[] =
+{
+/* miscellaneous */
+{ SUCCESSFUL_RETURN, "Successful return", VS_VISIBLE },
+{ RET_DIV_BY_ZERO, "Division by zero", VS_VISIBLE },
+{ RET_INDEX_OUT_OF_BOUNDS, "Index out of bounds", VS_VISIBLE },
+{ RET_INVALID_ARGUMENTS, "At least one of the arguments is invalid", VS_VISIBLE },
+{ RET_ERROR_UNDEFINED, "Error number undefined", VS_VISIBLE },
+{ RET_WARNING_UNDEFINED, "Warning number undefined", VS_VISIBLE },
+{ RET_INFO_UNDEFINED, "Info number undefined", VS_VISIBLE },
+{ RET_EWI_UNDEFINED, "Error/warning/info number undefined", VS_VISIBLE },
+{ RET_AVAILABLE_WITH_LINUX_ONLY, "This function is available under Linux only", VS_HIDDEN },
+{ RET_UNKNOWN_BUG, "The error occured is not yet known", VS_VISIBLE },
+{ RET_PRINTLEVEL_CHANGED, "Print level changed", VS_VISIBLE },
+{ RET_NOT_YET_IMPLEMENTED, "Requested function is not yet implemented.", VS_VISIBLE },
+/* Indexlist */
+{ RET_INDEXLIST_MUST_BE_REORDERD, "Index list has to be reordered", VS_VISIBLE },
+{ RET_INDEXLIST_EXCEEDS_MAX_LENGTH, "Index list exceeds its maximal physical length", VS_VISIBLE },
+{ RET_INDEXLIST_CORRUPTED, "Index list corrupted", VS_VISIBLE },
+{ RET_INDEXLIST_OUTOFBOUNDS, "Physical index is out of bounds", VS_VISIBLE },
+{ RET_INDEXLIST_ADD_FAILED, "Adding indices from another index set failed", VS_VISIBLE },
+{ RET_INDEXLIST_INTERSECT_FAILED, "Intersection with another index set failed", VS_VISIBLE },
+/* SubjectTo / Bounds / Constraints */
+{ RET_INDEX_ALREADY_OF_DESIRED_STATUS, "Index is already of desired status", VS_VISIBLE },
+{ RET_SWAPINDEX_FAILED, "Cannot swap between different indexsets", VS_VISIBLE },
+{ RET_ADDINDEX_FAILED, "Adding index to index set failed", VS_VISIBLE },
+{ RET_NOTHING_TO_DO, "Nothing to do", VS_VISIBLE },
+{ RET_SETUP_BOUND_FAILED, "Setting up bound index failed", VS_VISIBLE },
+{ RET_SETUP_CONSTRAINT_FAILED, "Setting up constraint index failed", VS_VISIBLE },
+{ RET_MOVING_BOUND_FAILED, "Moving bound between index sets failed", VS_VISIBLE },
+{ RET_MOVING_CONSTRAINT_FAILED, "Moving constraint between index sets failed", VS_VISIBLE },
+/* QProblem */
+{ RET_QP_ALREADY_INITIALISED, "QProblem has already been initialised", VS_VISIBLE },
+{ RET_NO_INIT_WITH_STANDARD_SOLVER, "Initialisation via extern QP solver is not yet implemented", VS_VISIBLE },
+{ RET_RESET_FAILED, "Reset failed", VS_VISIBLE },
+{ RET_INIT_FAILED, "Initialisation failed", VS_VISIBLE },
+{ RET_INIT_FAILED_TQ, "Initialisation failed due to TQ factorisation", VS_VISIBLE },
+{ RET_INIT_FAILED_CHOLESKY, "Initialisation failed due to Cholesky decomposition", VS_VISIBLE },
+{ RET_INIT_FAILED_HOTSTART, "Initialisation failed! QP could not be solved!", VS_VISIBLE },
+{ RET_INIT_FAILED_INFEASIBILITY, "Initial QP could not be solved due to infeasibility!", VS_VISIBLE },
+{ RET_INIT_FAILED_UNBOUNDEDNESS, "Initial QP could not be solved due to unboundedness!", VS_VISIBLE },
+{ RET_INIT_SUCCESSFUL, "Initialisation done", VS_VISIBLE },
+{ RET_OBTAINING_WORKINGSET_FAILED, "Failed to obtain working set for auxiliary QP", VS_VISIBLE },
+{ RET_SETUP_WORKINGSET_FAILED, "Failed to setup working set for auxiliary QP", VS_VISIBLE },
+{ RET_SETUP_AUXILIARYQP_FAILED, "Failed to setup auxiliary QP for initialised homotopy", VS_VISIBLE },
+{ RET_NO_EXTERN_SOLVER, "No extern QP solver available", VS_VISIBLE },
+{ RET_QP_UNBOUNDED, "QP is unbounded", VS_VISIBLE },
+{ RET_QP_INFEASIBLE, "QP is infeasible", VS_VISIBLE },
+{ RET_QP_NOT_SOLVED, "Problems occured while solving QP with standard solver", VS_VISIBLE },
+{ RET_QP_SOLVED, "QP successfully solved", VS_VISIBLE },
+{ RET_UNABLE_TO_SOLVE_QP, "Problems occured while solving QP", VS_VISIBLE },
+{ RET_INITIALISATION_STARTED, "Starting problem initialisation...", VS_VISIBLE },
+{ RET_HOTSTART_FAILED, "Unable to perform homotopy due to internal error", VS_VISIBLE },
+{ RET_HOTSTART_FAILED_TO_INIT, "Unable to initialise problem", VS_VISIBLE },
+{ RET_HOTSTART_FAILED_AS_QP_NOT_INITIALISED, "Unable to perform homotopy as previous QP is not solved", VS_VISIBLE },
+{ RET_ITERATION_STARTED, "Iteration", VS_VISIBLE },
+{ RET_SHIFT_DETERMINATION_FAILED, "Determination of shift of the QP data failed", VS_VISIBLE },
+{ RET_STEPDIRECTION_DETERMINATION_FAILED, "Determination of step direction failed", VS_VISIBLE },
+{ RET_STEPLENGTH_DETERMINATION_FAILED, "Determination of step direction failed", VS_VISIBLE },
+{ RET_OPTIMAL_SOLUTION_FOUND, "Optimal solution of neighbouring QP found", VS_VISIBLE },
+{ RET_HOMOTOPY_STEP_FAILED, "Unable to perform homotopy step", VS_VISIBLE },
+{ RET_HOTSTART_STOPPED_INFEASIBILITY, "Premature homotopy termination because QP is infeasible", VS_VISIBLE },
+{ RET_HOTSTART_STOPPED_UNBOUNDEDNESS, "Premature homotopy termination because QP is unbounded", VS_VISIBLE },
+{ RET_WORKINGSET_UPDATE_FAILED, "Unable to update working sets according to initial guesses", VS_VISIBLE },
+{ RET_MAX_NWSR_REACHED, "Maximum number of working set recalculations performed", VS_VISIBLE },
+{ RET_CONSTRAINTS_NOT_SPECIFIED, "Problem does comprise constraints! You have to specify new constraints' bounds", VS_VISIBLE },
+{ RET_INVALID_FACTORISATION_FLAG, "Invalid factorisation flag", VS_VISIBLE },
+{ RET_UNABLE_TO_SAVE_QPDATA, "Unable to save QP data", VS_VISIBLE },
+{ RET_STEPDIRECTION_FAILED_TQ, "Abnormal termination due to TQ factorisation", VS_VISIBLE },
+{ RET_STEPDIRECTION_FAILED_CHOLESKY, "Abnormal termination due to Cholesky factorisation", VS_VISIBLE },
+{ RET_CYCLING_DETECTED, "Cycling detected", VS_VISIBLE },
+{ RET_CYCLING_NOT_RESOLVED, "Cycling cannot be resolved, QP is probably infeasible", VS_VISIBLE },
+{ RET_CYCLING_RESOLVED, "Cycling probably resolved", VS_VISIBLE },
+{ RET_STEPSIZE, "", VS_VISIBLE },
+{ RET_STEPSIZE_NONPOSITIVE, "", VS_VISIBLE },
+{ RET_SETUPSUBJECTTOTYPE_FAILED, "Setup of SubjectToTypes failed", VS_VISIBLE },
+{ RET_ADDCONSTRAINT_FAILED, "Addition of constraint to working set failed", VS_VISIBLE },
+{ RET_ADDCONSTRAINT_FAILED_INFEASIBILITY, "Addition of constraint to working set failed", VS_VISIBLE },
+{ RET_ADDBOUND_FAILED, "Addition of bound to working set failed", VS_VISIBLE },
+{ RET_ADDBOUND_FAILED_INFEASIBILITY, "Addition of bound to working set failed", VS_VISIBLE },
+{ RET_REMOVECONSTRAINT_FAILED, "Removal of constraint from working set failed", VS_VISIBLE },
+{ RET_REMOVEBOUND_FAILED, "Removal of bound from working set failed", VS_VISIBLE },
+{ RET_REMOVE_FROM_ACTIVESET, "Removing from active set:", VS_VISIBLE },
+{ RET_ADD_TO_ACTIVESET, "Adding to active set:", VS_VISIBLE },
+{ RET_REMOVE_FROM_ACTIVESET_FAILED, "Removing from active set failed", VS_VISIBLE },
+{ RET_ADD_TO_ACTIVESET_FAILED, "Adding to active set failed", VS_VISIBLE },
+{ RET_CONSTRAINT_ALREADY_ACTIVE, "Constraint is already active", VS_VISIBLE },
+{ RET_ALL_CONSTRAINTS_ACTIVE, "All constraints are active, no further constraint can be added", VS_VISIBLE },
+{ RET_LINEARLY_DEPENDENT, "New bound/constraint is linearly dependent", VS_VISIBLE },
+{ RET_LINEARLY_INDEPENDENT, "New bound/constraint is linearly independent", VS_VISIBLE },
+{ RET_LI_RESOLVED, "Linear independence of active contraint matrix successfully resolved", VS_VISIBLE },
+{ RET_ENSURELI_FAILED, "Failed to ensure linear indepence of active contraint matrix", VS_VISIBLE },
+{ RET_ENSURELI_FAILED_TQ, "Abnormal termination due to TQ factorisation", VS_VISIBLE },
+{ RET_ENSURELI_FAILED_NOINDEX, "No index found, QP is probably infeasible", VS_VISIBLE },
+{ RET_ENSURELI_FAILED_CYCLING, "Cycling detected, QP is probably infeasible", VS_VISIBLE },
+{ RET_BOUND_ALREADY_ACTIVE, "Bound is already active", VS_VISIBLE },
+{ RET_ALL_BOUNDS_ACTIVE, "All bounds are active, no further bound can be added", VS_VISIBLE },
+{ RET_CONSTRAINT_NOT_ACTIVE, "Constraint is not active", VS_VISIBLE },
+{ RET_BOUND_NOT_ACTIVE, "Bound is not active", VS_VISIBLE },
+{ RET_HESSIAN_NOT_SPD, "Projected Hessian matrix not positive definite", VS_VISIBLE },
+{ RET_MATRIX_SHIFT_FAILED, "Unable to update matrices or to transform vectors", VS_VISIBLE },
+{ RET_MATRIX_FACTORISATION_FAILED, "Unable to calculate new matrix factorisations", VS_VISIBLE },
+{ RET_PRINT_ITERATION_FAILED, "Unable to print information on current iteration", VS_VISIBLE },
+{ RET_NO_GLOBAL_MESSAGE_OUTPUTFILE, "No global message output file initialised", VS_VISIBLE },
+/* Utils */
+{ RET_UNABLE_TO_OPEN_FILE, "Unable to open file", VS_VISIBLE },
+{ RET_UNABLE_TO_WRITE_FILE, "Unable to write into file", VS_VISIBLE },
+{ RET_UNABLE_TO_READ_FILE, "Unable to read from file", VS_VISIBLE },
+{ RET_FILEDATA_INCONSISTENT, "File contains inconsistent data", VS_VISIBLE },
+/* SolutionAnalysis */
+{ RET_NO_SOLUTION, "QP solution does not satisfy KKT optimality conditions", VS_VISIBLE },
+{ RET_INACCURATE_SOLUTION, "KKT optimality conditions not satisfied to sufficient accuracy", VS_VISIBLE },
+{ TERMINAL_LIST_ELEMENT, "", VS_HIDDEN } /* IMPORTANT: Terminal list element! */
+};
+
+
+
+/*****************************************************************************
+ *  P U B L I C                                                              *
+ *****************************************************************************/
+
+
+/*
+ *	M e s s a g e H a n d l i n g
+ */
+MessageHandling::MessageHandling( ) :	errorVisibility( VS_VISIBLE ),
+										warningVisibility( VS_VISIBLE ),
+										infoVisibility( VS_VISIBLE ),
+										outputFile( myStdout ),
+										errorCount( 0 )
+{
+}
+
+/*
+ *	M e s s a g e H a n d l i n g
+ */
+MessageHandling::MessageHandling( myFILE* _outputFile ) :
+										errorVisibility( VS_VISIBLE ),
+										warningVisibility( VS_VISIBLE ),
+										infoVisibility( VS_VISIBLE ),
+										outputFile( _outputFile ),
+										errorCount( 0 )
+{
+}
+
+/*
+ *	M e s s a g e H a n d l i n g
+ */
+MessageHandling::MessageHandling(	VisibilityStatus _errorVisibility,
+									VisibilityStatus _warningVisibility,
+		 							VisibilityStatus _infoVisibility
+									) :
+										errorVisibility( _errorVisibility ),
+										warningVisibility( _warningVisibility ),
+										infoVisibility( _infoVisibility ),
+										outputFile( myStderr ),
+										errorCount( 0 )
+{
+}
+
+/*
+ *	M e s s a g e H a n d l i n g
+ */
+MessageHandling::MessageHandling( 	myFILE* _outputFile,
+									VisibilityStatus _errorVisibility,
+									VisibilityStatus _warningVisibility,
+		 							VisibilityStatus _infoVisibility
+									) :
+										errorVisibility( _errorVisibility ),
+										warningVisibility( _warningVisibility ),
+										infoVisibility( _infoVisibility ),
+										outputFile( _outputFile ),
+										errorCount( 0 )
+{
+}
+
+
+
+/*
+ *	M e s s a g e H a n d l i n g
+ */
+MessageHandling::MessageHandling( const MessageHandling& rhs ) :
+										errorVisibility( rhs.errorVisibility ),
+										warningVisibility( rhs.warningVisibility ),
+										infoVisibility( rhs.infoVisibility ),
+										outputFile( rhs.outputFile ),
+										errorCount( rhs.errorCount )
+{
+}
+
+
+/*
+ *	~ M e s s a g e H a n d l i n g
+ */
+MessageHandling::~MessageHandling( )
+{
+	#ifdef PC_DEBUG
+	if ( outputFile != 0 )
+		fclose( outputFile );
+	#endif
+}
+
+
+/*
+ *	o p e r a t o r =
+ */
+MessageHandling& MessageHandling::operator=( const MessageHandling& rhs )
+{
+	if ( this != &rhs )
+	{
+		errorVisibility = rhs.errorVisibility;
+		warningVisibility = rhs.warningVisibility;
+		infoVisibility = rhs.infoVisibility;
+		outputFile = rhs.outputFile;
+		errorCount = rhs.errorCount;
+	}
+
+	return *this;
+}
+
+
+/*
+ *	t h r o w E r r o r
+ */
+returnValue MessageHandling::throwError(
+	returnValue Enumber,
+	const char* additionaltext,
+	const char* functionname,
+	const char* filename,
+	const unsigned long linenumber,
+	VisibilityStatus localVisibilityStatus
+	)
+{
+	/* consistency check */
+	if ( Enumber <= SUCCESSFUL_RETURN )
+		return throwError( RET_ERROR_UNDEFINED,0,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE );
+
+	/* Call to common throwMessage function if error shall be displayed. */
+	if ( errorVisibility == VS_VISIBLE )
+		return throwMessage( Enumber,additionaltext,functionname,filename,linenumber,localVisibilityStatus,"ERROR" );
+	else
+		return Enumber;
+}
+
+
+/*
+ *	t h r o w W a r n i n g
+ */
+returnValue MessageHandling::throwWarning(
+	returnValue Wnumber,
+	const char* additionaltext,
+	const char* functionname,
+	const char* filename,
+	const unsigned long linenumber,
+	VisibilityStatus localVisibilityStatus
+  	)
+{
+	/* consistency check */
+  	if ( Wnumber <= SUCCESSFUL_RETURN )
+		return throwError( RET_WARNING_UNDEFINED,0,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE );
+
+	/* Call to common throwMessage function if warning shall be displayed. */
+	if ( warningVisibility == VS_VISIBLE )
+		return throwMessage( Wnumber,additionaltext,functionname,filename,linenumber,localVisibilityStatus,"WARNING" );
+  	else
+  		return Wnumber;
+}
+
+
+/*
+ *	t h r o w I n f o
+ */
+returnValue MessageHandling::throwInfo(
+  	returnValue Inumber,
+	const char* additionaltext,
+  	const char* functionname,
+	const char* filename,
+	const unsigned long linenumber,
+	VisibilityStatus localVisibilityStatus
+ 	)
+{
+	/* consistency check */
+	if ( Inumber < SUCCESSFUL_RETURN )
+		return throwError( RET_INFO_UNDEFINED,0,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE );
+
+	/* Call to common throwMessage function if info shall be displayed. */
+	if ( infoVisibility == VS_VISIBLE )
+		return throwMessage( Inumber,additionaltext,functionname,filename,linenumber,localVisibilityStatus,"INFO" );
+	else
+		return Inumber;
+}
+
+
+/*
+ *	r e s e t
+ */
+returnValue MessageHandling::reset( )
+{
+	setErrorVisibilityStatus(   VS_VISIBLE );
+	setWarningVisibilityStatus( VS_VISIBLE );
+	setInfoVisibilityStatus(    VS_VISIBLE );
+
+	setOutputFile( myStderr );
+	setErrorCount( 0 );
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	l i s t A l l M e s s a g e s
+ */
+returnValue MessageHandling::listAllMessages( )
+{
+	#ifdef PC_DEBUG
+	int keypos = 0;
+	char myPrintfString[160];
+
+	/* Run through whole returnValueList and print each item. */
+	while ( returnValueList[keypos].key != TERMINAL_LIST_ELEMENT )
+	{
+		sprintf( myPrintfString," %d - %s \n",keypos,returnValueList[keypos].data );
+		myPrintf( myPrintfString );
+
+		++keypos;
+	}
+	#endif
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+
+/*****************************************************************************
+ *  P R O T E C T E D                                                        *
+ *****************************************************************************/
+
+
+#ifdef PC_DEBUG  /* Re-define throwMessage function for embedded code! */
+
+/*
+ *	t h r o w M e s s a g e
+ */
+returnValue MessageHandling::throwMessage(
+	returnValue RETnumber,
+	const char* additionaltext,
+	const char* functionname,
+	const char* filename,
+	const unsigned long linenumber,
+	VisibilityStatus localVisibilityStatus,
+	const char* RETstring
+ 	)
+{
+	int i;
+
+	int keypos = 0;
+	char myPrintfString[160];
+
+	/* 1) Determine number of whitespace for output. */
+	char whitespaces[41];
+	int numberOfWhitespaces = (errorCount-1)*2;
+
+	if ( numberOfWhitespaces < 0 )
+		numberOfWhitespaces = 0;
+
+	if ( numberOfWhitespaces > 40 )
+		numberOfWhitespaces = 40;
+
+	for( i=0; i<numberOfWhitespaces; ++i )
+		whitespaces[i] = ' ';
+	whitespaces[numberOfWhitespaces] = '\0';
+
+	/* 2) Find error/warning/info in list. */
+	while ( returnValueList[keypos].key != TERMINAL_LIST_ELEMENT )
+	{
+		if ( returnValueList[keypos].key == RETnumber )
+			break;
+		else
+			++keypos;
+	}
+
+	if ( returnValueList[keypos].key == TERMINAL_LIST_ELEMENT )
+	{
+		throwError( RET_EWI_UNDEFINED,0,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE );
+		return RETnumber;
+	}
+
+	/* 3) Print error/warning/info. */
+	if ( ( returnValueList[keypos].globalVisibilityStatus == VS_VISIBLE ) && ( localVisibilityStatus == VS_VISIBLE ) )
+	{
+		if ( errorCount > 0 )
+		{
+			sprintf( myPrintfString,"%s->", whitespaces );
+			myPrintf( myPrintfString );
+		}
+
+		if ( additionaltext == 0 )
+		{
+			sprintf(	myPrintfString,"%s (%s, %s:%d): \t%s\n",
+						RETstring,functionname,filename,(int)linenumber,returnValueList[keypos].data
+						);
+			myPrintf( myPrintfString );
+		}
+		else
+		{
+			sprintf(	myPrintfString,"%s (%s, %s:%d): \t%s %s\n",
+						RETstring,functionname,filename,(int)linenumber,returnValueList[keypos].data,additionaltext
+						);
+			myPrintf( myPrintfString );
+		}
+
+		/* take care of proper indention for subsequent error messages */
+		if ( RETstring[0] == 'E' )
+		{
+			++errorCount;
+		}
+		else
+		{
+			if ( errorCount > 0 )
+				myPrintf( "\n" );
+			errorCount = 0;
+		}
+	}
+
+	return RETnumber;
+}
+
+#else  /* = PC_DEBUG not defined */
+
+/*
+ *	t h r o w M e s s a g e
+ */
+returnValue MessageHandling::throwMessage(
+	returnValue RETnumber,
+	const char* additionaltext,
+	const char* functionname,
+	const char* filename,
+	const unsigned long linenumber,
+	VisibilityStatus localVisibilityStatus,
+	const char* RETstring
+ 	)
+{
+	/* DUMMY CODE FOR PRETENDING USE OF ARGUMENTS
+	 * FOR SUPPRESSING COMPILER WARNINGS! */
+	int i = 0;
+	if ( additionaltext == 0 ) i++;
+	if ( functionname == 0 ) i++;
+	if ( filename == 0 ) i++;
+	if ( linenumber == 0 ) i++;
+	if ( localVisibilityStatus == VS_VISIBLE ) i++;
+	if ( RETstring == 0 ) i++;
+	/* END OF DUMMY CODE */
+
+	return RETnumber;
+}
+
+#endif  /* PC_DEBUG */
+
+
+
+/*****************************************************************************
+ *  G L O B A L  M E S S A G E  H A N D L E R                                *
+ *****************************************************************************/
+
+
+/** Global message handler for all qpOASES modules.*/
+MessageHandling globalMessageHandler( myStderr,VS_VISIBLE,VS_VISIBLE,VS_VISIBLE );
+
+
+/*
+ *	g e t G l o b a l M e s s a g e H a n d l e r
+ */
+MessageHandling* getGlobalMessageHandler( )
+{
+	return &globalMessageHandler;
+}
+
+const char* MessageHandling::getErrorString(int error)
+{
+	return returnValueList[ error ].data;
+}
+
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/MessageHandling.ipp b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/MessageHandling.ipp
new file mode 100644
index 0000000..033957b
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/MessageHandling.ipp
@@ -0,0 +1,137 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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 SRC/MessageHandling.ipp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Implementation of inlined member functions of the MessageHandling class. 
+ */
+
+
+
+/*****************************************************************************
+ *  P U B L I C                                                              *
+ *****************************************************************************/
+ 
+/*
+ *	g e t E r r o r V i s i b i l i t y S t a t u s
+ */
+inline VisibilityStatus MessageHandling::getErrorVisibilityStatus( ) const
+{
+ 	return errorVisibility;
+}
+
+
+/*
+ *	g e t W a r n i n g V i s i b i l i t y S t a t u s
+ */
+inline VisibilityStatus MessageHandling::getWarningVisibilityStatus( ) const
+{
+ 	return warningVisibility;
+}
+
+
+/*
+ *	g e t I n f o V i s i b i l i t y S t a t u s
+ */
+inline VisibilityStatus MessageHandling::getInfoVisibilityStatus( ) const
+{
+ 	return infoVisibility;
+}
+
+
+/*
+ *	g e t O u t p u t F i l e
+ */
+inline myFILE* MessageHandling::getOutputFile( ) const
+{
+ 	return outputFile;
+}
+
+
+/*
+ *	g e t E r r o r C o u n t
+ */
+inline int MessageHandling::getErrorCount( ) const
+{
+ 	return errorCount;
+}
+
+
+/*
+ *	s e t E r r o r V i s i b i l i t y S t a t u s
+ */
+inline void MessageHandling::setErrorVisibilityStatus( VisibilityStatus _errorVisibility ) 
+{
+ 	errorVisibility = _errorVisibility;
+}
+
+
+/*
+ *	s e t W a r n i n g V i s i b i l i t y S t a t u s
+ */
+inline void MessageHandling::setWarningVisibilityStatus( VisibilityStatus _warningVisibility ) 
+{
+ 	warningVisibility = _warningVisibility;
+}
+
+
+/*
+ *	s e t I n f o V i s i b i l i t y S t a t u s
+ */
+inline void MessageHandling::setInfoVisibilityStatus( VisibilityStatus _infoVisibility ) 
+{
+ 	infoVisibility = _infoVisibility;
+}
+
+
+/*
+ *	s e t O u t p u t F i l e
+ */
+inline void MessageHandling::setOutputFile( myFILE* _outputFile ) 
+{
+ 	outputFile = _outputFile;
+}
+
+
+/*
+ *	s e t E r r o r C o u n t
+ */
+inline returnValue MessageHandling::setErrorCount( int _errorCount )
+{
+	if ( _errorCount >= 0 ) 	
+	{
+		errorCount = _errorCount;
+		return SUCCESSFUL_RETURN;
+	}
+	else
+		return RET_INVALID_ARGUMENTS;
+}
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/QProblem.cpp b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/QProblem.cpp
new file mode 100644
index 0000000..75e2f32
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/QProblem.cpp
@@ -0,0 +1,3867 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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 SRC/QProblem.cpp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Implementation of the QProblem class which is able to use the newly
+ *	developed online active set strategy for parametric quadratic programming.
+ */
+
+
+#include <QProblem.hpp>
+
+#include <stdio.h>
+
+void printmatrix2(char *name, double *A, int m, int n) {
+  int i, j;
+
+  printf("%s = [...\n", name);
+  for (i = 0; i < m; i++) {
+    for (j = 0; j < n; j++)
+        printf("  % 9.4f", A[i*n+j]);
+    printf(",\n");
+  }
+  printf("];\n");
+}
+
+//#define __PERFORM_KKT_TEST__
+
+
+/*****************************************************************************
+ *  P U B L I C                                                              *
+ *****************************************************************************/
+
+
+/*
+ *	Q P r o b l e m
+ */
+QProblem::QProblem( ) : QProblemB( )
+{
+	constraints.init( 0 );
+
+	sizeT = 0;
+
+	cyclingManager.init( 0,0 );
+}
+
+
+/*
+ *	Q P r o b l e m
+ */
+QProblem::QProblem( int _nV, int _nC ) : QProblemB( _nV )
+{
+	/* consistency checks */
+	if ( _nV <= 0 )
+		_nV = 1;
+
+	if ( _nC < 0 )
+	{
+		_nC = 0;
+		THROWERROR( RET_INVALID_ARGUMENTS );
+	}
+
+	constraints.init( _nC );
+
+
+	sizeT = _nC;
+	if ( _nC > _nV )
+		sizeT = _nV;
+
+	cyclingManager.init( _nV,_nC );
+}
+
+
+/*
+ *	Q P r o b l e m
+ */
+QProblem::QProblem( const QProblem& rhs ) :	QProblemB( rhs )
+{
+	int i, j;
+
+	int _nV = rhs.bounds.getNV( );
+	int _nC = rhs.constraints.getNC( );
+
+	for( i=0; i<_nC; ++i )
+		for( j=0; j<_nV; ++j )
+			A[i*NVMAX + j] = rhs.A[i*NVMAX + j];
+
+	for( i=0; i<_nC; ++i )
+		lbA[i] = rhs.lbA[i];
+
+	for( i=0; i<_nC; ++i )
+			ubA[i] = rhs.ubA[i];
+
+	constraints = rhs.constraints;
+
+	for( i=0; i<(_nV+_nC); ++i )
+		y[i] = rhs.y[i];
+
+
+	sizeT = rhs.sizeT;
+
+	for( i=0; i<sizeT; ++i )
+		for( j=0; j<sizeT; ++j )
+			T[i*NVMAX + j] = rhs.T[i*NVMAX + j];
+
+	for( i=0; i<_nV; ++i )
+		for( j=0; j<_nV; ++j )
+			Q[i*NVMAX + j] = rhs.Q[i*NVMAX + j];
+
+	for( i=0; i<_nC; ++i )
+		Ax[i] = rhs.Ax[i];
+
+	cyclingManager = rhs.cyclingManager;
+}
+
+
+/*
+ *	~ Q P r o b l e m
+ */
+QProblem::~QProblem( )
+{
+}
+
+
+/*
+ *	o p e r a t o r =
+ */
+QProblem& QProblem::operator=( const QProblem& rhs )
+{
+	int i, j;
+
+	if ( this != &rhs )
+	{
+		QProblemB::operator=( rhs );
+
+
+		int _nV = rhs.bounds.getNV( );
+		int _nC = rhs.constraints.getNC( );
+
+		for( i=0; i<_nC; ++i )
+			for( j=0; j<_nV; ++j )
+				A[i*NVMAX + j] = rhs.A[i*NVMAX + j];
+
+		for( i=0; i<_nC; ++i )
+			lbA[i] = rhs.lbA[i];
+
+		for( i=0; i<_nC; ++i )
+			ubA[i] = rhs.ubA[i];
+
+		constraints = rhs.constraints;
+
+		for( i=0; i<(_nV+_nC); ++i )
+			y[i] = rhs.y[i];
+
+
+		sizeT = rhs.sizeT;
+
+		for( i=0; i<sizeT; ++i )
+			for( j=0; j<sizeT; ++j )
+				T[i*NVMAX + j] = rhs.T[i*NVMAX + j];
+
+		for( i=0; i<_nV; ++i )
+			for( j=0; j<_nV; ++j )
+				Q[i*NVMAX + j] = rhs.Q[i*NVMAX + j];
+
+		for( i=0; i<_nC; ++i )
+			Ax[i] = rhs.Ax[i];
+
+		cyclingManager = rhs.cyclingManager;
+	}
+
+	return *this;
+}
+
+
+/*
+ *	r e s e t
+ */
+returnValue QProblem::reset( )
+{
+	int i, j;
+	int nV = getNV( );
+	int nC = getNC( );
+
+
+	/* 1) Reset bounds, Cholesky decomposition and status flags. */
+	if ( QProblemB::reset( ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_RESET_FAILED );
+
+	/* 2) Reset constraints. */
+	constraints.init( nC );
+
+	/* 3) Reset TQ factorisation. */
+	for( i=0; i<sizeT; ++i )
+		for( j=0; j<sizeT; ++j )
+			T[i*NVMAX + j] = 0.0;
+
+	for( i=0; i<nV; ++i )
+		for( j=0; j<nV; ++j )
+			Q[i*NVMAX + j] = 0.0;
+
+	/* 4) Reset cycling manager. */
+	if ( cyclingManager.clearCyclingData( ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_RESET_FAILED );
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	i n i t
+ */
+returnValue QProblem::init(	const real_t* const _H, const real_t* const _g, const real_t* const _A,
+							const real_t* const _lb, const real_t* const _ub,
+							const real_t* const _lbA, const real_t* const _ubA,
+							int& nWSR, const real_t* const yOpt, real_t* const cputime
+							)
+{
+	/* 1) Setup QP data. */
+	if (setupQPdata(_H, 0, _g, _A, _lb, _ub, _lbA, _ubA) != SUCCESSFUL_RETURN)
+		return THROWERROR( RET_INVALID_ARGUMENTS );
+
+	/* 2) Call to main initialisation routine (without any additional information). */
+	return solveInitialQP( 0,yOpt,0,0, nWSR,cputime );
+}
+
+returnValue QProblem::init(	const real_t* const _H, const real_t* const _R, const real_t* const _g, const real_t* const _A,
+							const real_t* const _lb, const real_t* const _ub,
+							const real_t* const _lbA, const real_t* const _ubA,
+							int& nWSR, const real_t* const yOpt, real_t* const cputime
+							)
+{
+	/* 1) Setup QP data. */
+	if (setupQPdata(_H, _R, _g, _A, _lb, _ub, _lbA, _ubA) != SUCCESSFUL_RETURN)
+		return THROWERROR( RET_INVALID_ARGUMENTS );
+
+	/* 2) Call to main initialisation routine (without any additional information). */
+	return solveInitialQP( 0,yOpt,0,0, nWSR,cputime );
+}
+
+
+/*
+ *	h o t s t a r t
+ */
+returnValue QProblem::hotstart(	const real_t* const g_new, const real_t* const lb_new, const real_t* const ub_new,
+								const real_t* const lbA_new, const real_t* const ubA_new,
+								int& nWSR, real_t* const cputime
+								)
+{
+	int l;
+
+	/* consistency check */
+	if ( ( getStatus( ) == QPS_NOTINITIALISED )       ||
+		 ( getStatus( ) == QPS_PREPARINGAUXILIARYQP ) ||
+		 ( getStatus( ) == QPS_PERFORMINGHOMOTOPY )   )
+	{
+		return THROWERROR( RET_HOTSTART_FAILED_AS_QP_NOT_INITIALISED );
+	}
+
+	/* start runtime measurement */
+	real_t starttime = 0.0;
+	if ( cputime != 0 )
+		starttime = getCPUtime( );
+
+
+	/* I) PREPARATIONS */
+	/* 1) Reset cycling and status flags and increase QP counter. */
+	cyclingManager.clearCyclingData( );
+
+	infeasible = BT_FALSE;
+	unbounded = BT_FALSE;
+
+	++count;
+
+	/* 2) Allocate delta vectors of gradient and (constraints') bounds. */
+	returnValue returnvalue;
+	BooleanType Delta_bC_isZero, Delta_bB_isZero;
+
+	int FR_idx[NVMAX];
+	int FX_idx[NVMAX];
+	int AC_idx[NCMAX_ALLOC];
+	int IAC_idx[NCMAX_ALLOC];
+
+	real_t delta_g[NVMAX];
+	real_t delta_lb[NVMAX];
+	real_t delta_ub[NVMAX];
+	real_t delta_lbA[NCMAX_ALLOC];
+	real_t delta_ubA[NCMAX_ALLOC];
+
+	real_t delta_xFR[NVMAX];
+	real_t delta_xFX[NVMAX];
+	real_t delta_yAC[NCMAX_ALLOC];
+	real_t delta_yFX[NVMAX];
+	real_t delta_Ax[NCMAX_ALLOC];
+
+	int BC_idx;
+	SubjectToStatus BC_status;
+	BooleanType BC_isBound;
+
+	#ifdef PC_DEBUG
+	char messageString[80];
+	#endif
+
+
+	/* II) MAIN HOMOTOPY LOOP */
+	for( l=0; l<nWSR; ++l )
+	{
+		status = QPS_PERFORMINGHOMOTOPY;
+
+		if ( printlevel == PL_HIGH )
+		{
+			#ifdef PC_DEBUG
+			sprintf( messageString,"%d ...",l );
+		  	getGlobalMessageHandler( )->throwInfo( RET_ITERATION_STARTED,messageString,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE );
+			#endif
+		}
+
+		/* 1) Setup index arrays. */
+		if ( bounds.getFree( )->getNumberArray( FR_idx ) != SUCCESSFUL_RETURN )
+			return THROWERROR( RET_HOTSTART_FAILED );
+
+		if ( bounds.getFixed( )->getNumberArray( FX_idx ) != SUCCESSFUL_RETURN )
+			return THROWERROR( RET_HOTSTART_FAILED );
+
+		if ( constraints.getActive( )->getNumberArray( AC_idx ) != SUCCESSFUL_RETURN )
+			return THROWERROR( RET_HOTSTART_FAILED );
+
+		if ( constraints.getInactive( )->getNumberArray( IAC_idx ) != SUCCESSFUL_RETURN )
+			return THROWERROR( RET_HOTSTART_FAILED );
+
+		/* 2) Detemination of shift direction of the gradient and the (constraints') bounds. */
+		returnvalue = hotstart_determineDataShift(  FX_idx, AC_idx,
+													g_new,lbA_new,ubA_new,lb_new,ub_new,
+													delta_g,delta_lbA,delta_ubA,delta_lb,delta_ub,
+													Delta_bC_isZero, Delta_bB_isZero );
+		if ( returnvalue != SUCCESSFUL_RETURN )
+		{
+			nWSR = l;
+			THROWERROR( RET_SHIFT_DETERMINATION_FAILED );
+			return returnvalue;
+		}
+
+		/* 3) Determination of step direction of X and Y. */
+		returnvalue = hotstart_determineStepDirection(	FR_idx,FX_idx,AC_idx,
+														delta_g,delta_lbA,delta_ubA,delta_lb,delta_ub,
+														Delta_bC_isZero, Delta_bB_isZero,
+														delta_xFX,delta_xFR,delta_yAC,delta_yFX
+														);
+		if ( returnvalue != SUCCESSFUL_RETURN )
+		{
+			nWSR = l;
+			THROWERROR( RET_STEPDIRECTION_DETERMINATION_FAILED );
+			return returnvalue;
+		}
+
+		/* 4) Determination of step length TAU. */
+		returnvalue = hotstart_determineStepLength(	FR_idx,FX_idx,AC_idx,IAC_idx,
+													delta_lbA,delta_ubA,delta_lb,delta_ub,
+													delta_xFX,delta_xFR,delta_yAC,delta_yFX,delta_Ax,
+													BC_idx,BC_status,BC_isBound
+													);
+		if ( returnvalue != SUCCESSFUL_RETURN )
+		{
+			nWSR = l;
+			THROWERROR( RET_STEPLENGTH_DETERMINATION_FAILED );
+			return returnvalue;
+		}
+
+		/* 5) Realisation of the homotopy step. */
+		returnvalue = hotstart_performStep(	FR_idx,FX_idx,AC_idx,IAC_idx,
+											delta_g,delta_lbA,delta_ubA,delta_lb,delta_ub,
+											delta_xFX,delta_xFR,delta_yAC,delta_yFX,delta_Ax,
+											BC_idx,BC_status,BC_isBound
+											);
+
+		if ( returnvalue != SUCCESSFUL_RETURN )
+		{
+			nWSR = l;
+
+			/* stop runtime measurement */
+			if ( cputime != 0 )
+					*cputime = getCPUtime( ) - starttime;
+
+			/* optimal solution found? */
+			if ( returnvalue == RET_OPTIMAL_SOLUTION_FOUND )
+			{
+				status = QPS_SOLVED;
+
+				if ( printlevel == PL_HIGH )
+					THROWINFO( RET_OPTIMAL_SOLUTION_FOUND );
+
+				#ifdef PC_DEBUG
+	 			if ( printIteration( l,BC_idx,BC_status,BC_isBound ) != SUCCESSFUL_RETURN )
+					THROWERROR( RET_PRINT_ITERATION_FAILED ); /* do not pass this as return value! */
+				#endif
+
+				/* check KKT optimality conditions */
+				return checkKKTconditions( );
+			}
+			else
+			{
+				/* checks for infeasibility... */
+				if ( isInfeasible( ) == BT_TRUE )
+				{
+					status = QPS_HOMOTOPYQPSOLVED;
+					return THROWERROR( RET_HOTSTART_STOPPED_INFEASIBILITY );
+				}
+
+				/* ...unboundedness... */
+				if ( unbounded == BT_TRUE ) /* not necessary since objective function convex! */
+					return THROWERROR( RET_HOTSTART_STOPPED_UNBOUNDEDNESS );
+
+				/* ... and throw unspecific error otherwise */
+				THROWERROR( RET_HOMOTOPY_STEP_FAILED );
+				return returnvalue;
+			}
+		}
+
+		/* 6) Output information of successful QP iteration. */
+		status = QPS_HOMOTOPYQPSOLVED;
+
+		#ifdef PC_DEBUG
+		if ( printIteration( l,BC_idx,BC_status,BC_isBound ) != SUCCESSFUL_RETURN )
+			THROWERROR( RET_PRINT_ITERATION_FAILED ); /* do not pass this as return value! */
+		#endif
+	}
+
+
+	/* stop runtime measurement */
+	if ( cputime != 0 )
+		*cputime = getCPUtime( ) - starttime;
+
+
+	/* if programm gets to here, output information that QP could not be solved
+	 * within the given maximum numbers of working set changes */
+	if ( printlevel == PL_HIGH )
+	{
+		#ifdef PC_DEBUG
+		sprintf( messageString,"(nWSR = %d)",nWSR );
+		return getGlobalMessageHandler( )->throwWarning( RET_MAX_NWSR_REACHED,messageString,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE );
+		#endif
+	}
+
+	/* Finally check KKT optimality conditions. */
+	returnValue returnvalueKKTcheck = checkKKTconditions( );
+
+	if ( returnvalueKKTcheck != SUCCESSFUL_RETURN )
+		return returnvalueKKTcheck;
+	else
+		return RET_MAX_NWSR_REACHED;
+}
+
+
+/*
+ *	g e t N Z
+ */
+int QProblem::getNZ( )
+{
+	/* nZ = nFR - nAC */
+	return bounds.getFree( )->getLength( ) - constraints.getActive( )->getLength( );
+}
+
+
+/*
+ *	g e t D u a l S o l u t i o n
+ */
+returnValue QProblem::getDualSolution( real_t* const yOpt ) const
+{
+	int i;
+
+	/* return optimal dual solution vector
+	 * only if current QP has been solved */
+	if ( ( getStatus( ) == QPS_AUXILIARYQPSOLVED ) ||
+		 ( getStatus( ) == QPS_HOMOTOPYQPSOLVED )  ||
+		 ( getStatus( ) == QPS_SOLVED ) )
+	{
+		for( i=0; i<getNV( )+getNC( ); ++i )
+			yOpt[i] = y[i];
+
+		return SUCCESSFUL_RETURN;
+	}
+	else
+	{
+		return RET_QP_NOT_SOLVED;
+	}
+}
+
+
+
+/*****************************************************************************
+ *  P R O T E C T E D                                                        *
+ *****************************************************************************/
+
+/*
+ *	s e t u p S u b j e c t T o T y p e
+ */
+returnValue QProblem::setupSubjectToType( )
+{
+	int i;
+	int nC = getNC( );
+
+
+	/* I) SETUP SUBJECTTOTYPE FOR BOUNDS */
+	if ( QProblemB::setupSubjectToType( ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_SETUPSUBJECTTOTYPE_FAILED );
+
+
+	/* II) SETUP SUBJECTTOTYPE FOR CONSTRAINTS */
+	/* 1) Check if lower constraints' bounds are present. */
+	constraints.setNoLower( BT_TRUE );
+	for( i=0; i<nC; ++i )
+	{
+		if ( lbA[i] > -INFTY )
+		{
+			constraints.setNoLower( BT_FALSE );
+			break;
+		}
+	}
+
+	/* 2) Check if upper constraints' bounds are present. */
+	constraints.setNoUpper( BT_TRUE );
+	for( i=0; i<nC; ++i )
+	{
+		if ( ubA[i] < INFTY )
+		{
+			constraints.setNoUpper( BT_FALSE );
+			break;
+		}
+	}
+
+	/* 3) Determine implicit equality constraints and unbounded constraints. */
+	int nEC = 0;
+	int nUC = 0;
+
+	for( i=0; i<nC; ++i )
+	{
+		if ( ( lbA[i] < -INFTY + BOUNDTOL ) && ( ubA[i] > INFTY - BOUNDTOL ) )
+		{
+			constraints.setType( i,ST_UNBOUNDED );
+			++nUC;
+		}
+		else
+		{
+			if ( lbA[i] > ubA[i] - BOUNDTOL )
+			{
+				constraints.setType( i,ST_EQUALITY );
+				++nEC;
+			}
+			else
+			{
+				constraints.setType( i,ST_BOUNDED );
+			}
+		}
+	}
+
+	/* 4) Set dimensions of constraints structure. */
+	constraints.setNEC( nEC );
+	constraints.setNUC( nUC );
+	constraints.setNIC( nC - nEC - nUC );
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	c h o l e s k y D e c o m p o s i t i o n P r o j e c t e d
+ */
+returnValue QProblem::setupCholeskyDecompositionProjected( )
+{
+	int i, j, k, ii, kk;
+	int nV  = getNV( );
+	int nFR = getNFR( );
+	int nZ  = getNZ( );
+
+	/* 1) Initialises R with all zeros. */
+	for( i=0; i<nV; ++i )
+		for( j=0; j<nV; ++j )
+			R[i*NVMAX + j] = 0.0;
+
+	/* 2) Calculate Cholesky decomposition of projected Hessian Z'*H*Z. */
+	if ( hessianType == HST_IDENTITY )
+	{
+		/* if Hessian is identity, so is its Cholesky factor. */
+		for( i=0; i<nV; ++i )
+			R[i*NVMAX + i] = 1.0;
+	}
+	else
+	{
+		if ( nZ > 0 )
+		{
+			int FR_idx[NVMAX];
+			if ( bounds.getFree( )->getNumberArray( FR_idx ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_INDEXLIST_CORRUPTED );
+
+#if 0
+			real_t HZ[NVMAX*NVMAX];
+			real_t ZHZ[NVMAX*NVMAX];
+
+			/* calculate H*Z */
+			for ( i=0; i<nFR; ++i )
+			{
+				ii = FR_idx[i];
+
+				for ( j=0; j<nZ; ++j )
+				{
+					real_t sum = 0.0;
+					for ( k=0; k<nFR; ++k )
+					{
+						kk = FR_idx[k];
+						sum += H[ii*NVMAX + kk] * Q[kk*NVMAX + j];
+					}
+					HZ[i * NVMAX + j] = sum;
+				}
+			}
+
+			/* calculate Z'*H*Z */
+			for ( i=0; i<nZ; ++i )
+				for ( j=0; j<nZ; ++j )
+				{
+					real_t sum = 0.0;
+					for ( k=0; k<nFR; ++k )
+					{
+						kk = FR_idx[k];
+						sum += Q[kk*NVMAX + i] * HZ[k*NVMAX + j];
+					}
+					ZHZ[i * NVMAX + j] = sum;
+				}
+
+			/* R'*R = Z'*H*Z */
+			real_t sum, inv;
+
+			for( i=0; i<nZ; ++i )
+			{
+				/* j == i */
+				sum = ZHZ[i*NVMAX + i];
+
+				for( k=(i-1); k>=0; --k )
+					sum -= R[k*NVMAX + i] * R[k*NVMAX + i];
+
+				if ( sum > 0.0 )
+				{
+					R[i*NVMAX + i] = sqrt( sum );
+					inv = 1.0 / R[i * NVMAX + i];
+				}
+				else
+				{
+					hessianType = HST_SEMIDEF;
+					return THROWERROR( RET_HESSIAN_NOT_SPD );
+				}
+
+				for( j=(i+1); j<nZ; ++j )
+				{
+					sum = ZHZ[j*NVMAX + i];
+
+					for( k=(i-1); k>=0; --k )
+						sum -= R[k*NVMAX + i] * R[k*NVMAX + j];
+
+					R[i*NVMAX + j] = sum * inv;
+				}
+			}
+#else
+			real_t HZ[NVMAX];
+			real_t ZHZ[NVMAX];
+
+			real_t sum, inv;
+			for (j = 0; j < nZ; ++j)
+			{
+				/* Cache one column of Z. */
+				for (i = 0; i < NVMAX; ++i)
+					ZHZ[i] = Q[i * NVMAX + j];
+
+				/* Create one column of the product H * Z. */
+				for (i = 0; i < nFR; ++i)
+				{
+					ii = FR_idx[i];
+
+					sum = 0.0;
+					for (k = 0; k < nFR; ++k)
+					{
+						kk = FR_idx[k];
+						sum += H[ii * NVMAX + kk] * ZHZ[kk];
+					}
+					HZ[ii] = sum;
+				}
+
+				/* Create one column of the product Z^T * H * Z. */
+				for (i = j; i < nZ; ++i)
+					ZHZ[ i ] = 0.0;
+
+				for (k = 0; k < nFR; ++k)
+				{
+					kk = FR_idx[k];
+					real_t q = HZ[kk];
+					for (i = j; i < nZ; ++i)
+					{
+						ZHZ[i] += Q[kk * NVMAX + i] * q;
+					}
+				}
+
+				/* Use the computed column to update the factorization. */
+				/* j == i */
+				sum = ZHZ[j];
+
+				for (k = (j - 1); k >= 0; --k)
+					sum -= R[k * NVMAX + j] * R[k * NVMAX + j];
+
+				if (sum > 0.0)
+				{
+					R[j * NVMAX + j] = sqrt(sum);
+					inv = 1.0 / R[j * NVMAX + j];
+				}
+				else
+				{
+					hessianType = HST_SEMIDEF;
+					return THROWERROR( RET_HESSIAN_NOT_SPD );
+				}
+
+				for (i = (j + 1); i < nZ; ++i)
+				{
+					sum = ZHZ[i];
+
+					for (k = (j - 1); k >= 0; --k)
+						sum -= R[k * NVMAX + j] * R[k * NVMAX + i];
+
+					R[j * NVMAX + i] = sum * inv;
+				}
+			}
+#endif
+		}
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s e t u p T Q f a c t o r i s a t i o n
+ */
+returnValue QProblem::setupTQfactorisation( )
+{
+	int i, j, ii;
+	int nV  = getNV( );
+	int nFR = getNFR( );
+
+	int FR_idx[NVMAX];
+	if ( bounds.getFree( )->getNumberArray( FR_idx ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_INDEXLIST_CORRUPTED );
+
+	/* 1) Set Q to unity matrix. */
+	for( i=0; i<nV; ++i )
+		for( j=0; j<nV; ++j )
+			Q[i*NVMAX + j] = 0.0;
+
+	for( i=0; i<nFR; ++i )
+	{
+		ii = FR_idx[i];
+		Q[ii*NVMAX + i] = 1.0;
+	}
+
+ 	/* 2) Set T to zero matrix. */
+	for( i=0; i<sizeT; ++i )
+		for( j=0; j<sizeT; ++j )
+			T[i*NVMAX + j] = 0.0;
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s o l v e I n i t i a l Q P
+ */
+returnValue QProblem::solveInitialQP(	const real_t* const xOpt, const real_t* const yOpt,
+										const Bounds* const guessedBounds, const Constraints* const guessedConstraints,
+										int& nWSR, real_t* const cputime
+										)
+{
+	int i;
+
+	/* some definitions */
+	int nV = getNV( );
+	int nC = getNC( );
+
+
+	/* start runtime measurement */
+	real_t starttime = 0.0;
+	if ( cputime != 0 )
+		starttime = getCPUtime( );
+
+
+	status = QPS_NOTINITIALISED;
+
+	/* I) ANALYSE QP DATA: */
+	/* 1) Check if Hessian happens to be the identity matrix. */
+	if ( checkForIdentityHessian( ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_INIT_FAILED );
+
+	/* 2) Setup type of bounds and constraints (i.e. unbounded, implicitly fixed etc.). */
+	if ( setupSubjectToType( ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_INIT_FAILED );
+
+	/* 3) Initialise cycling manager. */
+	cyclingManager.clearCyclingData( );
+
+	status = QPS_PREPARINGAUXILIARYQP;
+
+
+	/* II) SETUP AUXILIARY QP WITH GIVEN OPTIMAL SOLUTION: */
+	/* 1) Setup bounds and constraints data structure. */
+	if ( bounds.setupAllFree( ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_INIT_FAILED );
+
+	if ( constraints.setupAllInactive( ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_INIT_FAILED );
+
+	/* 2) Setup optimal primal/dual solution for auxiliary QP. */
+	if ( setupAuxiliaryQPsolution( xOpt,yOpt ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_INIT_FAILED );
+
+	/* 3) Obtain linear independent working set for auxiliary QP. */
+
+	static Bounds auxiliaryBounds;
+
+	auxiliaryBounds.init( nV );
+
+	static Constraints auxiliaryConstraints;
+
+	auxiliaryConstraints.init( nC );
+
+	if ( obtainAuxiliaryWorkingSet(	xOpt,yOpt,guessedBounds,guessedConstraints,
+									&auxiliaryBounds,&auxiliaryConstraints ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_INIT_FAILED );
+
+	/* 4) Setup working set of auxiliary QP and setup matrix factorisations. */
+	if ( setupTQfactorisation( ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_INIT_FAILED_TQ );
+
+	if ( setupAuxiliaryWorkingSet( &auxiliaryBounds,&auxiliaryConstraints,BT_TRUE ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_INIT_FAILED );
+
+	if ( ( getNAC( ) + getNFX( ) ) == 0 )
+	{
+		/* Factorise full Hessian if no bounds/constraints are active. */
+		if (hasCholesky == BT_FALSE)
+			if ( setupCholeskyDecomposition( ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_INIT_FAILED_CHOLESKY );
+		/* ... else we use user provided Cholesky factorization. At the moment
+		 * we can do that only for cold-started solver. */
+	}
+	else
+	{
+		/* Factorise projected Hessian if there active bounds/constraints. */
+		if ( setupCholeskyDecompositionProjected( ) != SUCCESSFUL_RETURN )
+			return THROWERROR( RET_INIT_FAILED_CHOLESKY );
+		/* TODO: use user-supplied Hessian decomposition. R_Z = R * Z. */
+	}
+
+	/* 5) Store original QP formulation... */
+	real_t g_original[NVMAX];
+	real_t lb_original[NVMAX];
+	real_t ub_original[NVMAX];
+	real_t lbA_original[NCMAX_ALLOC];
+	real_t ubA_original[NCMAX_ALLOC];
+
+	for( i=0; i<nV; ++i )
+	{
+		g_original[i] = g[i];
+		lb_original[i] = lb[i];
+		ub_original[i] = ub[i];
+	}
+
+	for( i=0; i<nC; ++i )
+	{
+		lbA_original[i] = lbA[i];
+		ubA_original[i] = ubA[i];
+	}
+
+	/* ... and setup QP data of an auxiliary QP having an optimal solution
+	 * as specified by the user (or xOpt = yOpt = 0, by default). */
+	if ( setupAuxiliaryQPgradient( ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_INIT_FAILED );
+
+	if ( setupAuxiliaryQPbounds( &auxiliaryBounds,&auxiliaryConstraints,BT_TRUE ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_INIT_FAILED );
+
+	status = QPS_AUXILIARYQPSOLVED;
+
+
+	/* III) SOLVE ACTUAL INITIAL QP: */
+	/* Use hotstart method to find the solution of the original initial QP,... */
+	returnValue returnvalue = hotstart( g_original,lb_original,ub_original,lbA_original,ubA_original, nWSR,0 );
+
+
+	/* ... check for infeasibility and unboundedness... */
+	if ( isInfeasible( ) == BT_TRUE )
+		return THROWERROR( RET_INIT_FAILED_INFEASIBILITY );
+
+	if ( isUnbounded( ) == BT_TRUE )
+		return THROWERROR( RET_INIT_FAILED_UNBOUNDEDNESS );
+
+	/* ... and internal errors. */
+	if ( ( returnvalue != SUCCESSFUL_RETURN ) && ( returnvalue != RET_MAX_NWSR_REACHED )  &&
+	     ( returnvalue != RET_INACCURATE_SOLUTION ) && ( returnvalue != RET_NO_SOLUTION ) )
+		return THROWERROR( RET_INIT_FAILED_HOTSTART );
+
+
+	/* stop runtime measurement */
+	if ( cputime != 0 )
+		*cputime = getCPUtime( ) - starttime;
+
+	if ( printlevel == PL_HIGH )
+		THROWINFO( RET_INIT_SUCCESSFUL );
+
+	return returnvalue;
+}
+
+
+/*
+ *	o b t a i n A u x i l i a r y W o r k i n g S e t
+ */
+returnValue QProblem::obtainAuxiliaryWorkingSet(	const real_t* const xOpt, const real_t* const yOpt,
+													const Bounds* const guessedBounds, const Constraints* const guessedConstraints,
+													Bounds* auxiliaryBounds, Constraints* auxiliaryConstraints
+													) const
+{
+	int i = 0;
+	int nV = getNV( );
+	int nC = getNC( );
+
+
+	/* 1) Ensure that desiredBounds is allocated (and different from guessedBounds). */
+	if ( ( auxiliaryBounds == 0 ) || ( auxiliaryBounds == guessedBounds ) )
+		return THROWERROR( RET_INVALID_ARGUMENTS );
+
+	if ( ( auxiliaryConstraints == 0 ) || ( auxiliaryConstraints == guessedConstraints ) )
+		return THROWERROR( RET_INVALID_ARGUMENTS );
+
+
+	SubjectToStatus guessedStatus;
+
+	/* 2) Setup working set of bounds for auxiliary initial QP. */
+	if ( QProblemB::obtainAuxiliaryWorkingSet( xOpt,yOpt,guessedBounds, auxiliaryBounds ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+
+	/* 3) Setup working set of constraints for auxiliary initial QP. */
+	if ( guessedConstraints != 0 )
+	{
+		/* If an initial working set is specific, use it!
+		 * Moreover, add all equality constraints if specified. */
+		for( i=0; i<nC; ++i )
+		{
+			guessedStatus = guessedConstraints->getStatus( i );
+
+			if ( constraints.getType( i ) == ST_EQUALITY )
+			{
+				if ( auxiliaryConstraints->setupConstraint( i,ST_LOWER ) != SUCCESSFUL_RETURN )
+					return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+			}
+			else
+			{
+				if ( auxiliaryConstraints->setupConstraint( i,guessedStatus ) != SUCCESSFUL_RETURN )
+					return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+			}
+		}
+	}
+	else	/* No initial working set specified. */
+	{
+		/* Obtain initial working set by "clipping". */
+		if ( ( xOpt != 0 ) && ( yOpt == 0 ) )
+		{
+			for( i=0; i<nC; ++i )
+			{
+				if ( Ax[i] <= lbA[i] + BOUNDTOL )
+				{
+					if ( auxiliaryConstraints->setupConstraint( i,ST_LOWER ) != SUCCESSFUL_RETURN )
+						return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+					continue;
+				}
+
+				if ( Ax[i] >= ubA[i] - BOUNDTOL )
+				{
+					if ( auxiliaryConstraints->setupConstraint( i,ST_UPPER ) != SUCCESSFUL_RETURN )
+							return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+					continue;
+				}
+
+				/* Moreover, add all equality constraints if specified. */
+				if ( constraints.getType( i ) == ST_EQUALITY )
+				{
+					if ( auxiliaryConstraints->setupConstraint( i,ST_LOWER ) != SUCCESSFUL_RETURN )
+						return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+				}
+				else
+				{
+					if ( auxiliaryConstraints->setupConstraint( i,ST_INACTIVE ) != SUCCESSFUL_RETURN )
+						return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+				}
+			}
+		}
+
+		/* Obtain initial working set in accordance to sign of dual solution vector. */
+		if ( ( xOpt == 0 ) && ( yOpt != 0 ) )
+		{
+			for( i=0; i<nC; ++i )
+			{
+				if ( yOpt[nV+i] > ZERO )
+				{
+					if ( auxiliaryConstraints->setupConstraint( i,ST_LOWER ) != SUCCESSFUL_RETURN )
+						return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+					continue;
+				}
+
+				if ( yOpt[nV+i] < -ZERO )
+				{
+					if ( auxiliaryConstraints->setupConstraint( i,ST_UPPER ) != SUCCESSFUL_RETURN )
+						return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+					continue;
+				}
+
+				/* Moreover, add all equality constraints if specified. */
+				if ( constraints.getType( i ) == ST_EQUALITY )
+				{
+					if ( auxiliaryConstraints->setupConstraint( i,ST_LOWER ) != SUCCESSFUL_RETURN )
+						return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+				}
+				else
+				{
+					if ( auxiliaryConstraints->setupConstraint( i,ST_INACTIVE ) != SUCCESSFUL_RETURN )
+						return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+				}
+			}
+		}
+
+		/* If xOpt and yOpt are null pointer and no initial working is specified,
+		 * start with empty working set (or implicitly fixed bounds and equality constraints only)
+		 * for auxiliary QP. */
+		if ( ( xOpt == 0 ) && ( yOpt == 0 ) )
+		{
+			for( i=0; i<nC; ++i )
+			{
+				/* Only add all equality constraints if specified. */
+				if ( constraints.getType( i ) == ST_EQUALITY )
+				{
+					if ( auxiliaryConstraints->setupConstraint( i,ST_LOWER ) != SUCCESSFUL_RETURN )
+						return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+				}
+				else
+				{
+					if ( auxiliaryConstraints->setupConstraint( i,ST_INACTIVE ) != SUCCESSFUL_RETURN )
+						return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+				}
+			}
+		}
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+
+/*
+ *	s e t u p A u x i l i a r y W o r k i n g S e t
+ */
+returnValue QProblem::setupAuxiliaryWorkingSet(	const Bounds* const auxiliaryBounds,
+												const Constraints* const auxiliaryConstraints,
+												BooleanType setupAfresh
+												)
+{
+	int i;
+	int nV = getNV( );
+	int nC = getNC( );
+
+	/* consistency checks */
+	if ( auxiliaryBounds != 0 )
+	{
+		for( i=0; i<nV; ++i )
+			if ( ( bounds.getStatus( i ) == ST_UNDEFINED ) || ( auxiliaryBounds->getStatus( i ) == ST_UNDEFINED ) )
+				return THROWERROR( RET_UNKNOWN_BUG );
+	}
+	else
+	{
+		return THROWERROR( RET_INVALID_ARGUMENTS );
+	}
+
+	if ( auxiliaryConstraints != 0 )
+	{
+		for( i=0; i<nC; ++i )
+			if ( ( constraints.getStatus( i ) == ST_UNDEFINED ) || ( auxiliaryConstraints->getStatus( i ) == ST_UNDEFINED ) )
+				return THROWERROR( RET_UNKNOWN_BUG );
+	}
+	else
+	{
+		return THROWERROR( RET_INVALID_ARGUMENTS );
+	}
+
+
+	/* I) SETUP CHOLESKY FLAG:
+	 *    Cholesky decomposition shall only be updated if working set
+	 *    shall be updated (i.e. NOT setup afresh!) */
+	BooleanType updateCholesky;
+	if ( setupAfresh == BT_TRUE )
+		updateCholesky = BT_FALSE;
+	else
+		updateCholesky = BT_TRUE;
+
+
+	/* II) REMOVE FORMERLY ACTIVE (CONSTRAINTS') BOUNDS (IF NECESSARY): */
+	if ( setupAfresh == BT_FALSE )
+	{
+		/* 1) Remove all active constraints that shall be inactive AND
+		*    all active constraints that are active at the wrong bound. */
+		for( i=0; i<nC; ++i )
+		{
+			if ( ( constraints.getStatus( i ) == ST_LOWER ) && ( auxiliaryConstraints->getStatus( i ) != ST_LOWER ) )
+				if ( removeConstraint( i,updateCholesky ) != SUCCESSFUL_RETURN )
+					return THROWERROR( RET_SETUP_WORKINGSET_FAILED );
+
+			if ( ( constraints.getStatus( i ) == ST_UPPER ) && ( auxiliaryConstraints->getStatus( i ) != ST_UPPER ) )
+				if ( removeConstraint( i,updateCholesky ) != SUCCESSFUL_RETURN )
+					return THROWERROR( RET_SETUP_WORKINGSET_FAILED );
+		}
+
+		/* 2) Remove all active bounds that shall be inactive AND
+		*    all active bounds that are active at the wrong bound. */
+		for( i=0; i<nV; ++i )
+		{
+			if ( ( bounds.getStatus( i ) == ST_LOWER ) && ( auxiliaryBounds->getStatus( i ) != ST_LOWER ) )
+				if ( removeBound( i,updateCholesky ) != SUCCESSFUL_RETURN )
+					return THROWERROR( RET_SETUP_WORKINGSET_FAILED );
+
+			if ( ( bounds.getStatus( i ) == ST_UPPER ) && ( auxiliaryBounds->getStatus( i ) != ST_UPPER ) )
+				if ( removeBound( i,updateCholesky ) != SUCCESSFUL_RETURN )
+					return THROWERROR( RET_SETUP_WORKINGSET_FAILED );
+		}
+	}
+
+
+	/* III) ADD NEWLY ACTIVE (CONSTRAINTS') BOUNDS: */
+	/* 1) Add all inactive bounds that shall be active AND
+	 *    all formerly active bounds that have been active at the wrong bound. */
+	for( i=0; i<nV; ++i )
+	{
+		if ( ( bounds.getStatus( i ) == ST_INACTIVE ) && ( auxiliaryBounds->getStatus( i ) != ST_INACTIVE ) )
+		{
+			/* Add bound only if it is linearly independent from the current working set. */
+			if ( addBound_checkLI( i ) == RET_LINEARLY_INDEPENDENT )
+			{
+				if ( addBound( i,auxiliaryBounds->getStatus( i ),updateCholesky ) != SUCCESSFUL_RETURN )
+					return THROWERROR( RET_SETUP_WORKINGSET_FAILED );
+			}
+		}
+	}
+
+	/* 2) Add all inactive constraints that shall be active AND
+	 *    all formerly active constraints that have been active at the wrong bound. */
+	for( i=0; i<nC; ++i )
+	{
+		if ( ( auxiliaryConstraints->getStatus( i ) == ST_LOWER ) || ( auxiliaryConstraints->getStatus( i ) == ST_UPPER ) )
+		{
+			/* formerly inactive */
+			if ( constraints.getStatus( i ) == ST_INACTIVE )
+			{
+				/* Add constraint only if it is linearly independent from the current working set. */
+				if ( addConstraint_checkLI( i ) == RET_LINEARLY_INDEPENDENT )
+				{
+					if ( addConstraint( i,auxiliaryConstraints->getStatus( i ),updateCholesky ) != SUCCESSFUL_RETURN )
+						return THROWERROR( RET_SETUP_WORKINGSET_FAILED );
+				}
+			}
+		}
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s e t u p A u x i l i a r y Q P s o l u t i o n
+ */
+returnValue QProblem::setupAuxiliaryQPsolution(	const real_t* const xOpt, const real_t* const yOpt
+												)
+{
+	int i, j;
+	int nV = getNV( );
+	int nC = getNC( );
+
+
+	/* Setup primal/dual solution vector for auxiliary initial QP:
+	 * if a null pointer is passed, a zero vector is assigned;
+	 *  old solution vector is kept if pointer to internal solution vevtor is passed. */
+	if ( xOpt != 0 )
+	{
+		if ( xOpt != x )
+			for( i=0; i<nV; ++i )
+				x[i] = xOpt[i];
+
+		for ( j=0; j<nC; ++j )
+		{
+			Ax[j] = 0.0;
+
+			for( i=0; i<nV; ++i )
+				Ax[j] += A[j*NVMAX + i] * x[i];
+		}
+	}
+	else
+	{
+		for( i=0; i<nV; ++i )
+			x[i] = 0.0;
+
+		for ( j=0; j<nC; ++j )
+			Ax[j] = 0.0;
+	}
+
+	if ( yOpt != 0 )
+	{
+		if ( yOpt != y )
+			for( i=0; i<nV+nC; ++i )
+				y[i] = yOpt[i];
+	}
+	else
+	{
+		for( i=0; i<nV+nC; ++i )
+			y[i] = 0.0;
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s e t u p A u x i l i a r y Q P g r a d i e n t
+ */
+returnValue QProblem::setupAuxiliaryQPgradient( )
+{
+	int i, j;
+	int nV = getNV( );
+	int nC = getNC( );
+
+
+	/* Setup gradient vector: g = -H*x + [Id A]'*[yB yC]. */
+	for ( i=0; i<nV; ++i )
+	{
+		/* Id'*yB */
+		g[i] = y[i];
+
+		/* A'*yC */
+		for ( j=0; j<nC; ++j )
+			g[i] += A[j*NVMAX + i] * y[nV+j];
+
+		/* -H*x */
+		for ( j=0; j<nV; ++j )
+			g[i] -= H[i*NVMAX + j] * x[j];
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s e t u p A u x i l i a r y Q P b o u n d s
+ */
+returnValue QProblem::setupAuxiliaryQPbounds(	const Bounds* const auxiliaryBounds,
+												const Constraints* const auxiliaryConstraints,
+												BooleanType useRelaxation
+												)
+{
+	int i;
+	int nV = getNV( );
+	int nC = getNC( );
+
+
+	/* 1) Setup bound vectors. */
+	for ( i=0; i<nV; ++i )
+	{
+		switch ( bounds.getStatus( i ) )
+		{
+			case ST_INACTIVE:
+				if ( useRelaxation == BT_TRUE )
+				{
+					if ( bounds.getType( i ) == ST_EQUALITY )
+					{
+						lb[i] = x[i];
+						ub[i] = x[i];
+					}
+					else
+					{
+						/* If a bound is inactive although it was supposed to be
+						* active by the auxiliaryBounds, it could not be added
+						* due to linear dependence. Thus set it "strongly inactive". */
+						if ( auxiliaryBounds->getStatus( i ) == ST_LOWER )
+							lb[i] = x[i];
+						else
+							lb[i] = x[i] - BOUNDRELAXATION;
+
+						if ( auxiliaryBounds->getStatus( i ) == ST_UPPER )
+							ub[i] = x[i];
+						else
+							ub[i] = x[i] + BOUNDRELAXATION;
+					}
+				}
+				break;
+
+			case ST_LOWER:
+				lb[i] = x[i];
+				if ( bounds.getType( i ) == ST_EQUALITY )
+				{
+					ub[i] = x[i];
+				}
+				else
+				{
+					if ( useRelaxation == BT_TRUE )
+						ub[i] = x[i] + BOUNDRELAXATION;
+				}
+				break;
+
+			case ST_UPPER:
+				ub[i] = x[i];
+				if ( bounds.getType( i ) == ST_EQUALITY )
+				{
+					lb[i] = x[i];
+				}
+				else
+				{
+					if ( useRelaxation == BT_TRUE )
+						lb[i] = x[i] - BOUNDRELAXATION;
+				}
+				break;
+
+			default:
+				return THROWERROR( RET_UNKNOWN_BUG );
+		}
+	}
+
+	/* 2) Setup constraints vectors. */
+	for ( i=0; i<nC; ++i )
+	{
+		switch ( constraints.getStatus( i ) )
+		{
+			case ST_INACTIVE:
+				if ( useRelaxation == BT_TRUE )
+				{
+					if ( constraints.getType( i ) == ST_EQUALITY )
+					{
+						lbA[i] = Ax[i];
+						ubA[i] = Ax[i];
+					}
+					else
+					{
+						/* If a constraint is inactive although it was supposed to be
+						* active by the auxiliaryConstraints, it could not be added
+						* due to linear dependence. Thus set it "strongly inactive". */
+						if ( auxiliaryConstraints->getStatus( i ) == ST_LOWER )
+							lbA[i] = Ax[i];
+						else
+							lbA[i] = Ax[i] - BOUNDRELAXATION;
+
+						if ( auxiliaryConstraints->getStatus( i ) == ST_UPPER )
+							ubA[i] = Ax[i];
+						else
+							ubA[i] = Ax[i] + BOUNDRELAXATION;
+					}
+				}
+				break;
+
+			case ST_LOWER:
+				lbA[i] = Ax[i];
+				if ( constraints.getType( i ) == ST_EQUALITY )
+				{
+					ubA[i] = Ax[i];
+				}
+				else
+				{
+					if ( useRelaxation == BT_TRUE )
+						ubA[i] = Ax[i] + BOUNDRELAXATION;
+				}
+				break;
+
+			case ST_UPPER:
+				ubA[i] = Ax[i];
+				if ( constraints.getType( i ) == ST_EQUALITY )
+				{
+					lbA[i] = Ax[i];
+				}
+				else
+				{
+					if ( useRelaxation == BT_TRUE )
+						lbA[i] = Ax[i] - BOUNDRELAXATION;
+				}
+				break;
+
+			default:
+				return THROWERROR( RET_UNKNOWN_BUG );
+		}
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	a d d C o n s t r a i n t
+ */
+returnValue QProblem::addConstraint(	int number, SubjectToStatus C_status,
+										BooleanType updateCholesky
+										)
+{
+	int i, j, ii;
+
+	/* consistency checks */
+	if ( constraints.getStatus( number ) != ST_INACTIVE )
+		return THROWERROR( RET_CONSTRAINT_ALREADY_ACTIVE );
+
+	if ( ( constraints.getNC( ) - getNAC( ) ) == constraints.getNUC( ) )
+		return THROWERROR( RET_ALL_CONSTRAINTS_ACTIVE );
+
+	if ( ( getStatus( ) == QPS_NOTINITIALISED )    ||
+		 ( getStatus( ) == QPS_AUXILIARYQPSOLVED ) ||
+		 ( getStatus( ) == QPS_HOMOTOPYQPSOLVED )  ||
+		 ( getStatus( ) == QPS_SOLVED )            )
+	{
+		return THROWERROR( RET_UNKNOWN_BUG );
+	}
+
+
+	/* I) ENSURE LINEAR INDEPENDENCE OF THE WORKING SET,
+	 *    i.e. remove a constraint or bound if linear dependence occurs. */
+	/* check for LI only if Cholesky decomposition shall be updated! */
+	if ( updateCholesky == BT_TRUE )
+	{
+		returnValue ensureLIreturnvalue = addConstraint_ensureLI( number,C_status );
+
+		switch ( ensureLIreturnvalue )
+		{
+			case SUCCESSFUL_RETURN:
+				break;
+
+			case RET_LI_RESOLVED:
+				break;
+
+			case RET_ENSURELI_FAILED_NOINDEX:
+				return THROWERROR( RET_ADDCONSTRAINT_FAILED_INFEASIBILITY );
+
+			case RET_ENSURELI_FAILED_CYCLING:
+				return THROWERROR( RET_ADDCONSTRAINT_FAILED_INFEASIBILITY );
+
+			default:
+				return THROWERROR( RET_ENSURELI_FAILED );
+		}
+	}
+
+	/* some definitions */
+	int nFR = getNFR( );
+	int nAC = getNAC( );
+	int nZ  = getNZ( );
+
+	int tcol = sizeT - nAC;
+
+
+	int FR_idx[NVMAX];
+	if ( bounds.getFree( )->getNumberArray( FR_idx ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_ADDCONSTRAINT_FAILED );
+
+	real_t aFR[NVMAX];
+	real_t wZ[NVMAX];
+	for( i=0; i<nZ; ++i )
+		wZ[i] = 0.0;
+
+
+	/* II) ADD NEW ACTIVE CONSTRAINT TO MATRIX T: */
+	/* 1) Add row [wZ wY] = aFR'*[Z Y] to the end of T: assign aFR. */
+	for( i=0; i<nFR; ++i )
+	{
+		ii = FR_idx[i];
+		aFR[i] = A[number*NVMAX + ii];
+	}
+
+	/* calculate wZ */
+	for( i=0; i<nFR; ++i )
+	{
+		ii = FR_idx[i];
+		for( j=0; j<nZ; ++j )
+			wZ[j] += aFR[i] * Q[ii*NVMAX + j];
+	}
+
+	/* 2) Calculate wY and store it directly into T. */
+	if ( nAC > 0 )
+	{
+		for( j=0; j<nAC; ++j )
+			T[nAC*NVMAX + tcol+j] = 0.0;
+		for( i=0; i<nFR; ++i )
+		{
+			ii = FR_idx[i];
+			for( j=0; j<nAC; ++j )
+				T[nAC*NVMAX + tcol+j] += aFR[i] * Q[ii*NVMAX + nZ+j];
+		}
+	}
+
+
+	real_t c, s;
+
+	if ( nZ > 0 )
+	{
+		/* II) RESTORE TRIANGULAR FORM OF T: */
+		/*     Use column-wise Givens rotations to restore reverse triangular form
+		*      of T, simultanenous change of Q (i.e. Z) and R. */
+		for( j=0; j<nZ-1; ++j )
+		{
+			computeGivens( wZ[j+1],wZ[j], wZ[j+1],wZ[j],c,s );
+
+			for( i=0; i<nFR; ++i )
+			{
+				ii = FR_idx[i];
+				applyGivens( c,s,Q[ii*NVMAX + 1+j],Q[ii*NVMAX + j], Q[ii*NVMAX + 1+j],Q[ii*NVMAX + j] );
+			}
+
+			if ( ( updateCholesky == BT_TRUE ) && ( hessianType != HST_IDENTITY ) )
+			{
+				for( i=0; i<=j+1; ++i )
+					applyGivens( c,s,R[i*NVMAX + 1+j],R[i*NVMAX + j], R[i*NVMAX + 1+j],R[i*NVMAX + j] );
+			}
+		}
+
+		T[nAC*NVMAX + tcol-1] = wZ[nZ-1];
+
+
+		if ( ( updateCholesky == BT_TRUE ) && ( hessianType != HST_IDENTITY ) )
+		{
+			/* III) RESTORE TRIANGULAR FORM OF R:
+			 *      Use row-wise Givens rotations to restore upper triangular form of R. */
+			for( i=0; i<nZ-1; ++i )
+			{
+				computeGivens( R[i*NVMAX + i],R[(1+i)*NVMAX + i], R[i*NVMAX + i],R[(1+i)*NVMAX + i],c,s );
+
+				for( j=(1+i); j<(nZ-1); ++j ) /* last column of R is thrown away */
+					applyGivens( c,s,R[i*NVMAX + j],R[(1+i)*NVMAX + j], R[i*NVMAX + j],R[(1+i)*NVMAX + j] );
+			}
+			/* last column of R is thrown away */
+			for( i=0; i<nZ; ++i )
+				R[i*NVMAX + nZ-1] = 0.0;
+		}
+	}
+
+
+	/* IV) UPDATE INDICES */
+	if ( constraints.moveInactiveToActive( number,C_status ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_ADDCONSTRAINT_FAILED );
+
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+
+/*
+ *	a d d C o n s t r a i n t _ c h e c k L I
+ */
+returnValue QProblem::addConstraint_checkLI( int number )
+{
+	int i, j, jj;
+	int nFR = getNFR( );
+	int nZ  = getNZ( );
+
+	int FR_idx[NVMAX];
+	if ( bounds.getFree( )->getNumberArray( FR_idx ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_INDEXLIST_CORRUPTED );
+
+	/* Check if constraint <number> is linearly independent from the
+	   the active ones (<=> is element of null space of Afr). */
+	real_t sum;
+
+	for( i=0; i<nZ; ++i )
+	{
+		sum = 0.0;
+		for( j=0; j<nFR; ++j )
+		{
+			jj = FR_idx[j];
+			sum += Q[jj*NVMAX + i] * A[number*NVMAX + jj];
+		}
+
+		if ( getAbs( sum ) > 10.0*EPS )
+			return RET_LINEARLY_INDEPENDENT;
+	}
+
+	return RET_LINEARLY_DEPENDENT;
+}
+
+
+/*
+ *	a d d C o n s t r a i n t _ e n s u r e L I
+ */
+returnValue QProblem::addConstraint_ensureLI( int number, SubjectToStatus C_status )
+{
+	int i, j, ii, jj;
+	int nV  = getNV( );
+	int nFR = getNFR( );
+	int nFX = getNFX( );
+	int nAC = getNAC( );
+	int nZ  = getNZ( );
+
+
+	/* I) Check if new constraint is linearly independent from the active ones. */
+	returnValue returnvalueCheckLI = addConstraint_checkLI( number );
+
+	if ( returnvalueCheckLI == RET_INDEXLIST_CORRUPTED )
+		return THROWERROR( RET_ENSURELI_FAILED );
+
+	if ( returnvalueCheckLI == RET_LINEARLY_INDEPENDENT )
+		return SUCCESSFUL_RETURN;
+
+
+ 	/* II) NEW CONSTRAINT IS LINEARLY DEPENDENT: */
+	/* 1) Determine coefficients of linear combination,
+	 *    cf. M.J. Best. Applied Mathematics and Parallel Computing, chapter:
+	 *    An Algorithm for the Solution of the Parametric Quadratic Programming
+	 *    Problem, pages 57-76. Physica-Verlag, Heidelberg, 1996. */
+	int FR_idx[NVMAX];
+	if ( bounds.getFree( )->getNumberArray( FR_idx ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_ENSURELI_FAILED );
+
+	int FX_idx[NVMAX];
+	if ( bounds.getFixed( )->getNumberArray( FX_idx ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_ENSURELI_FAILED );
+
+	real_t xiC[NCMAX_ALLOC];
+	real_t xiC_TMP[NCMAX_ALLOC];
+	real_t xiB[NVMAX];
+
+	/* 2) Calculate xiC */
+	if ( nAC > 0 )
+	{
+		if ( C_status == ST_LOWER )
+		{
+			for( i=0; i<nAC; ++i )
+			{
+				xiC_TMP[i] = 0.0;
+				for( j=0; j<nFR; ++j )
+				{
+					jj = FR_idx[j];
+					xiC_TMP[i] += Q[jj*NVMAX + nZ+i] * A[number*NVMAX + jj];
+				}
+			}
+		}
+		else
+		{
+			for( i=0; i<nAC; ++i )
+			{
+				xiC_TMP[i] = 0.0;
+				for( j=0; j<nFR; ++j )
+				{
+					jj = FR_idx[j];
+					xiC_TMP[i] -= Q[jj*NVMAX + nZ+i] * A[number*NVMAX + jj];
+				}
+			}
+		}
+
+		if ( backsolveT( xiC_TMP, BT_TRUE, xiC ) != SUCCESSFUL_RETURN )
+			return THROWERROR( RET_ENSURELI_FAILED_TQ );
+	}
+
+	/* 3) Calculate xiB. */
+	int AC_idx[NCMAX_ALLOC];
+	if ( constraints.getActive( )->getNumberArray( AC_idx ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_ENSURELI_FAILED );
+
+	if ( C_status == ST_LOWER )
+	{
+		for( i=0; i<nFX; ++i )
+		{
+			ii = FX_idx[i];
+			xiB[i] = A[number*NVMAX + ii];
+
+			for( j=0; j<nAC; ++j )
+			{
+				jj = AC_idx[j];
+				xiB[i] -= A[jj*NVMAX + ii] * xiC[j];
+			}
+		}
+	}
+	else
+	{
+		for( i=0; i<nFX; ++i )
+		{
+			ii = FX_idx[i];
+			xiB[i] = -A[number*NVMAX + ii];
+
+			for( j=0; j<nAC; ++j )
+			{
+				jj = AC_idx[j];
+				xiB[i] -= A[jj*NVMAX + ii] * xiC[j];
+			}
+		}
+	}
+
+
+	/* III) DETERMINE CONSTRAINT/BOUND TO BE REMOVED. */
+	real_t y_min = INFTY * INFTY;
+	int y_min_number = -1;
+	BooleanType y_min_isBound = BT_FALSE;
+
+	/* 1) Constraints. */
+	for( i=0; i<nAC; ++i )
+	{
+		ii = AC_idx[i];
+
+		if ( constraints.getStatus( ii ) == ST_LOWER )
+		{
+			if ( ( xiC[i] > ZERO ) && ( y[nV+ii] >= 0.0 ) )
+			{
+				if ( y[nV+ii]/xiC[i] < y_min )
+				{
+					y_min = y[nV+ii]/xiC[i];
+					y_min_number = ii;
+				}
+			}
+		}
+		else
+		{
+			if ( ( xiC[i] < -ZERO ) && ( y[nV+ii] <= 0.0 ) )
+			{
+				if ( y[nV+ii]/xiC[i] < y_min )
+				{
+					y_min = y[nV+ii]/xiC[i];
+					y_min_number = ii;
+				}
+			}
+		}
+	}
+
+	/* 2) Bounds. */
+	for( i=0; i<nFX; ++i )
+	{
+		ii = FX_idx[i];
+
+		if ( bounds.getStatus( ii ) == ST_LOWER )
+		{
+			if ( ( xiB[i] > ZERO ) && ( y[ii] >= 0.0 ) )
+			{
+				if ( y[ii]/xiB[i] < y_min )
+				{
+					y_min = y[ii]/xiB[i];
+					y_min_number = ii;
+					y_min_isBound = BT_TRUE;
+				}
+			}
+		}
+		else
+		{
+			if ( ( xiB[i] < -ZERO ) && ( y[ii] <= 0.0 ) )
+			{
+				if ( y[ii]/xiB[i] < y_min )
+				{
+					y_min = y[ii]/xiB[i];
+					y_min_number = ii;
+					y_min_isBound = BT_TRUE;
+				}
+			}
+		}
+	}
+
+	/* setup output preferences */
+	#ifdef PC_DEBUG
+	char messageString[80];
+	VisibilityStatus visibilityStatus;
+
+	if ( printlevel == PL_HIGH )
+		visibilityStatus = VS_VISIBLE;
+	else
+		visibilityStatus = VS_HIDDEN;
+	#endif
+
+
+	/* IV) REMOVE CONSTRAINT/BOUND FOR RESOLVING LINEAR DEPENDENCE: */
+	if ( y_min_number >= 0 )
+	{
+		/* 1) Check for cycling due to infeasibility. */
+		if ( ( cyclingManager.getCyclingStatus( number,BT_FALSE ) == CYC_PREV_REMOVED ) &&
+			 ( cyclingManager.getCyclingStatus( y_min_number,y_min_isBound ) == CYC_PREV_ADDED ) )
+		{
+			infeasible = BT_TRUE;
+
+			return THROWERROR( RET_ENSURELI_FAILED_CYCLING );
+		}
+		else
+		{
+			/* set cycling data */
+			cyclingManager.clearCyclingData( );
+			cyclingManager.setCyclingStatus( number,BT_FALSE, CYC_PREV_ADDED );
+			cyclingManager.setCyclingStatus( y_min_number,y_min_isBound, CYC_PREV_REMOVED );
+		}
+
+		/* 2) Update Lagrange multiplier... */
+		for( i=0; i<nAC; ++i )
+		{
+			ii = AC_idx[i];
+			y[nV+ii] -= y_min * xiC[i];
+		}
+		for( i=0; i<nFX; ++i )
+		{
+			ii = FX_idx[i];
+			y[ii] -= y_min * xiB[i];
+		}
+
+		/* ... also for newly active constraint... */
+		if ( C_status == ST_LOWER )
+			y[nV+number] = y_min;
+		else
+			y[nV+number] = -y_min;
+
+		/* ... and for constraint to be removed. */
+		if ( y_min_isBound == BT_TRUE )
+		{
+			#ifdef PC_DEBUG
+			sprintf( messageString,"bound no. %d.",y_min_number );
+			getGlobalMessageHandler( )->throwInfo( RET_REMOVE_FROM_ACTIVESET,messageString,__FUNCTION__,__FILE__,__LINE__,visibilityStatus );
+			#endif
+
+			if ( removeBound( y_min_number,BT_TRUE ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_REMOVE_FROM_ACTIVESET_FAILED );
+
+			y[y_min_number] = 0.0;
+		}
+		else
+		{
+			#ifdef PC_DEBUG
+			sprintf( messageString,"constraint no. %d.",y_min_number );
+			getGlobalMessageHandler( )->throwInfo( RET_REMOVE_FROM_ACTIVESET,messageString,__FUNCTION__,__FILE__,__LINE__,visibilityStatus );
+			#endif
+
+			if ( removeConstraint( y_min_number,BT_TRUE ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_REMOVE_FROM_ACTIVESET_FAILED );
+
+			y[nV+y_min_number] = 0.0;
+		}
+	}
+	else
+	{
+		/* no constraint/bound can be removed => QP is infeasible! */
+		infeasible = BT_TRUE;
+
+		return THROWERROR( RET_ENSURELI_FAILED_NOINDEX );
+	}
+
+	return getGlobalMessageHandler( )->throwInfo( RET_LI_RESOLVED,0,__FUNCTION__,__FILE__,__LINE__,VS_HIDDEN );
+}
+
+
+
+/*
+ *	a d d B o u n d
+ */
+returnValue QProblem::addBound(	int number, SubjectToStatus B_status,
+								BooleanType updateCholesky
+								)
+{
+	int i, j, ii;
+
+	/* consistency checks */
+	if ( bounds.getStatus( number ) != ST_INACTIVE )
+		return THROWERROR( RET_BOUND_ALREADY_ACTIVE );
+
+	if ( getNFR( ) == bounds.getNUV( ) )
+		return THROWERROR( RET_ALL_BOUNDS_ACTIVE );
+
+	if ( ( getStatus( ) == QPS_NOTINITIALISED )    ||
+		 ( getStatus( ) == QPS_AUXILIARYQPSOLVED ) ||
+		 ( getStatus( ) == QPS_HOMOTOPYQPSOLVED )  ||
+ 		 ( getStatus( ) == QPS_SOLVED )            )
+	{
+		return THROWERROR( RET_UNKNOWN_BUG );
+	}
+
+
+	/* I) ENSURE LINEAR INDEPENDENCE OF THE WORKING SET,
+	 *    i.e. remove a constraint or bound if linear dependence occurs. */
+	/* check for LI only if Cholesky decomposition shall be updated! */
+	if ( updateCholesky == BT_TRUE )
+	{
+		returnValue ensureLIreturnvalue = addBound_ensureLI( number,B_status );
+
+		switch ( ensureLIreturnvalue )
+		{
+			case SUCCESSFUL_RETURN:
+				break;
+
+			case RET_LI_RESOLVED:
+				break;
+
+			case RET_ENSURELI_FAILED_NOINDEX:
+				return THROWERROR( RET_ADDBOUND_FAILED_INFEASIBILITY );
+
+			case RET_ENSURELI_FAILED_CYCLING:
+				return THROWERROR( RET_ADDBOUND_FAILED_INFEASIBILITY );
+
+			default:
+				return THROWERROR( RET_ENSURELI_FAILED );
+		}
+	}
+
+
+	/* some definitions */
+	int nFR = getNFR( );
+	int nAC = getNAC( );
+	int nZ  = getNZ( );
+
+	int tcol = sizeT - nAC;
+
+
+	/* I) SWAP INDEXLIST OF FREE VARIABLES:
+	 *    move the variable to be fixed to the end of the list of free variables. */
+	int lastfreenumber = bounds.getFree( )->getLastNumber( );
+	if ( lastfreenumber != number )
+		if ( bounds.swapFree( number,lastfreenumber ) != SUCCESSFUL_RETURN )
+			THROWERROR( RET_ADDBOUND_FAILED );
+
+
+	int FR_idx[NVMAX];
+	if ( bounds.getFree( )->getNumberArray( FR_idx ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_ADDBOUND_FAILED );
+
+	real_t w[NVMAX];
+
+
+	/* II) ADD NEW ACTIVE BOUND TO TOP OF MATRIX T: */
+	/* 1) add row [wZ wY] = [Z Y](number) at the top of T: assign w */
+	for( i=0; i<nFR; ++i )
+		w[i] = Q[FR_idx[nFR-1]*NVMAX + i];
+
+
+	/* 2) Use column-wise Givens rotations to restore reverse triangular form
+	 *    of the first row of T, simultanenous change of Q (i.e. Z) and R. */
+	real_t c, s;
+
+	for( j=0; j<nZ-1; ++j )
+	{
+		computeGivens( w[j+1],w[j], w[j+1],w[j],c,s );
+
+		for( i=0; i<nFR; ++i )
+		{
+			ii = FR_idx[i];
+			applyGivens( c,s,Q[ii*NVMAX + 1+j],Q[ii*NVMAX + j], Q[ii*NVMAX + 1+j],Q[ii*NVMAX + j] );
+		}
+
+		if ( ( updateCholesky == BT_TRUE ) && ( hessianType != HST_IDENTITY ) )
+		{
+			for( i=0; i<=j+1; ++i )
+				applyGivens( c,s,R[i*NVMAX + 1+j],R[i*NVMAX + j], R[i*NVMAX + 1+j],R[i*NVMAX + j] );
+		}
+	}
+
+
+	if ( nAC > 0 )	  /* ( nAC == 0 ) <=> ( nZ == nFR ) <=> Y and T are empty => nothing to do */
+	{
+		/* store new column a in a temporary vector instead of shifting T one column to the left */
+		real_t tmp[NCMAX_ALLOC];
+		for( i=0; i<nAC; ++i )
+			tmp[i] = 0.0;
+
+		{
+			j = nZ-1;
+
+			computeGivens( w[j+1],w[j], w[j+1],w[j],c,s );
+
+			for( i=0; i<nFR; ++i )
+			{
+				ii = FR_idx[i];
+				applyGivens( c,s,Q[ii*NVMAX + 1+j],Q[ii*NVMAX + j], Q[ii*NVMAX + 1+j],Q[ii*NVMAX + j] );
+			}
+
+			applyGivens( c,s,T[(nAC-1)*NVMAX + tcol],tmp[nAC-1], tmp[nAC-1],T[(nAC-1)*NVMAX + tcol] );
+		}
+
+		for( j=nZ; j<nFR-1; ++j )
+		{
+			computeGivens( w[j+1],w[j], w[j+1],w[j],c,s );
+
+			for( i=0; i<nFR; ++i )
+			{
+				ii = FR_idx[i];
+				applyGivens( c,s,Q[ii*NVMAX + 1+j],Q[ii*NVMAX + j], Q[ii*NVMAX + 1+j],Q[ii*NVMAX + j] );
+			}
+
+			for( i=(nFR-2-j); i<nAC; ++i )
+				applyGivens( c,s,T[i*NVMAX + 1+tcol-nZ+j],tmp[i], tmp[i],T[i*NVMAX + 1+tcol-nZ+j] );
+		}
+
+	}
+
+
+	if ( ( updateCholesky == BT_TRUE ) && ( hessianType != HST_IDENTITY ) )
+	{
+		/* III) RESTORE TRIANGULAR FORM OF R:
+		 *      use row-wise Givens rotations to restore upper triangular form of R */
+		for( i=0; i<nZ-1; ++i )
+		{
+			computeGivens( R[i*NVMAX + i],R[(1+i)*NVMAX + i], R[i*NVMAX + i],R[(1+i)*NVMAX + i],c,s );
+
+			for( j=(1+i); j<nZ-1; ++j ) /* last column of R is thrown away */
+				applyGivens( c,s,R[i*NVMAX + j],R[(1+i)*NVMAX + j], R[i*NVMAX + j],R[(1+i)*NVMAX + j] );
+		}
+		/* last column of R is thrown away */
+		for( i=0; i<nZ; ++i )
+			R[i*NVMAX + nZ-1] = 0.0;
+	}
+
+
+	/* IV) UPDATE INDICES */
+	if ( bounds.moveFreeToFixed( number,B_status ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_ADDBOUND_FAILED );
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	a d d B o u n d _ c h e c k L I
+ */
+returnValue QProblem::addBound_checkLI( int number )
+{
+	int i;
+
+	/* some definitions */
+	int nZ  = getNZ( );
+
+	/* Check if constraint <number> is linearly independent from the
+	   the active ones (<=> is element of null space of Afr). */
+	for( i=0; i<nZ; ++i )
+	{
+		if ( getAbs( Q[number*NVMAX + i] ) > EPS )
+			return RET_LINEARLY_INDEPENDENT;
+	}
+
+	return RET_LINEARLY_DEPENDENT;
+}
+
+
+/*
+ *	a d d B o u n d _ e n s u r e L I
+ */
+returnValue QProblem::addBound_ensureLI( int number, SubjectToStatus B_status )
+{
+	int i, j, ii, jj;
+	int nV  = getNV( );
+	int nFX = getNFX( );
+	int nAC = getNAC( );
+	int nZ  = getNZ( );
+
+
+	/* I) Check if new constraint is linearly independent from the active ones. */
+	returnValue returnvalueCheckLI = addBound_checkLI( number );
+
+	if ( returnvalueCheckLI == RET_LINEARLY_INDEPENDENT )
+		return SUCCESSFUL_RETURN;
+
+
+ 	/* II) NEW BOUND IS LINEARLY DEPENDENT: */
+	/* 1) Determine coefficients of linear combination,
+	 *    cf. M.J. Best. Applied Mathematics and Parallel Computing, chapter:
+	 *    An Algorithm for the Solution of the Parametric Quadratic Programming
+	 *    Problem, pages 57-76. Physica-Verlag, Heidelberg, 1996. */
+	int FR_idx[NVMAX];
+	if ( bounds.getFree( )->getNumberArray( FR_idx ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_ENSURELI_FAILED );
+
+	int FX_idx[NVMAX];
+	if ( bounds.getFixed( )->getNumberArray( FX_idx ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_ENSURELI_FAILED );
+
+	int AC_idx[NCMAX_ALLOC];
+	if ( constraints.getActive( )->getNumberArray( AC_idx ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_ENSURELI_FAILED );
+
+	real_t xiC[NCMAX_ALLOC];
+	real_t xiC_TMP[NCMAX_ALLOC];
+	real_t xiB[NVMAX];
+
+	/* 2) Calculate xiC. */
+	if ( nAC > 0 )
+	{
+		if ( B_status == ST_LOWER )
+		{
+			for( i=0; i<nAC; ++i )
+				xiC_TMP[i] = Q[number*NVMAX + nZ+i];
+		}
+		else
+		{
+			for( i=0; i<nAC; ++i )
+				xiC_TMP[i] = -Q[number*NVMAX + nZ+i];
+		}
+
+		if ( backsolveT( xiC_TMP, BT_TRUE, xiC ) != SUCCESSFUL_RETURN )
+			return THROWERROR( RET_ENSURELI_FAILED_TQ );
+	}
+
+	/* 3) Calculate xiB. */
+	for( i=0; i<nFX; ++i )
+	{
+		ii = FX_idx[i];
+
+		xiB[i] = 0.0;
+		for( j=0; j<nAC; ++j )
+		{
+			jj = AC_idx[j];
+			xiB[i] -= A[jj*NVMAX + ii] * xiC[j];
+		}
+	}
+
+
+	/* III) DETERMINE CONSTRAINT/BOUND TO BE REMOVED. */
+	real_t y_min = INFTY * INFTY;
+	int y_min_number = -1;
+	BooleanType y_min_isBound = BT_FALSE;
+
+	/* 1) Constraints. */
+	for( i=0; i<nAC; ++i )
+	{
+		ii = AC_idx[i];
+
+		if ( constraints.getStatus( ii ) == ST_LOWER )
+		{
+			if ( ( xiC[i] > ZERO ) && ( y[nV+ii] >= 0.0 ) )
+			{
+				if ( y[nV+ii]/xiC[i] < y_min )
+				{
+					y_min = y[nV+ii]/xiC[i];
+					y_min_number = ii;
+				}
+			}
+		}
+		else
+		{
+			if ( ( xiC[i] < -ZERO ) && ( y[nV+ii] <= 0.0 ) )
+			{
+				if ( y[nV+ii]/xiC[i] < y_min )
+				{
+					y_min = y[nV+ii]/xiC[i];
+					y_min_number = ii;
+				}
+			}
+		}
+	}
+
+	/* 2) Bounds. */
+	for( i=0; i<nFX; ++i )
+	{
+		ii = FX_idx[i];
+
+		if ( bounds.getStatus( ii ) == ST_LOWER )
+		{
+			if ( ( xiB[i] > ZERO ) && ( y[ii] >= 0.0 ) )
+			{
+				if ( y[ii]/xiB[i] < y_min )
+				{
+					y_min = y[ii]/xiB[i];
+					y_min_number = ii;
+					y_min_isBound = BT_TRUE;
+				}
+			}
+		}
+		else
+		{
+			if ( ( xiB[i] < -ZERO ) && ( y[ii] <= 0.0 ) )
+			{
+				if ( y[ii]/xiB[i] < y_min )
+				{
+					y_min = y[ii]/xiB[i];
+					y_min_number = ii;
+					y_min_isBound = BT_TRUE;
+				}
+			}
+		}
+	}
+
+	/* setup output preferences */
+	#ifdef PC_DEBUG
+	char messageString[80];
+	VisibilityStatus visibilityStatus;
+
+	if ( printlevel == PL_HIGH )
+		visibilityStatus = VS_VISIBLE;
+	else
+		visibilityStatus = VS_HIDDEN;
+	#endif
+
+
+	/* IV) REMOVE CONSTRAINT/BOUND FOR RESOLVING LINEAR DEPENDENCE: */
+	if ( y_min_number >= 0 )
+	{
+		/* 1) Check for cycling due to infeasibility. */
+		if ( ( cyclingManager.getCyclingStatus( number,BT_TRUE ) == CYC_PREV_REMOVED ) &&
+			 ( cyclingManager.getCyclingStatus( y_min_number,y_min_isBound ) == CYC_PREV_ADDED ) )
+		{
+			infeasible = BT_TRUE;
+
+			return THROWERROR( RET_ENSURELI_FAILED_CYCLING );
+		}
+		else
+		{
+			/* set cycling data */
+			cyclingManager.clearCyclingData( );
+			cyclingManager.setCyclingStatus( number,BT_TRUE, CYC_PREV_ADDED );
+			cyclingManager.setCyclingStatus( y_min_number,y_min_isBound, CYC_PREV_REMOVED );
+		}
+
+
+		/* 2) Update Lagrange multiplier... */
+		for( i=0; i<nAC; ++i )
+		{
+			ii = AC_idx[i];
+			y[nV+ii] -= y_min * xiC[i];
+		}
+		for( i=0; i<nFX; ++i )
+		{
+			ii = FX_idx[i];
+			y[ii] -= y_min * xiB[i];
+		}
+
+		/* ... also for newly active bound ... */
+		if ( B_status == ST_LOWER )
+			y[number] = y_min;
+		else
+			y[number] = -y_min;
+
+		/* ... and for bound to be removed. */
+		if ( y_min_isBound == BT_TRUE )
+		{
+			#ifdef PC_DEBUG
+			sprintf( messageString,"bound no. %d.",y_min_number );
+			getGlobalMessageHandler( )->throwInfo( RET_REMOVE_FROM_ACTIVESET,messageString,__FUNCTION__,__FILE__,__LINE__,visibilityStatus );
+			#endif
+
+			if ( removeBound( y_min_number,BT_TRUE ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_REMOVE_FROM_ACTIVESET_FAILED );
+
+			y[y_min_number] = 0.0;
+		}
+		else
+		{
+			#ifdef PC_DEBUG
+			sprintf( messageString,"constraint no. %d.",y_min_number );
+			getGlobalMessageHandler( )->throwInfo( RET_REMOVE_FROM_ACTIVESET,messageString,__FUNCTION__,__FILE__,__LINE__,visibilityStatus );
+			#endif
+
+			if ( removeConstraint( y_min_number,BT_TRUE ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_REMOVE_FROM_ACTIVESET_FAILED );
+
+			y[nV+y_min_number] = 0.0;
+		}
+	}
+	else
+	{
+		/* no constraint/bound can be removed => QP is infeasible! */
+		infeasible = BT_TRUE;
+
+		return THROWERROR( RET_ENSURELI_FAILED_NOINDEX );
+	}
+
+	return getGlobalMessageHandler( )->throwInfo( RET_LI_RESOLVED,0,__FUNCTION__,__FILE__,__LINE__,VS_HIDDEN );
+}
+
+
+
+/*
+ *	r e m o v e C o n s t r a i n t
+ */
+returnValue QProblem::removeConstraint(	int number,
+										BooleanType updateCholesky
+										)
+{
+	int i, j, ii, jj;
+
+	/* consistency check */
+	if ( ( getStatus( ) == QPS_NOTINITIALISED )    ||
+		 ( getStatus( ) == QPS_AUXILIARYQPSOLVED ) ||
+		 ( getStatus( ) == QPS_HOMOTOPYQPSOLVED )  ||
+ 		 ( getStatus( ) == QPS_SOLVED )            )
+	{
+		return THROWERROR( RET_UNKNOWN_BUG );
+	}
+
+	/* some definitions */
+	int nFR = getNFR( );
+	int nAC = getNAC( );
+	int nZ  = getNZ( );
+
+	int tcol = sizeT - nAC;
+	int number_idx = constraints.getActive( )->getIndex( number );
+
+
+	/* consistency checks */
+	if ( constraints.getStatus( number ) == ST_INACTIVE )
+		return THROWERROR( RET_CONSTRAINT_NOT_ACTIVE );
+
+	if ( ( number_idx < 0 ) || ( number_idx >= nAC ) )
+		return THROWERROR( RET_CONSTRAINT_NOT_ACTIVE );
+
+
+	int FR_idx[NVMAX];
+	if ( bounds.getFree( )->getNumberArray( FR_idx ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_REMOVECONSTRAINT_FAILED );
+
+
+	/* I) REMOVE <number>th ROW FROM T,
+	 *    i.e. shift rows number+1 through nAC  upwards (instead of the actual
+	 *    constraint number its corresponding index within matrix A is used). */
+	if ( number_idx < nAC-1 )
+	{
+		for( i=(number_idx+1); i<nAC; ++i )
+			for( j=(nAC-i-1); j<nAC; ++j )
+				T[(i-1)*NVMAX + tcol+j] = T[i*NVMAX + tcol+j];
+		/* gimmick: write zeros into the last row of T */
+		for( j=0; j<nAC; ++j )
+			T[(nAC-1)*NVMAX + tcol+j] = 0.0;
+
+
+		/* II) RESTORE TRIANGULAR FORM OF T,
+		 *     use column-wise Givens rotations to restore reverse triangular form
+		 *     of T simultanenous change of Q (i.e. Y). */
+		real_t c, s;
+
+		for( j=(nAC-2-number_idx); j>=0; --j )
+		{
+			computeGivens( T[(nAC-2-j)*NVMAX + tcol+1+j],T[(nAC-2-j)*NVMAX + tcol+j], T[(nAC-2-j)*NVMAX + tcol+1+j],T[(nAC-2-j)*NVMAX + tcol+j],c,s );
+
+			for( i=(nAC-j-1); i<(nAC-1); ++i )
+				applyGivens( c,s,T[i*NVMAX + tcol+1+j],T[i*NVMAX + tcol+j], T[i*NVMAX + tcol+1+j],T[i*NVMAX + tcol+j] );
+
+			for( i=0; i<nFR; ++i )
+			{
+				ii = FR_idx[i];
+				applyGivens( c,s,Q[ii*NVMAX + nZ+1+j],Q[ii*NVMAX + nZ+j], Q[ii*NVMAX + nZ+1+j],Q[ii*NVMAX + nZ+j] );
+			}
+		}
+	}
+	else
+	{
+		/* gimmick: write zeros into the last row of T */
+		for( j=0; j<nAC; ++j )
+			T[(nAC-1)*NVMAX + tcol+j] = 0.0;
+	}
+
+
+	if ( ( updateCholesky == BT_TRUE ) && ( hessianType != HST_IDENTITY ) )
+	{
+		/* III) UPDATE CHOLESKY DECOMPOSITION,
+		 *      calculate new additional column (i.e. [r sqrt(rho2)]')
+		 *      of the Cholesky factor R. */
+		real_t Hz[NVMAX];
+		for ( i=0; i<nFR; ++i )
+			Hz[i] = 0.0;
+		real_t rho2 = 0.0;
+
+		/* 1) Calculate Hz = H*z, where z is the new rightmost column of Z
+		 *    (i.e. the old leftmost column of Y).  */
+		for( j=0; j<nFR; ++j )
+		{
+			jj = FR_idx[j];
+			for( i=0; i<nFR; ++i )
+				Hz[i] += H[jj*NVMAX + FR_idx[i]] * Q[jj*NVMAX + nZ];
+		}
+
+		if ( nZ > 0 )
+		{
+			real_t ZHz[NVMAX];
+			for ( i=0; i<nZ; ++i )
+				ZHz[i] = 0.0;
+			real_t r[NVMAX];
+
+			/* 2) Calculate ZHz = Z'*Hz (old Z). */
+			for( j=0; j<nFR; ++j )
+			{
+				jj = FR_idx[j];
+
+				for( i=0; i<nZ; ++i )
+					ZHz[i] += Q[jj*NVMAX + i] * Hz[j];
+			}
+
+			/* 3) Calculate r = R^-T * ZHz. */
+			if ( backsolveR( ZHz,BT_TRUE,r ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_REMOVECONSTRAINT_FAILED );
+
+			/* 4) Calculate rho2 = rho^2 = z'*Hz - r'*r
+			 *    and store r into R. */
+			for( i=0; i<nZ; ++i )
+			{
+				rho2 -= r[i]*r[i];
+				R[i*NVMAX + nZ] = r[i];
+			}
+		}
+
+		for( j=0; j<nFR; ++j )
+			rho2 += Q[FR_idx[j]*NVMAX + nZ] * Hz[j];
+
+		/* 5) Store rho into R. */
+		if ( rho2 > 0.0 )
+			R[nZ*NVMAX + nZ] = sqrt( rho2 );
+		else
+		{
+			hessianType = HST_SEMIDEF;
+			return THROWERROR( RET_HESSIAN_NOT_SPD );
+		}
+	}
+
+	/* IV) UPDATE INDICES */
+	if ( constraints.moveActiveToInactive( number ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_REMOVECONSTRAINT_FAILED );
+
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	r e m o v e B o u n d
+ */
+returnValue QProblem::removeBound(	int number,
+									BooleanType updateCholesky
+									)
+{
+	int i, j, ii, jj;
+
+	/* consistency checks */
+	if ( bounds.getStatus( number ) == ST_INACTIVE )
+		return THROWERROR( RET_BOUND_NOT_ACTIVE );
+
+	if ( ( getStatus( ) == QPS_NOTINITIALISED )    ||
+		 ( getStatus( ) == QPS_AUXILIARYQPSOLVED ) ||
+		 ( getStatus( ) == QPS_HOMOTOPYQPSOLVED )  ||
+ 		 ( getStatus( ) == QPS_SOLVED )            )
+	{
+		return THROWERROR( RET_UNKNOWN_BUG );
+	}
+
+	/* some definitions */
+	int nFR = getNFR( );
+	int nAC = getNAC( );
+	int nZ  = getNZ( );
+
+	int tcol = sizeT - nAC;
+
+
+	/* I) UPDATE INDICES */
+	if ( bounds.moveFixedToFree( number ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_REMOVEBOUND_FAILED );
+
+
+	int FR_idx[NVMAX];
+	if ( bounds.getFree( )->getNumberArray( FR_idx ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_REMOVEBOUND_FAILED );
+
+	/* I) APPEND <nFR+1>th UNITY VECOTR TO Q. */
+	int nnFRp1 = FR_idx[nFR];
+	for( i=0; i<nFR; ++i )
+	{
+		ii = FR_idx[i];
+		Q[ii*NVMAX + nFR] = 0.0;
+		Q[nnFRp1*NVMAX + i] = 0.0;
+	}
+	Q[nnFRp1*NVMAX + nFR] = 1.0;
+
+	if ( nAC > 0 )
+	{
+		/* store new column a in a temporary vector instead of shifting T one column to the left and appending a */
+		int AC_idx[NCMAX_ALLOC];
+		if ( constraints.getActive( )->getNumberArray( AC_idx ) != SUCCESSFUL_RETURN )
+			return THROWERROR( RET_REMOVEBOUND_FAILED );
+
+		real_t tmp[NCMAX_ALLOC];
+		for( i=0; i<nAC; ++i )
+		{
+			ii = AC_idx[i];
+			tmp[i] =  A[ii*NVMAX + number];
+		}
+
+
+		/* II) RESTORE TRIANGULAR FORM OF T,
+		 *     use column-wise Givens rotations to restore reverse triangular form
+		 *     of T = [T A(:,number)], simultanenous change of Q (i.e. Y and Z). */
+		real_t c, s;
+
+		for( j=(nAC-1); j>=0; --j )
+		{
+			computeGivens( tmp[nAC-1-j],T[(nAC-1-j)*NVMAX + tcol+j],T[(nAC-1-j)*NVMAX + tcol+j],tmp[nAC-1-j],c,s );
+
+			for( i=(nAC-j); i<nAC; ++i )
+				applyGivens( c,s,tmp[i],T[i*NVMAX + tcol+j],T[i*NVMAX + tcol+j],tmp[i] );
+
+			for( i=0; i<=nFR; ++i )
+			{
+				ii = FR_idx[i];
+				/* nZ+1+nAC = nFR+1  /  nZ+(1) = nZ+1 */
+				applyGivens( c,s,Q[ii*NVMAX + nZ+1+j],Q[ii*NVMAX + nZ+j],Q[ii*NVMAX + nZ+1+j],Q[ii*NVMAX + nZ+j] );
+			}
+		}
+	}
+
+
+	if ( ( updateCholesky == BT_TRUE ) && ( hessianType != HST_IDENTITY ) )
+	{
+		/* III) UPDATE CHOLESKY DECOMPOSITION,
+		 *      calculate new additional column (i.e. [r sqrt(rho2)]')
+		 *      of the Cholesky factor R: */
+		real_t z2 = Q[nnFRp1*NVMAX + nZ];
+		real_t rho2 = H[nnFRp1*NVMAX + nnFRp1]*z2*z2; /* rho2 = h2*z2*z2 */
+
+		if ( nFR > 0 )
+		{
+			real_t Hz[NVMAX];
+			for( i=0; i<nFR; ++i )
+				Hz[i] = 0.0;
+			/* 1) Calculate R'*r = Zfr'*Hfr*z1 + z2*Zfr'*h1 =: Zfr'*Hz + z2*Zfr'*h1 =: rhs and
+			 *    rho2 = z1'*Hfr*z1 + 2*z2*h1'*z1 + h2*z2^2 - r'*r =: z1'*Hz + 2*z2*h1'*z1 + h2*z2^2 - r'r */
+			for( j=0; j<nFR; ++j )
+			{
+				jj = FR_idx[j];
+				for( i=0; i<nFR; ++i )
+				{
+					ii = FR_idx[i];
+					/*			   H * z1 */
+					Hz[i] += H[jj*NVMAX + ii] * Q[jj*NVMAX + nZ];
+				}
+			}
+
+			if ( nZ > 0 )
+			{
+				real_t r[NVMAX];
+				real_t rhs[NVMAX];
+				for( i=0; i<nZ; ++i )
+					rhs[i] = 0.0;
+
+				/* 2) Calculate rhs. */
+				for( j=0; j<nFR; ++j )
+				{
+					jj = FR_idx[j];
+					for( i=0; i<nZ; ++i )
+										/* Zfr' * ( Hz + z2*h1 ) */
+						rhs[i] += Q[jj*NVMAX + i] * ( Hz[j] + z2 * H[nnFRp1*NVMAX + jj] );
+				}
+
+				/* 3) Calculate r = R^-T * rhs. */
+				if ( backsolveR( rhs,BT_TRUE,BT_TRUE,r ) != SUCCESSFUL_RETURN )
+					return THROWERROR( RET_REMOVEBOUND_FAILED );
+
+				/* 4) Calculate rho2 = rho^2 = z'*Hz - r'*r
+				 *    and store r into R. */
+				for( i=0; i<nZ; ++i )
+				{
+					rho2 -= r[i]*r[i];
+					R[i*NVMAX + nZ] = r[i];
+				}
+			}
+
+			for( j=0; j<nFR; ++j )
+			{
+				jj = FR_idx[j];
+							/* z1' * ( Hz + 2*z2*h1 ) */
+				rho2 += Q[jj*NVMAX + nZ] * ( Hz[j] + 2.0*z2*H[nnFRp1*NVMAX + jj] );
+			}
+		}
+
+
+		/* 5) Store rho into R. */
+		if ( rho2 > 0.0 )
+			R[nZ*NVMAX + nZ] = sqrt( rho2 );
+		else
+		{
+			hessianType = HST_SEMIDEF;
+			return THROWERROR( RET_HESSIAN_NOT_SPD );
+		}
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	b a c k s o l v e R  (CODE DUPLICATE OF QProblemB CLASS!!!)
+ */
+returnValue QProblem::backsolveR(	const real_t* const b, BooleanType transposed,
+									real_t* const a
+									)
+{
+	/* Call standard backsolve procedure (i.e. removingBound == BT_FALSE). */
+	return backsolveR( b,transposed,BT_FALSE,a );
+}
+
+
+/*
+ *	b a c k s o l v e R  (CODE DUPLICATE OF QProblemB CLASS!!!)
+ */
+returnValue QProblem::backsolveR(	const real_t* const b, BooleanType transposed,
+									BooleanType removingBound,
+									real_t* const a
+									)
+{
+	int i, j;
+	int nR = getNZ( );
+
+	real_t sum;
+
+	/* if backsolve is called while removing a bound, reduce nZ by one. */
+	if ( removingBound == BT_TRUE )
+		--nR;
+
+	/* nothing to do */
+	if ( nR <= 0 )
+		return SUCCESSFUL_RETURN;
+
+
+	/* Solve Ra = b, where R might be transposed. */
+	if ( transposed == BT_FALSE )
+	{
+		/* solve Ra = b */
+		for( i=(nR-1); i>=0; --i )
+		{
+			sum = b[i];
+			for( j=(i+1); j<nR; ++j )
+				sum -= R[i*NVMAX + j] * a[j];
+
+			if ( getAbs( R[i*NVMAX + i] ) > ZERO )
+				a[i] = sum / R[i*NVMAX + i];
+			else
+				return THROWERROR( RET_DIV_BY_ZERO );
+		}
+	}
+	else
+	{
+		/* solve R^T*a = b */
+		for( i=0; i<nR; ++i )
+		{
+			sum = b[i];
+
+			for( j=0; j<i; ++j )
+				sum -= R[j*NVMAX + i] * a[j];
+
+			if ( getAbs( R[i*NVMAX + i] ) > ZERO )
+				a[i] = sum / R[i*NVMAX + i];
+			else
+				return THROWERROR( RET_DIV_BY_ZERO );
+		}
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+
+/*
+ *	b a c k s o l v e T
+ */
+returnValue QProblem::backsolveT( const real_t* const b, BooleanType transposed, real_t* const a )
+{
+	int i, j;
+	int nT = getNAC( );
+	int tcol = sizeT - nT;
+
+	real_t sum;
+
+	/* nothing to do */
+	if ( nT <= 0 )
+		return SUCCESSFUL_RETURN;
+
+
+	/* Solve Ta = b, where T might be transposed. */
+	if ( transposed == BT_FALSE )
+	{
+		/* solve Ta = b */
+		for( i=0; i<nT; ++i )
+		{
+			sum = b[i];
+			for( j=0; j<i; ++j )
+				sum -= T[i*NVMAX + sizeT-1-j] * a[nT-1-j];
+
+			if ( getAbs( T[i*NVMAX + sizeT-1-i] ) > ZERO )
+				a[nT-1-i] = sum / T[i*NVMAX + sizeT-1-i];
+			else
+				return THROWERROR( RET_DIV_BY_ZERO );
+		}
+	}
+	else
+	{
+		/* solve T^T*a = b */
+		for( i=0; i<nT; ++i )
+		{
+			sum = b[i];
+			for( j=0; j<i; ++j )
+				sum -= T[(nT-1-j)*NVMAX + tcol+i] * a[nT-1-j];
+
+			if ( getAbs( T[(nT-1-i)*NVMAX + tcol+i] ) > ZERO )
+				a[nT-1-i] = sum / T[(nT-1-i)*NVMAX + tcol+i];
+			else
+				return THROWERROR( RET_DIV_BY_ZERO );
+		}
+	}
+
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	h o t s t a r t _ d e t e r m i n e D a t a S h i f t
+ */
+returnValue QProblem::hotstart_determineDataShift(  const int* const FX_idx, const int* const AC_idx,
+													const real_t* const g_new, const real_t* const lbA_new, const real_t* const ubA_new,
+													const real_t* const lb_new, const real_t* const ub_new,
+													real_t* const delta_g, real_t* const delta_lbA, real_t* const delta_ubA,
+													real_t* const delta_lb, real_t* const delta_ub,
+													BooleanType& Delta_bC_isZero, BooleanType& Delta_bB_isZero
+													)
+{
+	int i, ii;
+	int nC  = getNC( );
+	int nAC = getNAC( );
+
+
+	/* I) DETERMINE DATA SHIFT FOR BOUNDS */
+	QProblemB::hotstart_determineDataShift( FX_idx,g_new,lb_new,ub_new, delta_g,delta_lb,delta_ub, Delta_bB_isZero );
+
+
+	/* II) DETERMINE DATA SHIFT FOR CONSTRAINTS */
+	/* 1) Calculate shift directions. */
+	for( i=0; i<nC; ++i )
+	{
+		/* if lower constraints' bounds do not exist, shift them to -infinity */
+		if ( lbA_new != 0 )
+			delta_lbA[i] = lbA_new[i] - lbA[i];
+		else
+			delta_lbA[i] = -INFTY - lbA[i];
+	}
+
+	for( i=0; i<nC; ++i )
+	{
+		/* if upper constraints' bounds do not exist, shift them to infinity */
+		if ( ubA_new != 0 )
+			delta_ubA[i] = ubA_new[i] - ubA[i];
+		else
+			delta_ubA[i] = INFTY - ubA[i];
+	}
+
+	/* 2) Determine if active constraints' bounds are to be shifted. */
+	Delta_bC_isZero = BT_TRUE;
+
+	for ( i=0; i<nAC; ++i )
+	{
+		ii = AC_idx[i];
+
+		if ( ( getAbs( delta_lbA[ii] ) > EPS ) || ( getAbs( delta_ubA[ii] ) > EPS ) )
+		{
+			Delta_bC_isZero = BT_FALSE;
+			break;
+		}
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	h o t s t a r t _ d e t e r m i n e S t e p D i r e c t i o n
+ */
+returnValue QProblem::hotstart_determineStepDirection(	const int* const FR_idx, const int* const FX_idx, const int* const AC_idx,
+														const real_t* const delta_g, const real_t* const delta_lbA, const real_t* const delta_ubA,
+														const real_t* const delta_lb, const real_t* const delta_ub,
+														BooleanType Delta_bC_isZero, BooleanType Delta_bB_isZero,
+														real_t* const delta_xFX, real_t* const delta_xFR,
+														real_t* const delta_yAC, real_t* const delta_yFX
+														)
+{
+	int i, j, ii, jj;
+	int nFR = getNFR( );
+	int nFX = getNFX( );
+	int nAC = getNAC( );
+	int nZ  = getNZ( );
+
+	/* initialise auxiliary vectors */
+	real_t HMX_delta_xFX[NVMAX];
+	real_t YFR_delta_xFRy[NVMAX];
+	real_t ZFR_delta_xFRz[NVMAX];
+	real_t HFR_YFR_delta_xFRy[NVMAX];
+	for( i=0; i<nFR; ++i )
+	{
+		delta_xFR[i] = 0.0;
+		HMX_delta_xFX[i] = 0.0;
+		YFR_delta_xFRy[i] = 0.0;
+		ZFR_delta_xFRz[i] = 0.0;
+		HFR_YFR_delta_xFRy[i] = 0.0;
+	}
+
+	real_t delta_xFRy[NCMAX_ALLOC];
+	real_t delta_xFRz[NVMAX];
+	for( i=0; i<nZ; ++i )
+		delta_xFRz[i] = 0.0;
+
+
+	/* I) DETERMINE delta_xFX */
+	if ( nFX > 0 )
+	{
+		for( i=0; i<nFX; ++i )
+		{
+			ii = FX_idx[i];
+
+			if ( bounds.getStatus( ii ) == ST_LOWER )
+				delta_xFX[i] = delta_lb[ii];
+			else
+				delta_xFX[i] = delta_ub[ii];
+		}
+	}
+
+	/* II) DETERMINE delta_xFR */
+	if ( nFR > 0 )
+	{
+		/* 1) Determine delta_xFRy. */
+		if ( nAC > 0 )
+		{
+			if ( ( Delta_bC_isZero == BT_TRUE ) && ( Delta_bB_isZero == BT_TRUE ) )
+			{
+				for( i=0; i<nAC; ++i )
+					delta_xFRy[i] = 0.0;
+
+				for( i=0; i<nFR; ++i )
+					delta_xFR[i] = 0.0;
+			}
+			else
+			{
+				/* auxillary variable */
+				real_t delta_xFRy_TMP[NCMAX_ALLOC];
+
+				for( i=0; i<nAC; ++i )
+				{
+					ii = AC_idx[i];
+
+					if ( constraints.getStatus( ii ) == ST_LOWER )
+						delta_xFRy_TMP[i] = delta_lbA[ii];
+					else
+						delta_xFRy_TMP[i] = delta_ubA[ii];
+
+					if ( Delta_bB_isZero == BT_FALSE )
+					{
+						for( j=0; j<nFX; ++j )
+						{
+							jj = FX_idx[j];
+							delta_xFRy_TMP[i] -= A[ii*NVMAX + jj] * delta_xFX[j];
+						}
+					}
+				}
+
+				if ( backsolveT( delta_xFRy_TMP, BT_FALSE, delta_xFRy ) != SUCCESSFUL_RETURN )
+					return THROWERROR( RET_STEPDIRECTION_FAILED_TQ );
+
+				for( i=0; i<nFR; ++i )
+				{
+					ii = FR_idx[i];
+					for( j=0; j<nAC; ++j )
+						YFR_delta_xFRy[i] += Q[ii*NVMAX + nZ+j] * delta_xFRy[j];
+
+					/* delta_xFR = YFR*delta_xFRy (+ ZFR*delta_xFRz) */
+					delta_xFR[i] = YFR_delta_xFRy[i];
+				}
+			}
+		}
+
+		/* 2) Determine delta_xFRz. */
+		if ( hessianType == HST_IDENTITY )
+		{
+			for( j=0; j<nFR; ++j )
+			{
+				jj = FR_idx[j];
+				for( i=0; i<nZ; ++i )
+					delta_xFRz[i] -= Q[jj*NVMAX + i] * delta_g[jj];
+			}
+
+			if ( nZ > 0 )
+			{
+				for( i=0; i<nFR; ++i )
+				{
+					ii = FR_idx[i];
+					for( j=0; j<nZ; ++j )
+						ZFR_delta_xFRz[i] += Q[ii*NVMAX + j] * delta_xFRz[j];
+
+					delta_xFR[i] += ZFR_delta_xFRz[i];
+				}
+			}
+		}
+		else
+		{
+			if ( Delta_bB_isZero == BT_FALSE )
+			{
+				for( i=0; i<nFR; ++i )
+				{
+					ii = FR_idx[i];
+					for( j=0; j<nFX; ++j )
+					{
+						jj = FX_idx[j];
+						HMX_delta_xFX[i] += H[ii*NVMAX + jj] * delta_xFX[j];
+					}
+				}
+			}
+
+			if ( nAC > 0 )
+			{
+				if ( ( Delta_bC_isZero == BT_FALSE ) || ( Delta_bB_isZero == BT_FALSE ) )
+				{
+					for( i=0; i<nFR; ++i )
+					{
+						ii = FR_idx[i];
+						for( j=0; j<nFR; ++j )
+						{
+							jj = FR_idx[j];
+							HFR_YFR_delta_xFRy[i] += H[ii*NVMAX + jj] * YFR_delta_xFRy[j];
+						}
+					}
+				}
+			}
+
+
+			if ( nZ > 0 )
+			{
+				/* auxiliary variable */
+				real_t delta_xFRz_TMP[NVMAX];
+				real_t delta_xFRz_RHS[NVMAX];
+
+
+				if ( ( nAC > 0 ) && ( nFX > 0 ) && ( Delta_bB_isZero == BT_FALSE ) )
+				{
+					for( j=0; j<nFR; ++j )
+					{
+						jj = FR_idx[j];
+						delta_xFRz_RHS[j] = delta_g[jj] + HFR_YFR_delta_xFRy[j] + HMX_delta_xFX[j];
+					}
+				}
+				else
+				{
+					if ( ( nAC == 0 ) && ( Delta_bB_isZero == BT_TRUE ) )
+					{
+						for( j=0; j<nFR; ++j )
+						{
+							jj = FR_idx[j];
+							delta_xFRz_RHS[j] = delta_g[jj];
+						}
+					}
+					else
+					{
+						if ( nAC > 0 ) /* => Delta_bB_isZero == BT_TRUE, as BT_FALSE would imply nFX>0 */
+						{
+							for( j=0; j<nFR; ++j )
+							{
+								jj = FR_idx[j];
+								delta_xFRz_RHS[j] = delta_g[jj] + HFR_YFR_delta_xFRy[j];
+							}
+						}
+						else /* Delta_bB_isZero == BT_FALSE, as nAC==0 */
+						{
+							for( j=0; j<nFR; ++j )
+							{
+								jj = FR_idx[j];
+								delta_xFRz_RHS[j] = delta_g[jj] + HMX_delta_xFX[j];
+							}
+						}
+					}
+				}
+
+				for( j=0; j<nFR; ++j )
+				{
+					jj = FR_idx[j];
+					for( i=0; i<nZ; ++i )
+						delta_xFRz[i] -= Q[jj*NVMAX + i] * delta_xFRz_RHS[j];
+				}
+
+
+				if ( backsolveR( delta_xFRz,BT_TRUE,delta_xFRz_TMP ) != SUCCESSFUL_RETURN )
+					return THROWERROR( RET_STEPDIRECTION_FAILED_CHOLESKY );
+
+				if ( backsolveR( delta_xFRz_TMP,BT_FALSE,delta_xFRz ) != SUCCESSFUL_RETURN )
+					return THROWERROR( RET_STEPDIRECTION_FAILED_CHOLESKY );
+
+
+				for( i=0; i<nFR; ++i )
+				{
+					ii = FR_idx[i];
+					for( j=0; j<nZ; ++j )
+						ZFR_delta_xFRz[i] += Q[ii*NVMAX + j] * delta_xFRz[j];
+
+					delta_xFR[i] += ZFR_delta_xFRz[i];
+				}
+			}
+		}
+	}
+
+	/* III) DETERMINE delta_yAC */
+	if ( nAC > 0 ) /* => ( nFR = nZ + nAC > 0 ) */
+	{
+		/* auxiliary variables */
+		real_t delta_yAC_TMP[NCMAX_ALLOC];
+		for( i=0; i<nAC; ++i )
+			delta_yAC_TMP[i] = 0.0;
+		real_t delta_yAC_RHS[NVMAX];
+		for( i=0; i<nFR; ++i )
+			delta_yAC_RHS[i] = 0.0;
+
+		if ( hessianType == HST_IDENTITY )
+		{
+			/* delta_yAC = (T')^-1 * ( Yfr*delta_gFR + delta_xFRy ) */
+			for( j=0; j<nAC; ++j )
+			{
+				for( i=0; i<nFR; ++i )
+				{
+					ii = FR_idx[i];
+					delta_yAC_TMP[j] += Q[ii*NVMAX + nZ+j] * delta_g[ii];
+				}
+
+				delta_yAC_TMP[j] += delta_xFRy[j];
+			}
+		}
+		else
+		{
+			if ( ( Delta_bC_isZero == BT_TRUE ) && ( Delta_bB_isZero == BT_TRUE ) )
+			{
+				for( i=0; i<nFR; ++i )
+				{
+					ii = FR_idx[i];
+					delta_yAC_RHS[i] = delta_g[ii];
+				}
+			}
+			else
+			{
+				for( i=0; i<nFR; ++i )
+				{
+					ii = FR_idx[i];
+					delta_yAC_RHS[i] = HFR_YFR_delta_xFRy[i] + delta_g[ii];
+				}
+			}
+
+			if ( nZ > 0 )
+			{
+				for( i=0; i<nFR; ++i )
+				{
+					ii = FR_idx[i];
+					for( j=0; j<nFR; ++j )
+					{
+						jj = FR_idx[j];
+						delta_yAC_RHS[i] += H[ii*NVMAX + jj] * ZFR_delta_xFRz[j];
+					}
+				}
+			}
+
+			if ( nFX > 0 )
+			{
+				if ( Delta_bB_isZero == BT_FALSE )
+				{
+					for( i=0; i<nFR; ++i )
+						delta_yAC_RHS[i] += HMX_delta_xFX[i];
+				}
+			}
+
+			for( i=0; i<nAC; ++i)
+			{
+				for( j=0; j<nFR; ++j )
+				{
+					jj = FR_idx[j];
+					delta_yAC_TMP[i] += Q[jj*NVMAX + nZ+i] * delta_yAC_RHS[j];
+				}
+			}
+		}
+
+		if ( backsolveT( delta_yAC_TMP,BT_TRUE,delta_yAC ) != SUCCESSFUL_RETURN )
+			return THROWERROR( RET_STEPDIRECTION_FAILED_TQ );
+	}
+
+
+	/* IV) DETERMINE delta_yFX */
+	if ( nFX > 0 )
+	{
+		for( i=0; i<nFX; ++i )
+		{
+			ii = FX_idx[i];
+
+			delta_yFX[i] = delta_g[ii];
+
+			for( j=0; j<nAC; ++j )
+			{
+				jj = AC_idx[j];
+				delta_yFX[i] -= A[jj*NVMAX + ii] * delta_yAC[j];
+			}
+
+			if ( hessianType == HST_IDENTITY )
+			{
+				delta_yFX[i] += delta_xFX[i];
+			}
+			else
+			{
+				for( j=0; j<nFR; ++j )
+				{
+					jj = FR_idx[j];
+					delta_yFX[i] += H[ii*NVMAX + jj] * delta_xFR[j];
+				}
+
+				if ( Delta_bB_isZero == BT_FALSE )
+				{
+					for( j=0; j<nFX; ++j )
+					{
+						jj = FX_idx[j];
+						delta_yFX[i] += H[ii*NVMAX + jj] * delta_xFX[j];
+					}
+				}
+			}
+		}
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	h o t s t a r t _ d e t e r m i n e S t e p L e n g t h
+ */
+returnValue QProblem::hotstart_determineStepLength(	const int* const FR_idx, const int* const FX_idx, const int* const AC_idx, const int* const IAC_idx,
+													const real_t* const delta_lbA, const real_t* const delta_ubA,
+													const real_t* const delta_lb, const real_t* const delta_ub,
+													const real_t* const delta_xFX, const real_t* const delta_xFR,
+													const real_t* const delta_yAC, const real_t* const delta_yFX,
+													real_t* const delta_Ax, int& BC_idx, SubjectToStatus& BC_status, BooleanType& BC_isBound
+													)
+{
+	int i, j, ii, jj;
+	int nV  = getNV( );
+	int nC  = getNC( );
+	int nFR = getNFR( );
+	int nFX = getNFX( );
+	int nAC = getNAC( );
+	int nIAC = getNIAC( );
+
+	/* initialise maximum steplength array */
+	real_t maxStepLength[2*(NVMAX+NCMAX_ALLOC)];
+	for ( i=0; i<2*(nV+nC); ++i )
+		maxStepLength[i] = 1.0;
+
+
+	/* I) DETERMINE MAXIMUM DUAL STEPLENGTH: */
+	/* 1) Ensure that active dual constraints' bounds remain valid
+	 *    (ignoring inequality constraints).  */
+	for( i=0; i<nAC; ++i )
+	{
+		ii = AC_idx[i];
+
+		if ( constraints.getType( ii ) != ST_EQUALITY )
+		{
+			if ( constraints.getStatus( ii ) == ST_LOWER )
+			{
+				/* active lower constraints' bounds */
+				if ( delta_yAC[i] < -ZERO )
+				{
+					if ( y[nV+ii] > 0.0 )
+						maxStepLength[nV+ii] = y[nV+ii] / ( -delta_yAC[i] );
+					else
+						maxStepLength[nV+ii] = 0.0;
+				}
+			}
+			else
+			{
+				/* active upper constraints' bounds */
+				if ( delta_yAC[i] > ZERO )
+				{
+					if ( y[nV+ii] < 0.0 )
+						maxStepLength[nV+ii] = y[nV+ii] / ( -delta_yAC[i] );
+					else
+						maxStepLength[nV+ii] = 0.0;
+				}
+			}
+		}
+	}
+
+	/* 2) Ensure that active dual bounds remain valid
+	 *    (ignoring implicitly fixed variables). */
+	for( i=0; i<nFX; ++i )
+	{
+		ii = FX_idx[i];
+
+		if ( bounds.getType( ii ) != ST_EQUALITY )
+		{
+			if ( bounds.getStatus( ii ) == ST_LOWER )
+			{
+				/* active lower bounds */
+				if ( delta_yFX[i] < -ZERO )
+				{
+					if ( y[ii] > 0.0 )
+						maxStepLength[ii] = y[ii] / ( -delta_yFX[i] );
+					else
+						maxStepLength[ii] = 0.0;
+				}
+			}
+			else
+			{
+				/* active upper bounds */
+				if ( delta_yFX[i] > ZERO )
+				{
+					if ( y[ii] < 0.0 )
+						maxStepLength[ii] = y[ii] / ( -delta_yFX[i] );
+					else
+						maxStepLength[ii] = 0.0;
+				}
+			}
+		}
+	}
+
+
+	/* II) DETERMINE MAXIMUM PRIMAL STEPLENGTH */
+	/* 1) Ensure that inactive constraints' bounds remain valid
+	 *    (ignoring unbounded constraints). */
+	real_t delta_x[NVMAX];
+	for( j=0; j<nFR; ++j )
+	{
+		jj = FR_idx[j];
+		delta_x[jj] = delta_xFR[j];
+	}
+	for( j=0; j<nFX; ++j )
+	{
+		jj = FX_idx[j];
+		delta_x[jj] = delta_xFX[j];
+	}
+
+	for( i=0; i<nIAC; ++i )
+	{
+		ii = IAC_idx[i];
+
+		if ( constraints.getType( ii ) != ST_UNBOUNDED )
+		{
+			delta_Ax[ii] = 0.0;
+			for( j=0; j<nV; ++j )
+				delta_Ax[ii] += A[ii*NVMAX + j] * delta_x[j]; // POSSIBLE SPEEDUP!
+
+			/* inactive lower constraints' bounds */
+			if ( constraints.isNoLower( ) == BT_FALSE )
+			{
+				if ( delta_lbA[ii] > delta_Ax[ii] )
+				{
+					if ( Ax[ii] > lbA[ii] )
+						maxStepLength[nV+ii] = ( Ax[ii] - lbA[ii] ) / ( delta_lbA[ii] - delta_Ax[ii] );
+					else
+						maxStepLength[nV+ii] = 0.0;
+				}
+			}
+
+			/* inactive upper constraints' bounds */
+			if ( constraints.isNoUpper( ) == BT_FALSE )
+			{
+				if ( delta_ubA[ii] < delta_Ax[ii] )
+				{
+					if ( Ax[ii] < ubA[ii] )
+						maxStepLength[nV+nC+nV+ii] = ( Ax[ii] - ubA[ii] ) / ( delta_ubA[ii] - delta_Ax[ii] );
+					else
+						maxStepLength[nV+nC+nV+ii] = 0.0;
+				}
+			}
+		}
+	}
+
+
+	/* 2) Ensure that inactive bounds remain valid
+	 *    (ignoring unbounded variables). */
+	/* inactive lower bounds */
+	if ( bounds.isNoLower( ) == BT_FALSE )
+	{
+		for( i=0; i<nFR; ++i )
+		{
+			ii = FR_idx[i];
+			if ( bounds.getType( ii ) != ST_UNBOUNDED )
+				if ( delta_lb[ii] > delta_xFR[i] )
+				{
+					if ( x[ii] > lb[ii] )
+						maxStepLength[ii] = ( x[ii] - lb[ii] ) / ( delta_lb[ii] - delta_xFR[i] );
+					else
+						maxStepLength[ii] = 0.0;
+				}
+		}
+	}
+
+	/* inactive upper bounds */
+	if ( bounds.isNoUpper( ) == BT_FALSE )
+	{
+		for( i=0; i<nFR; ++i )
+		{
+			ii = FR_idx[i];
+			if ( bounds.getType( ii ) != ST_UNBOUNDED )
+				if ( delta_ub[ii] < delta_xFR[i] )
+				{
+					if ( x[ii] < ub[ii] )
+						maxStepLength[nV+nC+ii] = ( x[ii] - ub[ii] ) / ( delta_ub[ii] - delta_xFR[i] );
+					else
+						maxStepLength[nV+nC+ii] = 0.0;
+				}
+		}
+	}
+
+
+	/* III) DETERMINE MAXIMUM HOMOTOPY STEPLENGTH */
+	real_t tau_new = 1.0;
+
+	BC_idx = 0;
+	BC_status = ST_UNDEFINED;
+	BC_isBound = BT_FALSE;
+
+	for ( i=0; i<nV; ++i )
+	{
+		/* 1) Consider lower/dual blocking bounds. */
+		if ( maxStepLength[i] < tau_new )
+		{
+			tau_new = maxStepLength[i];
+			BC_idx = i;
+			BC_isBound = BT_TRUE;
+			if ( bounds.getStatus( i ) == ST_INACTIVE ) /* inactive? */
+				BC_status = ST_LOWER;
+			else
+				BC_status = ST_INACTIVE;
+		}
+
+		/* 2) Consider upper blocking bounds. */
+		if ( maxStepLength[nV+nC+i] < tau_new )
+		{
+			tau_new = maxStepLength[nV+nC+i];
+			BC_idx = i;
+			BC_isBound = BT_TRUE;
+			BC_status = ST_UPPER;
+		}
+	}
+
+	for ( i=nV; i<nV+nC; ++i )
+	{
+		/* 3) Consider lower/dual blocking constraints. */
+		if ( maxStepLength[i] < tau_new )
+		{
+			tau_new = maxStepLength[i];
+			BC_idx = i-nV;
+			BC_isBound = BT_FALSE;
+			if ( constraints.getStatus( i-nV ) == ST_INACTIVE ) /* inactive? */
+				BC_status = ST_LOWER;
+			else
+				BC_status = ST_INACTIVE;
+		}
+
+		/* 4) Consider upper blocking constraints. */
+		if ( maxStepLength[nV+nC+i] < tau_new )
+		{
+			tau_new = maxStepLength[nV+nC+i];
+			BC_idx = i-nV;
+			BC_isBound = BT_FALSE;
+			BC_status = ST_UPPER;
+		}
+	}
+
+
+	/* IV) CLEAR CYCLING DATA
+	 *     if a positive step can be taken */
+	if ( tau_new > EPS )
+		cyclingManager.clearCyclingData( );
+
+
+	/* V) SET MAXIMUM HOMOTOPY STEPLENGTH */
+	tau = tau_new;
+
+	#ifdef PC_DEBUG
+	if ( printlevel == PL_HIGH )
+	{
+
+	 	char messageString[80];
+
+		if ( BC_status == ST_UNDEFINED )
+			sprintf( messageString,"Stepsize is %.6e!",tau );
+		else
+			sprintf( messageString,"Stepsize is %.6e! (BC_idx = %d, BC_isBound = %d, BC_status = %d)",tau,BC_idx,BC_isBound,BC_status );
+
+		getGlobalMessageHandler( )->throwInfo( RET_STEPSIZE_NONPOSITIVE,messageString,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE );
+	}
+	#endif
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	h o t s t a r t _ p e r f o r m S t e p
+ */
+returnValue QProblem::hotstart_performStep(	const int* const FR_idx, const int* const FX_idx, const int* const AC_idx, const int* const IAC_idx,
+											const real_t* const delta_g, const real_t* const delta_lbA, const real_t* const delta_ubA,
+											const real_t* const delta_lb, const real_t* const delta_ub,
+											const real_t* const delta_xFX, const real_t* const delta_xFR,
+											const real_t* const delta_yAC, const real_t* const delta_yFX,
+											const real_t* const delta_Ax, int BC_idx, SubjectToStatus BC_status, BooleanType BC_isBound
+											)
+{
+	int i, j, ii;
+	int nV  = getNV( );
+	int nC  = getNC( );
+	int nFR = getNFR( );
+	int nFX = getNFX( );
+	int nAC = getNAC( );
+	int nIAC = getNIAC( );
+
+
+	/* I) CHECK (CONSTRAINTS') BOUNDS' CONSISTENCY */
+	if ( areBoundsConsistent( delta_lb,delta_ub,delta_lbA,delta_ubA ) == BT_FALSE )
+	{
+		infeasible = BT_TRUE;
+		tau = 0.0;
+
+		return THROWERROR( RET_QP_INFEASIBLE );
+	}
+
+
+	/* II) GO TO ACTIVE SET CHANGE */
+	if ( tau > ZERO )
+	{
+		/* 1) Perform step in primal und dual space... */
+		for( i=0; i<nFR; ++i )
+		{
+			ii = FR_idx[i];
+			x[ii] += tau*delta_xFR[i];
+		}
+
+		for( i=0; i<nFX; ++i )
+		{
+			ii = FX_idx[i];
+			x[ii] += tau*delta_xFX[i];
+			y[ii] += tau*delta_yFX[i];
+		}
+
+		for( i=0; i<nAC; ++i )
+		{
+			ii = AC_idx[i];
+			y[nV+ii] += tau*delta_yAC[i];
+		}
+
+		/* ... also for Ax. */
+		for( i=0; i<nIAC; ++i )
+		{
+			ii = IAC_idx[i];
+			if ( constraints.getType( ii ) != ST_UNBOUNDED )
+				Ax[ii] += tau*delta_Ax[ii];
+		}
+		for( i=0; i<nAC; ++i )
+		{
+			ii = AC_idx[i];
+
+			Ax[ii] = 0.0;
+			for( j=0; j<nV; ++j )
+				Ax[ii] += A[ii*NVMAX + j] * x[j];
+		}
+
+		/* 2) Shift QP data. */
+		for( i=0; i<nV; ++i )
+		{
+			g[i]  += tau*delta_g[i];
+			lb[i] += tau*delta_lb[i];
+			ub[i] += tau*delta_ub[i];
+		}
+
+		for( i=0; i<nC; ++i )
+		{
+			lbA[i] += tau*delta_lbA[i];
+			ubA[i] += tau*delta_ubA[i];
+		}
+	}
+	else
+	{
+		/* print a stepsize warning if stepsize is zero */
+		#ifdef PC_DEBUG
+		char messageString[80];
+		sprintf( messageString,"Stepsize is %.6e",tau );
+		getGlobalMessageHandler( )->throwWarning( RET_STEPSIZE,messageString,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE );
+		#endif
+	}
+
+
+	/* setup output preferences */
+	#ifdef PC_DEBUG
+	char messageString[80];
+	VisibilityStatus visibilityStatus;
+
+	if ( printlevel == PL_HIGH )
+		visibilityStatus = VS_VISIBLE;
+	else
+		visibilityStatus = VS_HIDDEN;
+	#endif
+
+	
+	/* III) UPDATE ACTIVE SET */
+	switch ( BC_status )
+	{
+		/* Optimal solution found as no working set change detected. */
+		case ST_UNDEFINED:
+			return RET_OPTIMAL_SOLUTION_FOUND;
+
+
+		/* Remove one variable from active set. */
+		case ST_INACTIVE:
+			if ( BC_isBound == BT_TRUE )
+			{
+				#ifdef PC_DEBUG
+				sprintf( messageString,"bound no. %d.", BC_idx );
+				getGlobalMessageHandler( )->throwInfo( RET_REMOVE_FROM_ACTIVESET,messageString,__FUNCTION__,__FILE__,__LINE__,visibilityStatus );
+				#endif
+
+				if ( removeBound( BC_idx,BT_TRUE ) != SUCCESSFUL_RETURN )
+					return THROWERROR( RET_REMOVE_FROM_ACTIVESET_FAILED );
+
+				y[BC_idx] = 0.0;
+			}
+			else
+			{
+				#ifdef PC_DEBUG
+				sprintf( messageString,"constraint no. %d.", BC_idx );
+				getGlobalMessageHandler( )->throwInfo( RET_REMOVE_FROM_ACTIVESET,messageString,__FUNCTION__,__FILE__,__LINE__,visibilityStatus );
+				#endif
+
+				if ( removeConstraint( BC_idx,BT_TRUE ) != SUCCESSFUL_RETURN )
+					return THROWERROR( RET_REMOVE_FROM_ACTIVESET_FAILED );
+
+				y[nV+BC_idx] = 0.0;
+			}
+			break;
+
+
+		/* Add one variable to active set. */
+		default:
+			if ( BC_isBound == BT_TRUE )
+			{
+				#ifdef PC_DEBUG
+				if ( BC_status == ST_LOWER )
+					sprintf( messageString,"lower bound no. %d.", BC_idx );
+				else
+					sprintf( messageString,"upper bound no. %d.", BC_idx );
+				getGlobalMessageHandler( )->throwInfo( RET_ADD_TO_ACTIVESET,messageString,__FUNCTION__,__FILE__,__LINE__,visibilityStatus );
+				#endif
+
+				if ( addBound( BC_idx,BC_status,BT_TRUE ) != SUCCESSFUL_RETURN )
+					return THROWERROR( RET_ADD_TO_ACTIVESET_FAILED );
+			}
+			else
+			{
+				#ifdef PC_DEBUG
+				if ( BC_status == ST_LOWER )
+					sprintf( messageString,"lower constraint's bound no. %d.", BC_idx );
+				else
+					sprintf( messageString,"upper constraint's bound no. %d.", BC_idx );
+				getGlobalMessageHandler( )->throwInfo( RET_ADD_TO_ACTIVESET,messageString,__FUNCTION__,__FILE__,__LINE__,visibilityStatus );
+				#endif
+
+				if ( addConstraint( BC_idx,BC_status,BT_TRUE ) != SUCCESSFUL_RETURN )
+					return THROWERROR( RET_ADD_TO_ACTIVESET_FAILED );
+			}
+			break;
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	a r e B o u n d s C o n s i s t e n t
+ */
+BooleanType QProblem::areBoundsConsistent(	const real_t* const delta_lb, const real_t* const delta_ub,
+											const real_t* const delta_lbA, const real_t* const delta_ubA
+											) const
+{
+	int i;
+
+	/* 1) Check bounds' consistency. */
+	if ( QProblemB::areBoundsConsistent( delta_lb,delta_ub ) == BT_FALSE )
+		return BT_FALSE;
+
+	/* 2) Check constraints' consistency, i.e.
+	 *    check if delta_lb[i] is greater than delta_ub[i]
+	 *    for a component i whose bounds are already (numerically) equal. */
+	for( i=0; i<getNC( ); ++i )
+		if ( ( lbA[i] > ubA[i] - BOUNDTOL ) && ( delta_lbA[i] > delta_ubA[i] + EPS ) )
+			return BT_FALSE;
+
+	return BT_TRUE;
+}
+
+
+/*
+ *	s e t u p Q P d a t a
+ */
+returnValue QProblem::setupQPdata(	const real_t* const _H, const real_t* const _R, const real_t* const _g, const real_t* const _A,
+									const real_t* const _lb, const real_t* const _ub,
+									const real_t* const _lbA, const real_t* const _ubA
+									)
+{
+	int i, j;
+	int nV = getNV( );
+	int nC = getNC( );
+
+
+	/* 1) Load Hessian matrix as well as lower and upper bounds vectors. */
+	if (QProblemB::setupQPdata(_H, _R, _g, _lb, _ub) != SUCCESSFUL_RETURN)
+		return THROWERROR( RET_INVALID_ARGUMENTS );
+
+	/* 2) Load constraint matrix. */
+	if ( ( nC > 0 ) && ( _A == 0 ) )
+		return THROWERROR( RET_INVALID_ARGUMENTS );
+
+	if ( nC > 0 )
+	{
+		for( i=0; i<nC; ++i )
+			for( j=0; j<nV; ++j )
+				A[i*NVMAX + j] = _A[i*nV + j];
+
+		/* 3) Setup lower constraints' bounds vector. */
+		if ( _lbA != 0 )
+		{
+			for( i=0; i<nC; ++i )
+				lbA[i] = _lbA[i];
+		}
+		else
+		{
+			/* if no lower constraints' bounds are specified, set them to -infinity */
+			for( i=0; i<nC; ++i )
+				lbA[i] = -INFTY;
+		}
+
+		/* 4) Setup upper constraints' bounds vector. */
+		if ( _ubA != 0 )
+		{
+			for( i=0; i<nC; ++i )
+				ubA[i] = _ubA[i];
+		}
+		else
+		{
+			/* if no upper constraints' bounds are specified, set them to infinity */
+			for( i=0; i<nC; ++i )
+				ubA[i] = INFTY;
+		}
+	}
+
+// 	printmatrix2( "A",A,10,20 );
+	
+// 	printmatrix2( "lbA",lbA,1,nC );
+// 	printmatrix2( "ubA",ubA,1,nC );
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+
+#ifdef PC_DEBUG  /* Define print functions only for debugging! */
+
+/*
+ *	p r i n t I t e r a t i o n
+ */
+returnValue QProblem::printIteration( 	int iteration,
+										int BC_idx,	SubjectToStatus BC_status, BooleanType BC_isBound
+		  								)
+{
+	char myPrintfString[160];
+
+	/* consistency check */
+	if ( iteration < 0 )
+		return THROWERROR( RET_INVALID_ARGUMENTS );
+
+	/* nothing to do */
+	if ( printlevel != PL_MEDIUM )
+		return SUCCESSFUL_RETURN;
+
+
+	/* 1) Print header at first iteration. */
+ 	if ( iteration == 0 )
+	{
+		sprintf( myPrintfString,"\n##############  qpOASES  --  QP NO.%4.1d  ###############\n", count );
+		myPrintf( myPrintfString );
+
+		sprintf( myPrintfString,"  Iter  |  StepLength   |     Info      |  nFX  |  nAC  \n" );
+		myPrintf( myPrintfString );
+	}
+
+	/* 2) Print iteration line. */
+	if ( BC_status == ST_UNDEFINED )
+	{
+		sprintf( myPrintfString,"  %4.1d  |  %1.5e  |   QP SOLVED   | %4.1d  | %4.1d  \n", iteration,tau,getNFX( ),getNAC( ) );
+		myPrintf( myPrintfString );
+	}
+	else
+	{
+		char info[8];
+
+		if ( BC_status == ST_INACTIVE )
+			sprintf( info,"REM " );
+		else
+			sprintf( info,"ADD " );
+
+		if ( BC_isBound == BT_TRUE )
+			sprintf( &(info[4]),"BND" );
+		else
+			sprintf( &(info[4]),"CON" );
+
+		sprintf( myPrintfString,"  %4.1d  |  %1.5e  |  %s%4.1d  | %4.1d  | %4.1d  \n", iteration,tau,info,BC_idx,getNFX( ),getNAC( ) );
+		myPrintf( myPrintfString );
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	p r i n t I t e r a t i o n
+ */
+returnValue QProblem::printIteration( 	int iteration,
+										int BC_idx,	SubjectToStatus BC_status
+		  								)
+{
+	return printIteration( iteration,BC_idx,BC_status,BT_TRUE );
+}
+
+#endif  /* PC_DEBUG */
+
+
+
+/*
+ *	c h e c k K K T c o n d i t i o n s
+ */
+returnValue QProblem::checkKKTconditions( )
+{
+	#ifdef __PERFORM_KKT_TEST__
+
+	int i, j, jj;
+	int nV  = getNV( );
+	int nC  = getNC( );
+	int nAC = getNAC( );
+
+	real_t tmp;
+	real_t maxKKTviolation = 0.0;
+
+	int AC_idx[NCMAX_ALLOC];
+	constraints.getActive( )->getNumberArray( AC_idx );
+
+	/* 1) check for Hx + g - [yFX yAC]*[Id A]' = 0. */
+	for( i=0; i<nV; ++i )
+	{
+		tmp = g[i];
+
+		for( j=0; j<nV; ++j )
+			tmp += H[i*NVMAX + j] * x[j];
+
+		tmp -= y[i];
+
+		/* Only sum over active constraints as y is zero for all inactive ones. */
+		for( j=0; j<nAC; ++j )
+		{
+			jj = AC_idx[j];
+			tmp -= A[jj*NVMAX + i] * y[nV+jj];
+		}
+
+		if ( getAbs( tmp ) > maxKKTviolation )
+			maxKKTviolation = getAbs( tmp );
+	}
+
+	/* 2) Check for [lb lbA] <= [Id A]*x <= [ub ubA]. */
+	/* lbA <= Ax <= ubA */
+	for( i=0; i<nC; ++i )
+	{
+		if ( lbA[i] - Ax[i] > maxKKTviolation )
+			maxKKTviolation = lbA[i] - Ax[i];
+
+		if ( Ax[i] - ubA[i] > maxKKTviolation )
+			maxKKTviolation = Ax[i] - ubA[i];
+	}
+
+	/* lb <= x <= ub */
+	for( i=0; i<nV; ++i )
+	{
+		if ( lb[i] - x[i] > maxKKTviolation )
+			maxKKTviolation = lb[i] - x[i];
+
+		if ( x[i] - ub[i] > maxKKTviolation )
+			maxKKTviolation = x[i] - ub[i];
+	}
+
+	/* 3) Check for correct sign of y and for complementary slackness. */
+	/* bounds */
+	for( i=0; i<nV; ++i )
+	{
+		switch ( bounds.getStatus( i ) )
+		{
+			case ST_LOWER:
+				if ( -y[i] > maxKKTviolation )
+					maxKKTviolation = -y[i];
+				if ( getAbs( x[i] - lb[i] ) > maxKKTviolation )
+					maxKKTviolation = getAbs( x[i] - lb[i] );
+				break;
+
+			case ST_UPPER:
+				if ( y[i] > maxKKTviolation )
+					maxKKTviolation = y[i];
+				if ( getAbs( ub[i] - x[i] ) > maxKKTviolation )
+					maxKKTviolation = getAbs( ub[i] - x[i] );
+				break;
+
+			default: /* inactive */
+			if ( getAbs( y[i] ) > maxKKTviolation )
+					maxKKTviolation = getAbs( y[i] );
+				break;
+		}
+	}
+
+	/* constraints */
+	for( i=0; i<nC; ++i )
+	{
+		switch ( constraints.getStatus( i ) )
+		{
+			case ST_LOWER:
+				if ( -y[nV+i] > maxKKTviolation )
+					maxKKTviolation = -y[nV+i];
+				if ( getAbs( Ax[i] - lbA[i] ) > maxKKTviolation )
+					maxKKTviolation = getAbs( Ax[i] - lbA[i] );
+				break;
+
+			case ST_UPPER:
+				if ( y[nV+i] > maxKKTviolation )
+					maxKKTviolation = y[nV+i];
+				if ( getAbs( ubA[i] - Ax[i] ) > maxKKTviolation )
+					maxKKTviolation = getAbs( ubA[i] - Ax[i] );
+				break;
+
+			default: /* inactive */
+			if ( getAbs( y[nV+i] ) > maxKKTviolation )
+					maxKKTviolation = getAbs( y[nV+i] );
+				break;
+		}
+	}
+
+	if ( maxKKTviolation > CRITICALACCURACY )
+		return RET_NO_SOLUTION;
+
+	if ( maxKKTviolation > DESIREDACCURACY )
+		return RET_INACCURATE_SOLUTION;
+
+	#endif /* __PERFORM_KKT_TEST__ */
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/QProblem.ipp b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/QProblem.ipp
new file mode 100644
index 0000000..e98ada6
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/QProblem.ipp
@@ -0,0 +1,299 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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 SRC/QProblem.ipp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Implementation of inlined member functions of the QProblem class which 
+ *	is able to use the newly developed online active set strategy for 
+ *	parametric quadratic programming.
+ */
+
+
+
+/*****************************************************************************
+ *  P U B L I C                                                              *
+ *****************************************************************************/
+
+/*
+ *	g e t A
+ */
+inline returnValue QProblem::getA( real_t* const _A ) const
+{
+	int i;
+
+	for ( i=0; i<getNV( )*getNC( ); ++i )
+		_A[i] = A[i];
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	g e t A
+ */
+inline returnValue QProblem::getA( int number, real_t* const row ) const
+{
+	int nV = getNV( );
+		
+	if ( ( number >= 0 ) && ( number < getNC( ) ) )
+	{
+		for ( int i=0; i<nV; ++i )
+			row[i] = A[number*NVMAX + i];
+
+		return SUCCESSFUL_RETURN;
+	}
+	else
+		return THROWERROR( RET_INDEX_OUT_OF_BOUNDS );
+}
+
+
+/*
+ *	g e t L B A
+ */
+inline returnValue QProblem::getLBA( real_t* const _lbA ) const
+{
+	int i;
+
+	for ( i=0; i<getNC( ); ++i )
+		_lbA[i] = lbA[i];
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	g e t L B A
+ */
+inline returnValue QProblem::getLBA( int number, real_t& value ) const
+{
+	if ( ( number >= 0 ) && ( number < getNC( ) ) )
+	{
+		value = lbA[number];
+		return SUCCESSFUL_RETURN;
+	}
+	else
+		return THROWERROR( RET_INDEX_OUT_OF_BOUNDS );
+}
+
+
+/*
+ *	g e t U B A
+ */
+inline returnValue QProblem::getUBA( real_t* const _ubA ) const
+{
+	int i;
+
+	for ( i=0; i<getNC( ); ++i )
+		_ubA[i] = ubA[i];
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	g e t U B A
+ */
+inline returnValue QProblem::getUBA( int number, real_t& value ) const
+{
+	if ( ( number >= 0 ) && ( number < getNC( ) ) )
+	{
+		value = ubA[number];
+		return SUCCESSFUL_RETURN;
+	}
+	else
+		return THROWERROR( RET_INDEX_OUT_OF_BOUNDS );
+}
+
+
+/*
+ *	g e t C o n s t r a i n t s
+ */
+inline returnValue QProblem::getConstraints( Constraints* const _constraints ) const
+{
+	*_constraints = constraints;
+	
+	return SUCCESSFUL_RETURN;
+}
+
+
+
+/*
+ *	g e t N C
+ */
+inline int QProblem::getNC( ) const
+{
+	return constraints.getNC( );
+}
+
+
+/*
+ *	g e t N E C
+ */
+inline int QProblem::getNEC( ) const
+{
+	return constraints.getNEC( );
+}
+
+
+/*
+ *	g e t N A C
+ */
+inline int QProblem::getNAC( )
+{
+	return constraints.getNAC( );
+}
+
+
+/*
+ *	g e t N I A C
+ */
+inline int QProblem::getNIAC( )
+{
+	return constraints.getNIAC( );
+}
+
+
+
+/*****************************************************************************
+ *  P R O T E C T E D                                                        *
+ *****************************************************************************/
+ 
+
+/*
+ *	s e t A
+ */
+inline returnValue QProblem::setA( const real_t* const A_new )
+{
+	int i, j;
+	int nV = getNV( );
+	int nC = getNC( );
+
+	/* Set constraint matrix AND update member AX. */
+	for( j=0; j<nC; ++j )
+	{
+		Ax[j] = 0.0;
+
+		for( i=0; i<nV; ++i )
+		{	
+			A[j*NVMAX + i] = A_new[j*nV + i];
+			Ax[j] += A[j*NVMAX + i] * x[i];
+		}
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s e t A
+ */
+inline returnValue QProblem::setA( int number, const real_t* const row )
+{
+	int i;
+	int nV = getNV( );
+
+	/* Set constraint matrix AND update member AX. */
+	if ( ( number >= 0 ) && ( number < getNC( ) ) )
+	{
+		Ax[number] = 0.0;
+
+		for( i=0; i<nV; ++i )
+		{
+			A[number*NVMAX + i] = row[i];
+			Ax[number] += A[number*NVMAX + i] * x[i];
+		}
+
+		return SUCCESSFUL_RETURN;
+	}
+	else
+		return THROWERROR( RET_INDEX_OUT_OF_BOUNDS );
+}
+
+
+/*
+ *	s e t L B A
+ */
+inline returnValue QProblem::setLBA( const real_t* const lbA_new )
+{
+	int i;
+	int nC = getNC();
+
+	for( i=0; i<nC; ++i )
+		lbA[i] = lbA_new[i];
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s e t L B A
+ */
+inline returnValue QProblem::setLBA( int number, real_t value )
+{
+	if ( ( number >= 0 ) && ( number < getNC( ) ) )
+	{
+		lbA[number] = value;
+		return SUCCESSFUL_RETURN;
+	}
+	else
+		return THROWERROR( RET_INDEX_OUT_OF_BOUNDS );
+}
+
+
+/*
+ *	s e t U B A
+ */
+inline returnValue QProblem::setUBA( const real_t* const ubA_new )
+{
+	int i;
+	int nC = getNC();
+
+	for( i=0; i<nC; ++i )
+		ubA[i] = ubA_new[i];
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s e t U B A
+ */
+inline returnValue QProblem::setUBA( int number, real_t value )
+{
+	if ( ( number >= 0 ) && ( number < getNC( ) ) )
+	{
+		ubA[number] = value;
+		return SUCCESSFUL_RETURN;
+	}
+	else
+		return THROWERROR( RET_INDEX_OUT_OF_BOUNDS );
+}
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/QProblemB.cpp b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/QProblemB.cpp
new file mode 100644
index 0000000..47ac353
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/QProblemB.cpp
@@ -0,0 +1,2151 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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 SRC/QProblemB.cpp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Implementation of the QProblemB class which is able to use the newly
+ *	developed online active set strategy for parametric quadratic programming.
+ */
+
+
+#include <QProblemB.hpp>
+
+#include <stdio.h>
+
+void printmatrix(char *name, double *A, int m, int n) {
+  int i, j;
+
+  printf("%s = [...\n", name);
+  for (i = 0; i < m; i++) {
+    for (j = 0; j < n; j++)
+        printf("  % 9.4f", A[i*n+j]);
+    printf(",\n");
+  }
+  printf("];\n");
+}
+
+
+
+/*****************************************************************************
+ *  P U B L I C                                                              *
+ *****************************************************************************/
+
+
+/*
+ *	Q P r o b l e m B
+ */
+QProblemB::QProblemB( )
+{
+	/* reset global message handler */
+	getGlobalMessageHandler( )->reset( );
+
+	hasHessian = BT_FALSE;
+
+	bounds.init( 0 );
+
+	hasCholesky = BT_FALSE;
+
+	tau = 0.0;
+
+	hessianType = HST_POSDEF_NULLSPACE; /* Hessian is assumed to be positive definite by default */
+	infeasible = BT_FALSE;
+	unbounded = BT_FALSE;
+
+	status = QPS_NOTINITIALISED;
+
+	#ifdef PC_DEBUG
+	printlevel = PL_MEDIUM;
+	setPrintLevel( PL_MEDIUM );
+	#else
+	printlevel = QPOASES_PRINTLEVEL;
+	#endif
+
+	count = 0;
+}
+
+
+/*
+ *	Q P r o b l e m B
+ */
+QProblemB::QProblemB( int _nV )
+{
+	/* consistency check */
+	if ( _nV <= 0 )
+	{
+		_nV = 1;
+		THROWERROR( RET_INVALID_ARGUMENTS );
+	}
+
+	hasHessian = BT_FALSE;
+
+	/* reset global message handler */
+	getGlobalMessageHandler( )->reset( );
+
+	bounds.init( _nV );
+
+	hasCholesky = BT_FALSE;
+
+	tau = 0.0;
+
+	hessianType = HST_POSDEF_NULLSPACE; /* Hessian is assumed to be positive definite by default */
+	infeasible = BT_FALSE;
+	unbounded = BT_FALSE;
+
+	status = QPS_NOTINITIALISED;
+
+	#ifdef PC_DEBUG
+	printlevel = PL_MEDIUM;
+	setPrintLevel( PL_MEDIUM );
+	#else
+	printlevel = QPOASES_PRINTLEVEL;
+	#endif
+
+	count = 0;
+}
+
+
+/*
+ *	Q P r o b l e m B
+ */
+QProblemB::QProblemB( const QProblemB& rhs )
+{
+	int i, j;
+
+	int _nV = rhs.bounds.getNV( );
+
+	for( i=0; i<_nV; ++i )
+		for( j=0; j<_nV; ++j )
+			H[i*NVMAX + j] = rhs.H[i*NVMAX + j];
+
+	hasHessian = rhs.hasHessian;
+
+	for( i=0; i<_nV; ++i )
+		g[i] = rhs.g[i];
+
+	for( i=0; i<_nV; ++i )
+		lb[i] = rhs.lb[i];
+
+	for( i=0; i<_nV; ++i )
+		ub[i] = rhs.ub[i];
+
+
+	bounds = rhs.bounds;
+
+	for( i=0; i<_nV; ++i )
+		for( j=0; j<_nV; ++j )
+			R[i*NVMAX + j] = rhs.R[i*NVMAX + j];
+	hasCholesky = rhs.hasCholesky;
+
+	for( i=0; i<_nV; ++i )
+		x[i] = rhs.x[i];
+
+	for( i=0; i<_nV; ++i )
+		y[i] = rhs.y[i];
+
+	tau = rhs.tau;
+
+	hessianType = rhs.hessianType;
+	infeasible = rhs.infeasible;
+	unbounded = rhs.unbounded;
+
+	status = rhs.status;
+
+	printlevel = rhs.printlevel;
+
+	count = rhs.count;
+}
+
+
+/*
+ *	~ Q P r o b l e m B
+ */
+QProblemB::~QProblemB( )
+{
+}
+
+
+/*
+ *	o p e r a t o r =
+ */
+QProblemB& QProblemB::operator=( const QProblemB& rhs )
+{
+	int i, j;
+
+	if ( this != &rhs )
+	{
+		int _nV = rhs.bounds.getNV( );
+
+		for( i=0; i<_nV; ++i )
+			for( j=0; j<_nV; ++j )
+				H[i*NVMAX + j] = rhs.H[i*NVMAX + j];
+
+		hasHessian = rhs.hasHessian;
+
+		for( i=0; i<_nV; ++i )
+			g[i] = rhs.g[i];
+
+		for( i=0; i<_nV; ++i )
+			lb[i] = rhs.lb[i];
+
+		for( i=0; i<_nV; ++i )
+			ub[i] = rhs.ub[i];
+
+		bounds = rhs.bounds;
+
+		for( i=0; i<_nV; ++i )
+			for( j=0; j<_nV; ++j )
+				R[i*NVMAX + j] = rhs.R[i*NVMAX + j];
+		hasCholesky = rhs.hasCholesky;
+
+
+		for( i=0; i<_nV; ++i )
+			x[i] = rhs.x[i];
+
+		for( i=0; i<_nV; ++i )
+			y[i] = rhs.y[i];
+
+		tau = rhs.tau;
+
+		hessianType = rhs.hessianType;
+		infeasible = rhs.infeasible;
+		unbounded = rhs.unbounded;
+
+		status = rhs.status;
+
+		printlevel = rhs.printlevel;
+		setPrintLevel( rhs.printlevel );
+
+		count = rhs.count;
+	}
+
+	return *this;
+}
+
+
+/*
+ *	r e s e t
+ */
+returnValue QProblemB::reset( )
+{
+	int i, j;
+	int nV = getNV( );
+
+	/** 0) Reset has Hessian flag. */
+	hasHessian = BT_FALSE;
+
+	/* 1) Reset bounds. */
+	bounds.init( nV );
+
+	/* 2) Reset Cholesky decomposition. */
+	for( i=0; i<nV; ++i )
+		for( j=0; j<nV; ++j )
+			R[i*NVMAX + j] = 0.0;
+	hasCholesky = BT_FALSE;
+
+	/* 3) Reset steplength and status flags. */
+	tau = 0.0;
+
+	hessianType = HST_POSDEF_NULLSPACE; /* Hessian is assumed to be positive definite by default */
+	infeasible = BT_FALSE;
+	unbounded = BT_FALSE;
+
+	status = QPS_NOTINITIALISED;
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	i n i t
+ */
+returnValue QProblemB::init(	const real_t* const _H, const real_t* const _g,
+								const real_t* const _lb, const real_t* const _ub,
+								int& nWSR, const real_t* const yOpt, real_t* const cputime
+								)
+{
+	/* 1) Setup QP data. */
+	if (setupQPdata(_H, 0, _g, _lb, _ub) != SUCCESSFUL_RETURN)
+		return THROWERROR( RET_INVALID_ARGUMENTS );
+
+	/* 2) Call to main initialisation routine (without any additional information). */
+	return solveInitialQP(0, yOpt, 0, nWSR, cputime);
+}
+
+returnValue QProblemB::init(	const real_t* const _H, const real_t* const _R, const real_t* const _g,
+								const real_t* const _lb, const real_t* const _ub,
+								int& nWSR, const real_t* const yOpt, real_t* const cputime
+								)
+{
+	/* 1) Setup QP data. */
+	if (setupQPdata(_H, _R, _g, _lb, _ub) != SUCCESSFUL_RETURN)
+		return THROWERROR( RET_INVALID_ARGUMENTS );
+
+	/* 2) Call to main initialisation routine (without any additional information). */
+	return solveInitialQP(0, yOpt, 0, nWSR, cputime);
+}
+
+
+/*
+ *	h o t s t a r t
+ */
+returnValue QProblemB::hotstart(	const real_t* const g_new, const real_t* const lb_new, const real_t* const ub_new,
+									int& nWSR, real_t* const cputime
+									)
+{
+	int l;
+
+	/* consistency check */
+	if ( ( getStatus( ) == QPS_NOTINITIALISED )       ||
+		 ( getStatus( ) == QPS_PREPARINGAUXILIARYQP ) ||
+		 ( getStatus( ) == QPS_PERFORMINGHOMOTOPY )   )
+	{
+		return THROWERROR( RET_HOTSTART_FAILED_AS_QP_NOT_INITIALISED );
+	}
+
+	/* start runtime measurement */
+	real_t starttime = 0.0;
+	if ( cputime != 0 )
+		starttime = getCPUtime( );
+
+
+	/* I) PREPARATIONS */
+	/* 1) Reset status flags and increase QP counter. */
+	infeasible = BT_FALSE;
+	unbounded = BT_FALSE;
+
+	++count;
+
+	/* 2) Allocate delta vectors of gradient and bounds. */
+	returnValue returnvalue;
+	BooleanType Delta_bB_isZero;
+
+	int FR_idx[NVMAX];
+	int FX_idx[NVMAX];
+
+	real_t delta_g[NVMAX];
+	real_t delta_lb[NVMAX];
+	real_t delta_ub[NVMAX];
+
+	real_t delta_xFR[NVMAX];
+	real_t delta_xFX[NVMAX];
+	real_t delta_yFX[NVMAX];
+
+	int BC_idx;
+	SubjectToStatus BC_status;
+
+	#ifdef PC_DEBUG
+	char messageString[80];
+	#endif
+
+	/* II) MAIN HOMOTOPY LOOP */
+	for( l=0; l<nWSR; ++l )
+	{
+		status = QPS_PERFORMINGHOMOTOPY;
+
+		if ( printlevel == PL_HIGH )
+		{
+			#ifdef PC_DEBUG
+			sprintf( messageString,"%d ...",l );
+			getGlobalMessageHandler( )->throwInfo( RET_ITERATION_STARTED,messageString,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE );
+			#endif
+		}
+
+		/* 1) Setup index arrays. */
+		if ( bounds.getFree( )->getNumberArray( FR_idx ) != SUCCESSFUL_RETURN )
+			return THROWERROR( RET_HOTSTART_FAILED );
+
+		if ( bounds.getFixed( )->getNumberArray( FX_idx ) != SUCCESSFUL_RETURN )
+			return THROWERROR( RET_HOTSTART_FAILED );
+
+		/* 2) Initialize shift direction of the gradient and the bounds. */
+		returnvalue = hotstart_determineDataShift(  FX_idx,
+													g_new,lb_new,ub_new,
+													delta_g,delta_lb,delta_ub,
+													Delta_bB_isZero
+													);
+		if ( returnvalue != SUCCESSFUL_RETURN )
+		{
+			nWSR = l;
+			THROWERROR( RET_SHIFT_DETERMINATION_FAILED );
+			return returnvalue;
+		}
+
+		/* 3) Determination of step direction of X and Y. */
+		returnvalue = hotstart_determineStepDirection(	FR_idx,FX_idx,
+														delta_g,delta_lb,delta_ub,
+														Delta_bB_isZero,
+														delta_xFX,delta_xFR,delta_yFX
+														);
+		if ( returnvalue != SUCCESSFUL_RETURN )
+		{
+			nWSR = l;
+			THROWERROR( RET_STEPDIRECTION_DETERMINATION_FAILED );
+			return returnvalue;
+		}
+
+
+		/* 4) Determination of step length TAU. */
+		returnvalue = hotstart_determineStepLength(	FR_idx,FX_idx,
+													delta_lb,delta_ub,
+													delta_xFR,delta_yFX,
+													BC_idx,BC_status );
+		if ( returnvalue != SUCCESSFUL_RETURN )
+		{
+			nWSR = l;
+			THROWERROR( RET_STEPLENGTH_DETERMINATION_FAILED );
+			return returnvalue;
+		}
+
+		/* 5) Realization of the homotopy step. */
+		returnvalue = hotstart_performStep(	FR_idx,FX_idx,
+											delta_g,delta_lb,delta_ub,
+											delta_xFX,delta_xFR,delta_yFX,
+											BC_idx,BC_status
+											);
+
+
+		if ( returnvalue != SUCCESSFUL_RETURN )
+		{
+			nWSR = l;
+
+			/* stop runtime measurement */
+			if ( cputime != 0 )
+				*cputime = getCPUtime( ) - starttime;
+
+			/* optimal solution found? */
+			if ( returnvalue == RET_OPTIMAL_SOLUTION_FOUND )
+			{
+				status = QPS_SOLVED;
+
+				if ( printlevel == PL_HIGH )
+					THROWINFO( RET_OPTIMAL_SOLUTION_FOUND );
+
+				#ifdef PC_DEBUG
+	 			if ( printIteration( l,BC_idx,BC_status ) != SUCCESSFUL_RETURN )
+					THROWERROR( RET_PRINT_ITERATION_FAILED ); /* do not pass this as return value! */
+				#endif
+
+				/* check KKT optimality conditions */
+				return checkKKTconditions( );
+			}
+			else
+			{
+				/* checks for infeasibility... */
+				if ( infeasible == BT_TRUE )
+				{
+					status = QPS_HOMOTOPYQPSOLVED;
+					return THROWERROR( RET_HOTSTART_STOPPED_INFEASIBILITY );
+				}
+
+				/* ...unboundedness... */
+				if ( unbounded == BT_TRUE ) /* not necessary since objective function convex! */
+					return THROWERROR( RET_HOTSTART_STOPPED_UNBOUNDEDNESS );
+
+				/* ... and throw unspecific error otherwise */
+				THROWERROR( RET_HOMOTOPY_STEP_FAILED );
+				return returnvalue;
+			}
+		}
+
+		/* 6) Output information of successful QP iteration. */
+		status = QPS_HOMOTOPYQPSOLVED;
+
+		#ifdef PC_DEBUG
+		if ( printIteration( l,BC_idx,BC_status ) != SUCCESSFUL_RETURN )
+			THROWERROR( RET_PRINT_ITERATION_FAILED ); /* do not pass this as return value! */
+		#endif
+	}
+
+
+	/* stop runtime measurement */
+	if ( cputime != 0 )
+		*cputime = getCPUtime( ) - starttime;
+
+
+	/* if programm gets to here, output information that QP could not be solved
+	 * within the given maximum numbers of working set changes */
+	if ( printlevel == PL_HIGH )
+	{
+		#ifdef PC_DEBUG
+		sprintf( messageString,"(nWSR = %d)",nWSR );
+		return getGlobalMessageHandler( )->throwWarning( RET_MAX_NWSR_REACHED,messageString,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE );
+		#endif
+	}
+
+	/* Finally check KKT optimality conditions. */
+	returnValue returnvalueKKTcheck = checkKKTconditions( );
+
+	if ( returnvalueKKTcheck != SUCCESSFUL_RETURN )
+		return returnvalueKKTcheck;
+	else
+		return RET_MAX_NWSR_REACHED;
+}
+
+
+/*
+ *	g e t N Z
+ */
+int QProblemB::getNZ( )
+{
+	/* if no constraints are present: nZ=nFR */
+	return bounds.getFree( )->getLength( );
+}
+
+
+/*
+ *	g e t O b j V a l
+ */
+real_t QProblemB::getObjVal( ) const
+{
+	real_t objVal;
+
+	/* calculated optimal objective function value
+	 * only if current QP has been solved */
+	if ( ( getStatus( ) == QPS_AUXILIARYQPSOLVED ) ||
+		 ( getStatus( ) == QPS_HOMOTOPYQPSOLVED )  ||
+		 ( getStatus( ) == QPS_SOLVED ) )
+	{
+		objVal = getObjVal( x );
+	}
+	else
+	{
+		objVal = INFTY;
+	}
+
+	return objVal;
+}
+
+
+/*
+ *	g e t O b j V a l
+ */
+real_t QProblemB::getObjVal( const real_t* const _x ) const
+{
+	int i, j;
+	int nV = getNV( );
+
+	real_t obj_tmp = 0.0;
+
+	for( i=0; i<nV; ++i )
+	{
+		obj_tmp += _x[i]*g[i];
+
+		for( j=0; j<nV; ++j )
+			obj_tmp += 0.5*_x[i]*H[i*NVMAX + j]*_x[j];
+	}
+
+	return obj_tmp;
+}
+
+
+/*
+ *	g e t P r i m a l S o l u t i o n
+ */
+returnValue QProblemB::getPrimalSolution( real_t* const xOpt ) const
+{
+	int i;
+
+	/* return optimal primal solution vector
+	 * only if current QP has been solved */
+	if ( ( getStatus( ) == QPS_AUXILIARYQPSOLVED ) ||
+		 ( getStatus( ) == QPS_HOMOTOPYQPSOLVED )  ||
+		 ( getStatus( ) == QPS_SOLVED ) )
+	{
+		for( i=0; i<getNV( ); ++i )
+			xOpt[i] = x[i];
+
+		return SUCCESSFUL_RETURN;
+	}
+	else
+	{
+		return RET_QP_NOT_SOLVED;
+	}
+}
+
+
+/*
+ *	g e t D u a l S o l u t i o n
+ */
+returnValue QProblemB::getDualSolution( real_t* const yOpt ) const
+{
+	int i;
+
+	/* return optimal dual solution vector
+	 * only if current QP has been solved */
+	if ( ( getStatus( ) == QPS_AUXILIARYQPSOLVED ) ||
+		 ( getStatus( ) == QPS_HOMOTOPYQPSOLVED )  ||
+		 ( getStatus( ) == QPS_SOLVED ) )
+	{
+		for( i=0; i<getNV( ); ++i )
+			yOpt[i] = y[i];
+
+		return SUCCESSFUL_RETURN;
+	}
+	else
+	{
+		return RET_QP_NOT_SOLVED;
+	}
+}
+
+
+/*
+ *	s e t P r i n t L e v e l
+ */
+returnValue QProblemB::setPrintLevel( PrintLevel _printlevel )
+{
+	#ifndef __MATLAB__
+	if ( ( printlevel >= PL_MEDIUM ) && ( printlevel != _printlevel ) )
+		THROWINFO( RET_PRINTLEVEL_CHANGED );
+	#endif
+
+	printlevel = _printlevel;
+
+	/* update message handler preferences */
+ 	switch ( printlevel )
+ 	{
+ 		case PL_NONE:
+ 			getGlobalMessageHandler( )->setErrorVisibilityStatus( VS_HIDDEN );
+			getGlobalMessageHandler( )->setWarningVisibilityStatus( VS_HIDDEN );
+			getGlobalMessageHandler( )->setInfoVisibilityStatus( VS_HIDDEN );
+			break;
+
+		case PL_LOW:
+ 			getGlobalMessageHandler( )->setErrorVisibilityStatus( VS_VISIBLE );
+			getGlobalMessageHandler( )->setWarningVisibilityStatus( VS_HIDDEN );
+			getGlobalMessageHandler( )->setInfoVisibilityStatus( VS_HIDDEN );
+			break;
+
+ 		default: /* PL_MEDIUM, PL_HIGH */
+ 			getGlobalMessageHandler( )->setErrorVisibilityStatus( VS_VISIBLE );
+			getGlobalMessageHandler( )->setWarningVisibilityStatus( VS_VISIBLE );
+			getGlobalMessageHandler( )->setInfoVisibilityStatus( VS_VISIBLE );
+			break;
+ 	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+
+/*****************************************************************************
+ *  P R O T E C T E D                                                        *
+ *****************************************************************************/
+
+/*
+ *	c h e c k F o r I d e n t i t y H e s s i a n
+ */
+returnValue QProblemB::checkForIdentityHessian( )
+{
+	int i, j;
+	int nV = getNV( );
+
+	/* nothing to do as status flag remains unaltered
+	 * if Hessian differs from identity matrix */
+	if ( hessianType == HST_IDENTITY )
+		return SUCCESSFUL_RETURN;
+
+	/* 1) If Hessian differs from identity matrix,
+	 *    return without changing the internal HessianType. */
+	for ( i=0; i<nV; ++i )
+		if ( getAbs( H[i*NVMAX + i] - 1.0 ) > EPS )
+			return SUCCESSFUL_RETURN;
+
+	for ( i=0; i<nV; ++i )
+	{
+		for ( j=0; j<i; ++j )
+			if ( ( getAbs( H[i*NVMAX + j] ) > EPS ) || ( getAbs( H[j*NVMAX + i] ) > EPS ) )
+				return SUCCESSFUL_RETURN;
+	}
+
+	/* 2) If this point is reached, Hessian equals the idetity matrix. */
+	hessianType = HST_IDENTITY;
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s e t u p S u b j e c t T o T y p e
+ */
+returnValue QProblemB::setupSubjectToType( )
+{
+	int i;
+	int nV = getNV( );
+
+
+	/* 1) Check if lower bounds are present. */
+	bounds.setNoLower( BT_TRUE );
+	for( i=0; i<nV; ++i )
+		if ( lb[i] > -INFTY )
+		{
+			bounds.setNoLower( BT_FALSE );
+			break;
+		}
+
+	/* 2) Check if upper bounds are present. */
+	bounds.setNoUpper( BT_TRUE );
+	for( i=0; i<nV; ++i )
+		if ( ub[i] < INFTY )
+		{
+			bounds.setNoUpper( BT_FALSE );
+			break;
+		}
+
+	/* 3) Determine implicitly fixed and unbounded variables. */
+	int nFV = 0;
+	int nUV = 0;
+
+	for( i=0; i<nV; ++i )
+		if ( ( lb[i] < -INFTY + BOUNDTOL ) && ( ub[i] > INFTY - BOUNDTOL ) )
+		{
+			bounds.setType( i,ST_UNBOUNDED );
+			++nUV;
+		}
+		else
+		{
+			if ( lb[i] > ub[i] - BOUNDTOL )
+			{
+				bounds.setType( i,ST_EQUALITY );
+				++nFV;
+			}
+			else
+			{
+				bounds.setType( i,ST_BOUNDED );
+			}
+		}
+
+	/* 4) Set dimensions of bounds structure. */
+	bounds.setNFV( nFV );
+	bounds.setNUV( nUV );
+	bounds.setNBV( nV - nFV - nUV );
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	c h o l e s k y D e c o m p o s i t i o n
+ */
+returnValue QProblemB::setupCholeskyDecomposition( )
+{
+	int i, j, k, ii, jj;
+	int nV  = getNV( );
+	int nFR = getNFR( );
+
+	/* If Hessian flag is false, it means that H & R already contain Cholesky
+	 * factorization -- provided from outside. */
+	if (hasHessian == BT_FALSE)
+		return SUCCESSFUL_RETURN;
+
+	/* 1) Initialises R with all zeros. */
+	for( i=0; i<nV; ++i )
+		for( j=0; j<nV; ++j )
+			R[i*NVMAX + j] = 0.0;
+
+	/* 2) Calculate Cholesky decomposition of H (projected to free variables). */
+	if ( hessianType == HST_IDENTITY )
+	{
+		/* if Hessian is identity, so is its Cholesky factor. */
+		for( i=0; i<nFR; ++i )
+			R[i*NVMAX + i] = 1.0;
+	}
+	else
+	{
+		if ( nFR > 0 )
+		{
+			int FR_idx[NVMAX];
+			if ( bounds.getFree( )->getNumberArray( FR_idx ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_INDEXLIST_CORRUPTED );
+
+			/* R'*R = H */
+			real_t sum;
+			real_t inv;
+
+			for( i=0; i<nFR; ++i )
+			{
+				/* j == i */
+				ii = FR_idx[i];
+				sum = H[ii*NVMAX + ii];
+
+				for( k=(i-1); k>=0; --k )
+					sum -= R[k*NVMAX + i] * R[k*NVMAX + i];
+
+				if ( sum > 0.0 )
+				{
+					R[i*NVMAX + i] = sqrt( sum );
+					inv = 1.0 / R[i*NVMAX + i];
+				}
+				else
+				{
+					hessianType = HST_SEMIDEF;
+					return THROWERROR( RET_HESSIAN_NOT_SPD );
+				}
+
+				/* j > i */
+				for( j=(i+1); j<nFR; ++j )
+				{
+					jj = FR_idx[j];
+					sum = H[jj*NVMAX + ii];
+
+					for( k=(i-1); k>=0; --k )
+						sum -= R[k*NVMAX + i] * R[k*NVMAX + j];
+
+					R[i*NVMAX + j] = sum * inv;
+				}
+			}
+		}
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s o l v e I n i t i a l Q P
+ */
+returnValue QProblemB::solveInitialQP(	const real_t* const xOpt, const real_t* const yOpt,
+										const Bounds* const guessedBounds,
+										int& nWSR, real_t* const cputime
+										)
+{
+	int i, nFR;
+	int nV = getNV( );
+
+
+	/* start runtime measurement */
+	real_t starttime = 0.0;
+	if ( cputime != 0 )
+		starttime = getCPUtime( );
+
+
+	status = QPS_NOTINITIALISED;
+
+	/* I) ANALYSE QP DATA: */
+	/* 1) Check if Hessian happens to be the identity matrix. */
+	if ( checkForIdentityHessian( ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_INIT_FAILED );
+
+	/* 2) Setup type of bounds (i.e. unbounded, implicitly fixed etc.). */
+	if ( setupSubjectToType( ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_INIT_FAILED );
+
+	status = QPS_PREPARINGAUXILIARYQP;
+
+
+	/* II) SETUP AUXILIARY QP WITH GIVEN OPTIMAL SOLUTION: */
+	/* 1) Setup bounds data structure. */
+	if ( bounds.setupAllFree( ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_INIT_FAILED );
+
+	/* 2) Setup optimal primal/dual solution for auxiliary QP. */
+	if ( setupAuxiliaryQPsolution( xOpt,yOpt ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_INIT_FAILED );
+
+	/* 3) Obtain linear independent working set for auxiliary QP. */
+
+	static Bounds auxiliaryBounds;
+
+	auxiliaryBounds.init( nV );
+
+	if ( obtainAuxiliaryWorkingSet( xOpt,yOpt,guessedBounds, &auxiliaryBounds ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_INIT_FAILED );
+
+	/* 4) Setup working set of auxiliary QP and setup cholesky decomposition. */
+	if ( setupAuxiliaryWorkingSet( &auxiliaryBounds,BT_TRUE ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_INIT_FAILED );
+
+	nFR = getNFR();
+	/* At the moment we can only provide a Cholesky of the Hessian if
+	 * the solver is cold-started. */
+	if (hasCholesky == BT_FALSE || nFR != nV)
+		if (setupCholeskyDecomposition() != SUCCESSFUL_RETURN)
+			return THROWERROR( RET_INIT_FAILED_CHOLESKY );
+
+	/* 5) Store original QP formulation... */
+	real_t g_original[NVMAX];
+	real_t lb_original[NVMAX];
+	real_t ub_original[NVMAX];
+
+	for( i=0; i<nV; ++i )
+		g_original[i] = g[i];
+	for( i=0; i<nV; ++i )
+		lb_original[i] = lb[i];
+	for( i=0; i<nV; ++i )
+		ub_original[i] = ub[i];
+
+	/* ... and setup QP data of an auxiliary QP having an optimal solution
+	 * as specified by the user (or xOpt = yOpt = 0, by default). */
+	if ( setupAuxiliaryQPgradient( ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_INIT_FAILED );
+
+	if ( setupAuxiliaryQPbounds( BT_TRUE ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_INIT_FAILED );
+
+	status = QPS_AUXILIARYQPSOLVED;
+
+
+	/* III) SOLVE ACTUAL INITIAL QP: */
+	/* Use hotstart method to find the solution of the original initial QP,... */
+	returnValue returnvalue = hotstart( g_original,lb_original,ub_original, nWSR,0 );
+
+
+	/* ... check for infeasibility and unboundedness... */
+	if ( isInfeasible( ) == BT_TRUE )
+		return THROWERROR( RET_INIT_FAILED_INFEASIBILITY );
+
+	if ( isUnbounded( ) == BT_TRUE )
+		return THROWERROR( RET_INIT_FAILED_UNBOUNDEDNESS );
+
+	/* ... and internal errors. */
+	if ( ( returnvalue != SUCCESSFUL_RETURN ) && ( returnvalue != RET_MAX_NWSR_REACHED )  &&
+	     ( returnvalue != RET_INACCURATE_SOLUTION ) && ( returnvalue != RET_NO_SOLUTION ) )
+		return THROWERROR( RET_INIT_FAILED_HOTSTART );
+
+
+	/* stop runtime measurement */
+	if ( cputime != 0 )
+		*cputime = getCPUtime( ) - starttime;
+
+	if ( printlevel == PL_HIGH )
+		THROWINFO( RET_INIT_SUCCESSFUL );
+
+	return returnvalue;
+}
+
+
+/*
+ *	o b t a i n A u x i l i a r y W o r k i n g S e t
+ */
+returnValue QProblemB::obtainAuxiliaryWorkingSet(	const real_t* const xOpt, const real_t* const yOpt,
+													const Bounds* const guessedBounds, Bounds* auxiliaryBounds
+													) const
+{
+	int i = 0;
+	int nV = getNV( );
+
+
+	/* 1) Ensure that desiredBounds is allocated (and different from guessedBounds). */
+	if ( ( auxiliaryBounds == 0 ) || ( auxiliaryBounds == guessedBounds ) )
+		return THROWERROR( RET_INVALID_ARGUMENTS );
+
+
+	/* 2) Setup working set for auxiliary initial QP. */
+	if ( guessedBounds != 0 )
+	{
+		/* If an initial working set is specific, use it!
+		 * Moreover, add all implictly fixed variables if specified. */
+		for( i=0; i<nV; ++i )
+		{
+			if ( bounds.getType( i ) == ST_EQUALITY )
+			{
+				if ( auxiliaryBounds->setupBound( i,ST_LOWER ) != SUCCESSFUL_RETURN )
+					return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+			}
+			else
+			{
+				if ( auxiliaryBounds->setupBound( i,guessedBounds->getStatus( i ) ) != SUCCESSFUL_RETURN )
+					return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+			}
+		}
+	}
+	else	/* No initial working set specified. */
+	{
+		if ( ( xOpt != 0 ) && ( yOpt == 0 ) )
+		{
+			/* Obtain initial working set by "clipping". */
+			for( i=0; i<nV; ++i )
+			{
+				if ( xOpt[i] <= lb[i] + BOUNDTOL )
+				{
+					if ( auxiliaryBounds->setupBound( i,ST_LOWER ) != SUCCESSFUL_RETURN )
+						return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+					continue;
+				}
+
+				if ( xOpt[i] >= ub[i] - BOUNDTOL )
+				{
+					if ( auxiliaryBounds->setupBound( i,ST_UPPER ) != SUCCESSFUL_RETURN )
+						return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+					continue;
+				}
+
+				/* Moreover, add all implictly fixed variables if specified. */
+				if ( bounds.getType( i ) == ST_EQUALITY )
+				{
+					if ( auxiliaryBounds->setupBound( i,ST_LOWER ) != SUCCESSFUL_RETURN )
+						return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+				}
+				else
+				{
+					if ( auxiliaryBounds->setupBound( i,ST_INACTIVE ) != SUCCESSFUL_RETURN )
+						return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+				}
+			}
+		}
+
+		if ( ( xOpt == 0 ) && ( yOpt != 0 ) )
+		{
+			/* Obtain initial working set in accordance to sign of dual solution vector. */
+			for( i=0; i<nV; ++i )
+			{
+				if ( yOpt[i] > ZERO )
+				{
+					if ( auxiliaryBounds->setupBound( i,ST_LOWER ) != SUCCESSFUL_RETURN )
+						return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+					continue;
+				}
+
+				if ( yOpt[i] < -ZERO )
+				{
+					if ( auxiliaryBounds->setupBound( i,ST_UPPER ) != SUCCESSFUL_RETURN )
+						return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+					continue;
+				}
+
+				/* Moreover, add all implictly fixed variables if specified. */
+				if ( bounds.getType( i ) == ST_EQUALITY )
+				{
+					if ( auxiliaryBounds->setupBound( i,ST_LOWER ) != SUCCESSFUL_RETURN )
+						return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+				}
+				else
+				{
+					if ( auxiliaryBounds->setupBound( i,ST_INACTIVE ) != SUCCESSFUL_RETURN )
+						return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+				}
+			}
+		}
+
+		/* If xOpt and yOpt are null pointer and no initial working is specified,
+		 * start with empty working set (or implicitly fixed bounds only)
+		 * for auxiliary QP. */
+		if ( ( xOpt == 0 ) && ( yOpt == 0 ) )
+		{
+			for( i=0; i<nV; ++i )
+			{
+				/* Only add all implictly fixed variables if specified. */
+				if ( bounds.getType( i ) == ST_EQUALITY )
+				{
+					if ( auxiliaryBounds->setupBound( i,ST_LOWER ) != SUCCESSFUL_RETURN )
+						return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+				}
+				else
+				{
+					if ( auxiliaryBounds->setupBound( i,ST_INACTIVE ) != SUCCESSFUL_RETURN )
+						return THROWERROR( RET_OBTAINING_WORKINGSET_FAILED );
+				}
+			}
+		}
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s e t u p A u x i l i a r y W o r k i n g S e t
+ */
+returnValue QProblemB::setupAuxiliaryWorkingSet( 	const Bounds* const auxiliaryBounds,
+													BooleanType setupAfresh
+													)
+{
+	int i;
+	int nV = getNV( );
+
+	/* consistency checks */
+	if ( auxiliaryBounds != 0 )
+	{
+		for( i=0; i<nV; ++i )
+			if ( ( bounds.getStatus( i ) == ST_UNDEFINED ) || ( auxiliaryBounds->getStatus( i ) == ST_UNDEFINED ) )
+				return THROWERROR( RET_UNKNOWN_BUG );
+	}
+	else
+	{
+		return THROWERROR( RET_INVALID_ARGUMENTS );
+	}
+
+
+	/* I) SETUP CHOLESKY FLAG:
+	 *    Cholesky decomposition shall only be updated if working set
+	 *    shall be updated (i.e. NOT setup afresh!) */
+	BooleanType updateCholesky;
+	if ( setupAfresh == BT_TRUE )
+		updateCholesky = BT_FALSE;
+	else
+		updateCholesky = BT_TRUE;
+
+
+	/* II) REMOVE FORMERLY ACTIVE BOUNDS (IF NECESSARY): */
+	if ( setupAfresh == BT_FALSE )
+	{
+		/* Remove all active bounds that shall be inactive AND
+		*  all active bounds that are active at the wrong bound. */
+		for( i=0; i<nV; ++i )
+		{
+			if ( ( bounds.getStatus( i ) == ST_LOWER ) && ( auxiliaryBounds->getStatus( i ) != ST_LOWER ) )
+				if ( removeBound( i,updateCholesky ) != SUCCESSFUL_RETURN )
+					return THROWERROR( RET_SETUP_WORKINGSET_FAILED );
+
+			if ( ( bounds.getStatus( i ) == ST_UPPER ) && ( auxiliaryBounds->getStatus( i ) != ST_UPPER ) )
+				if ( removeBound( i,updateCholesky ) != SUCCESSFUL_RETURN )
+					return THROWERROR( RET_SETUP_WORKINGSET_FAILED );
+		}
+	}
+
+
+	/* III) ADD NEWLY ACTIVE BOUNDS: */
+	/*      Add all inactive bounds that shall be active AND
+	 *      all formerly active bounds that have been active at the wrong bound. */
+	for( i=0; i<nV; ++i )
+	{
+		if ( ( bounds.getStatus( i ) == ST_INACTIVE ) && ( auxiliaryBounds->getStatus( i ) != ST_INACTIVE ) )
+		{
+			if ( addBound( i,auxiliaryBounds->getStatus( i ),updateCholesky ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_SETUP_WORKINGSET_FAILED );
+		}
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s e t u p A u x i l i a r y Q P s o l u t i o n
+ */
+returnValue QProblemB::setupAuxiliaryQPsolution(	const real_t* const xOpt, const real_t* const yOpt
+													)
+{
+	int i;
+	int nV = getNV( );
+
+
+	/* Setup primal/dual solution vectors for auxiliary initial QP:
+	 * if a null pointer is passed, a zero vector is assigned;
+	 * old solution vector is kept if pointer to internal solution vector is passed. */
+	if ( xOpt != 0 )
+	{
+		if ( xOpt != x )
+			for( i=0; i<nV; ++i )
+				x[i] = xOpt[i];
+	}
+	else
+	{
+		for( i=0; i<nV; ++i )
+			x[i] = 0.0;
+	}
+
+	if ( yOpt != 0 )
+	{
+		if ( yOpt != y )
+			for( i=0; i<nV; ++i )
+				y[i] = yOpt[i];
+	}
+	else
+	{
+		for( i=0; i<nV; ++i )
+			y[i] = 0.0;
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s e t u p A u x i l i a r y Q P g r a d i e n t
+ */
+returnValue QProblemB::setupAuxiliaryQPgradient( )
+{
+	int i, j;
+	int nV = getNV( );
+
+
+	/* Setup gradient vector: g = -H*x + y'*Id. */
+	for ( i=0; i<nV; ++i )
+	{
+		/* y'*Id */
+		g[i] = y[i];
+
+		/* -H*x */
+		for ( j=0; j<nV; ++j )
+			g[i] -= H[i*NVMAX + j] * x[j];
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s e t u p A u x i l i a r y Q P b o u n d s
+ */
+returnValue QProblemB::setupAuxiliaryQPbounds( BooleanType useRelaxation )
+{
+	int i;
+	int nV = getNV( );
+
+
+	/* Setup bound vectors. */
+	for ( i=0; i<nV; ++i )
+	{
+		switch ( bounds.getStatus( i ) )
+		{
+			case ST_INACTIVE:
+				if ( useRelaxation == BT_TRUE )
+				{
+					if ( bounds.getType( i ) == ST_EQUALITY )
+					{
+						lb[i] = x[i];
+						ub[i] = x[i];
+					}
+					else
+					{
+						lb[i] = x[i] - BOUNDRELAXATION;
+						ub[i] = x[i] + BOUNDRELAXATION;
+					}
+				}
+				break;
+
+			case ST_LOWER:
+				lb[i] = x[i];
+				if ( bounds.getType( i ) == ST_EQUALITY )
+				{
+					ub[i] = x[i];
+				}
+				else
+				{
+					if ( useRelaxation == BT_TRUE )
+						ub[i] = x[i] + BOUNDRELAXATION;
+				}
+				break;
+
+			case ST_UPPER:
+				ub[i] = x[i];
+				if ( bounds.getType( i ) == ST_EQUALITY )
+				{
+					lb[i] = x[i];
+				}
+				else
+				{
+					if ( useRelaxation == BT_TRUE )
+						lb[i] = x[i] - BOUNDRELAXATION;
+				}
+				break;
+
+			default:
+				return THROWERROR( RET_UNKNOWN_BUG );
+		}
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	a d d B o u n d
+ */
+returnValue QProblemB::addBound(	int number, SubjectToStatus B_status,
+									BooleanType updateCholesky
+									)
+{
+	int i, j;
+	int nFR = getNFR( );
+
+
+	/* consistency check */
+	if ( ( getStatus( ) == QPS_NOTINITIALISED )    ||
+		 ( getStatus( ) == QPS_AUXILIARYQPSOLVED ) ||
+		 ( getStatus( ) == QPS_HOMOTOPYQPSOLVED )  ||
+		 ( getStatus( ) == QPS_SOLVED )            )
+	{
+		return THROWERROR( RET_UNKNOWN_BUG );
+	}
+
+	/* Perform cholesky updates only if QProblemB has been initialised! */
+	if ( ( getStatus( ) == QPS_PREPARINGAUXILIARYQP ) || ( updateCholesky == BT_FALSE ) )
+	{
+		/* UPDATE INDICES */
+		if ( bounds.moveFreeToFixed( number,B_status ) != SUCCESSFUL_RETURN )
+			return THROWERROR( RET_ADDBOUND_FAILED );
+
+		return SUCCESSFUL_RETURN;
+	}
+
+
+	/* I) PERFORM CHOLESKY UPDATE: */
+	/* 1) Index of variable to be added within the list of free variables. */
+	int number_idx = bounds.getFree( )->getIndex( number );
+
+	real_t c, s;
+
+	/* 2) Use row-wise Givens rotations to restore upper triangular form of R. */
+	for( i=number_idx+1; i<nFR; ++i )
+	{
+		computeGivens( R[(i-1)*NVMAX + i],R[i*NVMAX + i], R[(i-1)*NVMAX + i],R[i*NVMAX + i],c,s );
+
+		for( j=(1+i); j<nFR; ++j ) /* last column of R is thrown away */
+			applyGivens( c,s,R[(i-1)*NVMAX + j],R[i*NVMAX + j], R[(i-1)*NVMAX + j],R[i*NVMAX + j] );
+	}
+
+	/* 3) Delete <number_idx>th column and ... */
+	for( i=0; i<nFR-1; ++i )
+		for( j=number_idx+1; j<nFR; ++j )
+			R[i*NVMAX + j-1] = R[i*NVMAX + j];
+	/* ... last column of R. */
+	for( i=0; i<nFR; ++i )
+		R[i*NVMAX + nFR-1] = 0.0;
+
+
+	/* II) UPDATE INDICES */
+	if ( bounds.moveFreeToFixed( number,B_status ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_ADDBOUND_FAILED );
+
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+returnValue QProblemB::removeBound(	int number,
+									BooleanType updateCholesky
+									)
+{
+	int i, ii;
+	int nFR = getNFR( );
+
+
+	/* consistency check */
+	if ( ( getStatus( ) == QPS_NOTINITIALISED )    ||
+		 ( getStatus( ) == QPS_AUXILIARYQPSOLVED ) ||
+		 ( getStatus( ) == QPS_HOMOTOPYQPSOLVED )  ||
+		 ( getStatus( ) == QPS_SOLVED )            )
+	{
+		return THROWERROR( RET_UNKNOWN_BUG );
+	}
+
+
+	/* I) UPDATE INDICES */
+	if ( bounds.moveFixedToFree( number ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_REMOVEBOUND_FAILED );
+
+	/* Perform cholesky updates only if QProblemB has been initialised! */
+	if ( ( getStatus( ) == QPS_PREPARINGAUXILIARYQP ) || ( updateCholesky == BT_FALSE ) )
+		return SUCCESSFUL_RETURN;
+
+
+	/* II) PERFORM CHOLESKY UPDATE */
+	int FR_idx[NVMAX];
+	if ( bounds.getFree( )->getNumberArray( FR_idx ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_REMOVEBOUND_FAILED );
+
+	/* 1) Calculate new column of cholesky decomposition. */
+	real_t rhs[NVMAX];
+	real_t r[NVMAX];
+	real_t r0 = H[number*NVMAX + number];
+
+	for( i=0; i<nFR; ++i )
+	{
+		ii = FR_idx[i];
+		rhs[i] = H[number*NVMAX + ii];
+	}
+
+	if ( backsolveR( rhs,BT_TRUE,BT_TRUE,r ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_REMOVEBOUND_FAILED );
+
+	for( i=0; i<nFR; ++i )
+		r0 -= r[i]*r[i];
+
+	/* 2) Store new column into R. */
+	for( i=0; i<nFR; ++i )
+		R[i*NVMAX + nFR] = r[i];
+
+	if ( r0 > 0.0 )
+		R[nFR*NVMAX + nFR] = sqrt( r0 );
+	else
+	{
+		hessianType = HST_SEMIDEF;
+		return THROWERROR( RET_HESSIAN_NOT_SPD );
+	}
+
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	b a c k s o l v e R  (CODE DUPLICATED IN QProblem CLASS!!!)
+ */
+returnValue QProblemB::backsolveR(	const real_t* const b, BooleanType transposed,
+									real_t* const a
+									)
+{
+	/* Call standard backsolve procedure (i.e. removingBound == BT_FALSE). */
+	return backsolveR( b,transposed,BT_FALSE,a );
+}
+
+
+/*
+ *	b a c k s o l v e R  (CODE DUPLICATED IN QProblem CLASS!!!)
+ */
+returnValue QProblemB::backsolveR(	const real_t* const b, BooleanType transposed,
+									BooleanType removingBound,
+									real_t* const a
+									)
+{
+	int i, j;
+	int nR = getNZ( );
+
+	real_t sum;
+
+	/* if backsolve is called while removing a bound, reduce nZ by one. */
+	if ( removingBound == BT_TRUE )
+		--nR;
+
+	/* nothing to do */
+	if ( nR <= 0 )
+		return SUCCESSFUL_RETURN;
+
+
+	/* Solve Ra = b, where R might be transposed. */
+	if ( transposed == BT_FALSE )
+	{
+		/* solve Ra = b */
+		for( i=(nR-1); i>=0; --i )
+		{
+			sum = b[i];
+			for( j=(i+1); j<nR; ++j )
+				sum -= R[i*NVMAX + j] * a[j];
+
+			if ( getAbs( R[i*NVMAX + i] ) > ZERO )
+				a[i] = sum / R[i*NVMAX + i];
+			else
+				return THROWERROR( RET_DIV_BY_ZERO );
+		}
+	}
+	else
+	{
+		/* solve R^T*a = b */
+		for( i=0; i<nR; ++i )
+		{
+			sum = b[i];
+
+			for( j=0; j<i; ++j )
+				sum -= R[j*NVMAX + i] * a[j];
+
+			if ( getAbs( R[i*NVMAX + i] ) > ZERO )
+				a[i] = sum / R[i*NVMAX + i];
+			else
+				return THROWERROR( RET_DIV_BY_ZERO );
+		}
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	h o t s t a r t _ d e t e r m i n e D a t a S h i f t
+ */
+returnValue QProblemB::hotstart_determineDataShift(	const int* const FX_idx,
+													const real_t* const g_new, const real_t* const lb_new, const real_t* const ub_new,
+													real_t* const delta_g, real_t* const delta_lb, real_t* const delta_ub,
+													BooleanType& Delta_bB_isZero
+													)
+{
+	int i, ii;
+	int nV  = getNV( );
+	int nFX = getNFX( );
+
+
+	/* 1) Calculate shift directions. */
+	for( i=0; i<nV; ++i )
+		delta_g[i]  = g_new[i]  - g[i];
+
+	if ( lb_new != 0 )
+	{
+		for( i=0; i<nV; ++i )
+			delta_lb[i] = lb_new[i] - lb[i];
+	}
+	else
+	{
+		/* if no lower bounds exist, assume the new lower bounds to be -infinity */
+		for( i=0; i<nV; ++i )
+			delta_lb[i] = -INFTY - lb[i];
+	}
+
+	if ( ub_new != 0 )
+	{
+		for( i=0; i<nV; ++i )
+			delta_ub[i] = ub_new[i] - ub[i];
+	}
+	else
+	{
+		/* if no upper bounds exist, assume the new upper bounds to be infinity */
+		for( i=0; i<nV; ++i )
+			delta_ub[i] = INFTY - ub[i];
+	}
+
+	/* 2) Determine if active bounds are to be shifted. */
+	Delta_bB_isZero = BT_TRUE;
+
+	for ( i=0; i<nFX; ++i )
+	{
+		ii = FX_idx[i];
+
+		if ( ( getAbs( delta_lb[ii] ) > EPS ) || ( getAbs( delta_ub[ii] ) > EPS ) )
+		{
+			Delta_bB_isZero = BT_FALSE;
+			break;
+		}
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	a r e B o u n d s C o n s i s t e n t
+ */
+BooleanType QProblemB::areBoundsConsistent(	const real_t* const delta_lb, const real_t* const delta_ub
+											) const
+{
+	int i;
+
+	/* Check if delta_lb[i] is greater than delta_ub[i]
+	 * for a component i whose bounds are already (numerically) equal. */
+	for( i=0; i<getNV( ); ++i )
+		if ( ( lb[i] > ub[i] - BOUNDTOL ) && ( delta_lb[i] > delta_ub[i] + EPS ) )
+			return BT_FALSE;
+
+	return BT_TRUE;
+}
+
+
+/*
+ *	s e t u p Q P d a t a
+ */
+returnValue QProblemB::setupQPdata(	const real_t* const _H, const real_t* const _R, const real_t* const _g,
+									const real_t* const _lb, const real_t* const _ub
+									)
+{
+	int i, j;
+	int nV = getNV( );
+
+	/* 1) Setup Hessian matrix and it's Cholesky factorization. */
+	if (_H != 0)
+	{
+		for( i=0; i<nV; ++i )
+			for( j=0; j<nV; ++j )
+				H[i*NVMAX + j] = _H[i*nV + j];
+		hasHessian = BT_TRUE;
+	}
+	else
+		hasHessian = BT_FALSE;
+
+	if (_R != 0)
+	{
+		for( i=0; i<nV; ++i )
+			for( j=0; j<nV; ++j )
+				R[i*NVMAX + j] = _R[i*nV + j];
+		hasCholesky = BT_TRUE;
+
+		/* If Hessian is not provided, store it's factorization in H, and that guy
+		 * is going to be used for H * x products (R^T * R * x in this case). */
+		if (hasHessian == BT_FALSE)
+			for( i=0; i<nV; ++i )
+				for( j=0; j<nV; ++j )
+					H[i*NVMAX + j] = _R[i*nV + j];
+	}
+	else
+		hasCholesky = BT_FALSE;
+
+	if (hasHessian == BT_FALSE && hasCholesky == BT_FALSE)
+		return THROWERROR( RET_INVALID_ARGUMENTS );
+
+	/* 2) Setup gradient vector. */
+	if ( _g == 0 )
+		return THROWERROR( RET_INVALID_ARGUMENTS );
+
+	for( i=0; i<nV; ++i )
+		g[i] = _g[i];
+
+	/* 3) Setup lower bounds vector. */
+	if ( _lb != 0 )
+	{
+		for( i=0; i<nV; ++i )
+			lb[i] = _lb[i];
+	}
+	else
+	{
+		/* if no lower bounds are specified, set them to -infinity */
+		for( i=0; i<nV; ++i )
+			lb[i] = -INFTY;
+	}
+
+	/* 4) Setup upper bounds vector. */
+	if ( _ub != 0 )
+	{
+		for( i=0; i<nV; ++i )
+			ub[i] = _ub[i];
+	}
+	else
+	{
+		/* if no upper bounds are specified, set them to infinity */
+		for( i=0; i<nV; ++i )
+			ub[i] = INFTY;
+	}
+
+	//printmatrix( "H",H,nV,nV );
+	//printmatrix( "R",R,nV,nV );
+	//printmatrix( "g",g,1,nV );
+	//printmatrix( "lb",lb,1,nV );
+	//printmatrix( "ub",ub,1,nV );
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+
+/*****************************************************************************
+ *  P R I V A T E                                                            *
+ *****************************************************************************/
+
+/*
+ *	h o t s t a r t _ d e t e r m i n e S t e p D i r e c t i o n
+ */
+returnValue QProblemB::hotstart_determineStepDirection(	const int* const FR_idx, const int* const FX_idx,
+														const real_t* const delta_g, const real_t* const delta_lb, const real_t* const delta_ub,
+														BooleanType Delta_bB_isZero,
+														real_t* const delta_xFX, real_t* const delta_xFR,
+														real_t* const delta_yFX
+														)
+{
+	int i, j, ii, jj;
+	int nFR = getNFR( );
+	int nFX = getNFX( );
+
+
+	/* initialise auxiliary vectors */
+	real_t HMX_delta_xFX[NVMAX];
+	for( i=0; i<nFR; ++i )
+		HMX_delta_xFX[i] = 0.0;
+
+
+	/* I) DETERMINE delta_xFX */
+	if ( nFX > 0 )
+	{
+		for( i=0; i<nFX; ++i )
+		{
+			ii = FX_idx[i];
+
+			if ( bounds.getStatus( ii ) == ST_LOWER )
+				delta_xFX[i] = delta_lb[ii];
+			else
+				delta_xFX[i] = delta_ub[ii];
+		}
+	}
+
+
+	/* II) DETERMINE delta_xFR */
+	if ( nFR > 0 )
+	{
+		/* auxiliary variables */
+		real_t delta_xFRz_TMP[NVMAX];
+		real_t delta_xFRz_RHS[NVMAX];
+
+		/* Determine delta_xFRz. */
+		if ( Delta_bB_isZero == BT_FALSE )
+		{
+			for( i=0; i<nFR; ++i )
+			{
+				ii = FR_idx[i];
+				for( j=0; j<nFX; ++j )
+				{
+					jj = FX_idx[j];
+					HMX_delta_xFX[i] += H[ii*NVMAX + jj] * delta_xFX[j];
+				}
+			}
+		}
+
+		if ( Delta_bB_isZero == BT_TRUE )
+		{
+			for( j=0; j<nFR; ++j )
+			{
+				jj = FR_idx[j];
+				delta_xFRz_RHS[j] = delta_g[jj];
+			}
+		}
+		else
+		{
+			for( j=0; j<nFR; ++j )
+			{
+				jj = FR_idx[j];
+				delta_xFRz_RHS[j] = delta_g[jj] + HMX_delta_xFX[j]; /* *ZFR */
+			}
+		}
+
+		for( i=0; i<nFR; ++i )
+			delta_xFR[i] = -delta_xFRz_RHS[i];
+
+		if ( backsolveR( delta_xFR,BT_TRUE,delta_xFRz_TMP ) != SUCCESSFUL_RETURN )
+			return THROWERROR( RET_STEPDIRECTION_FAILED_CHOLESKY );
+
+		if ( backsolveR( delta_xFRz_TMP,BT_FALSE,delta_xFR ) != SUCCESSFUL_RETURN )
+			return THROWERROR( RET_STEPDIRECTION_FAILED_CHOLESKY );
+	}
+
+
+	/* III) DETERMINE delta_yFX */
+	if ( nFX > 0 )
+	{
+		for( i=0; i<nFX; ++i )
+		{
+			ii = FX_idx[i];
+
+			delta_yFX[i] = 0.0;
+			for( j=0; j<nFR; ++j )
+			{
+				jj = FR_idx[j];
+				delta_yFX[i] += H[ii*NVMAX + jj] * delta_xFR[j];
+			}
+
+			if ( Delta_bB_isZero == BT_FALSE )
+			{
+				for( j=0; j<nFX; ++j )
+				{
+					jj = FX_idx[j];
+					delta_yFX[i] += H[ii*NVMAX + jj] * delta_xFX[j];
+				}
+			}
+
+			delta_yFX[i] += delta_g[ii];
+		}
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	h o t s t a r t _ d e t e r m i n e S t e p L e n g t h
+ */
+returnValue QProblemB::hotstart_determineStepLength(	const int* const FR_idx, const int* const FX_idx,
+														const real_t* const delta_lb, const real_t* const delta_ub,
+														const real_t* const delta_xFR,
+														const real_t* const delta_yFX,
+														int& BC_idx, SubjectToStatus& BC_status
+														)
+{
+	int i, ii;
+	int nFR = getNFR( );
+	int nFX = getNFX( );
+
+	real_t tau_tmp;
+	real_t tau_new = 1.0;
+
+	BC_idx = 0;
+	BC_status = ST_UNDEFINED;
+
+
+	/* I) DETERMINE MAXIMUM DUAL STEPLENGTH, i.e. ensure that
+	 *    active dual bounds remain valid (ignoring implicitly fixed variables): */
+	for( i=0; i<nFX; ++i )
+	{
+		ii = FX_idx[i];
+
+		if ( bounds.getType( ii ) != ST_EQUALITY )
+		{
+			if ( bounds.getStatus( ii ) == ST_LOWER )
+			{
+				/* 1) Active lower bounds. */
+				if ( ( delta_yFX[i] < -ZERO ) && ( y[ii] >= 0.0 ) )
+				{
+					tau_tmp = y[ii] / ( -delta_yFX[i] );
+					if ( tau_tmp < tau_new )
+					{
+						if ( tau_tmp >= 0.0 )
+						{
+							tau_new = tau_tmp;
+							BC_idx = ii;
+							BC_status = ST_INACTIVE;
+						}
+					}
+				}
+			}
+			else
+			{
+				/* 2) Active upper bounds. */
+				if ( ( delta_yFX[i] > ZERO ) && ( y[ii] <= 0.0 ) )
+				{
+					tau_tmp = y[ii] / ( -delta_yFX[i] );
+					if ( tau_tmp < tau_new )
+					{
+						if ( tau_tmp >= 0.0 )
+						{
+							tau_new = tau_tmp;
+							BC_idx = ii;
+							BC_status = ST_INACTIVE;
+						}
+					}
+				}
+			}
+		}
+	}
+
+
+	/* II) DETERMINE MAXIMUM PRIMAL STEPLENGTH, i.e. ensure that
+	 *     inactive bounds remain valid (ignoring unbounded variables). */
+	/* 1) Inactive lower bounds. */
+	if ( bounds.isNoLower( ) == BT_FALSE )
+	{
+		for( i=0; i<nFR; ++i )
+		{
+			ii = FR_idx[i];
+
+			if ( bounds.getType( ii ) != ST_UNBOUNDED )
+			{
+				if ( delta_lb[ii] > delta_xFR[i] )
+				{
+					if ( x[ii] > lb[ii] )
+						tau_tmp = ( x[ii] - lb[ii] ) / ( delta_lb[ii] - delta_xFR[i] );
+					else
+						tau_tmp = 0.0;
+
+					if ( tau_tmp < tau_new )
+					{
+						if ( tau_tmp >= 0.0 )
+						{
+							tau_new = tau_tmp;
+							BC_idx = ii;
+							BC_status = ST_LOWER;
+						}
+					}
+				}
+			}
+		}
+	}
+
+	/* 2) Inactive upper bounds. */
+	if ( bounds.isNoUpper( ) == BT_FALSE )
+	{
+		for( i=0; i<nFR; ++i )
+		{
+			ii = FR_idx[i];
+
+			if ( bounds.getType( ii ) != ST_UNBOUNDED )
+			{
+				if ( delta_ub[ii] < delta_xFR[i] )
+				{
+					if ( x[ii] < ub[ii] )
+						tau_tmp = ( x[ii] - ub[ii] ) / ( delta_ub[ii] - delta_xFR[i] );
+					else
+						tau_tmp = 0.0;
+
+					if ( tau_tmp < tau_new )
+					{
+						if ( tau_tmp >= 0.0 )
+						{
+							tau_new = tau_tmp;
+							BC_idx = ii;
+							BC_status = ST_UPPER;
+						}
+					}
+				}
+			}
+		}
+	}
+
+
+	/* III) SET MAXIMUM HOMOTOPY STEPLENGTH */
+	tau = tau_new;
+
+	if ( printlevel ==  PL_HIGH )
+	{
+		#ifdef PC_DEBUG
+		char messageString[80];
+
+		if ( BC_status == ST_UNDEFINED )
+			sprintf( messageString,"Stepsize is %.6e!",tau );
+		else
+			sprintf( messageString,"Stepsize is %.6e! (BC_idx = %d, BC_status = %d)",tau,BC_idx,BC_status );
+
+		getGlobalMessageHandler( )->throwInfo( RET_STEPSIZE_NONPOSITIVE,messageString,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE );
+		#endif
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	h o t s t a r t _ p e r f o r m S t e p
+ */
+returnValue QProblemB::hotstart_performStep(	const int* const FR_idx, const int* const FX_idx,
+												const real_t* const delta_g, const real_t* const  delta_lb, const real_t* const delta_ub,
+												const real_t* const delta_xFX, const real_t* const delta_xFR,
+												const real_t* const delta_yFX,
+												int BC_idx, SubjectToStatus BC_status
+												)
+{
+	int i, ii;
+	int nV  = getNV( );
+	int nFR = getNFR( );
+	int nFX = getNFX( );
+
+
+	/* I) CHECK BOUNDS' CONSISTENCY */
+	if ( areBoundsConsistent( delta_lb,delta_ub ) == BT_FALSE )
+	{
+		infeasible = BT_TRUE;
+		tau = 0.0;
+
+		return THROWERROR( RET_QP_INFEASIBLE );
+	}
+
+
+	/* II) GO TO ACTIVE SET CHANGE */
+	if ( tau > ZERO )
+	{
+		/* 1) Perform step in primal und dual space. */
+		for( i=0; i<nFR; ++i )
+		{
+			ii = FR_idx[i];
+			x[ii] += tau*delta_xFR[i];
+		}
+
+		for( i=0; i<nFX; ++i )
+		{
+			ii = FX_idx[i];
+			x[ii] += tau*delta_xFX[i];
+			y[ii] += tau*delta_yFX[i];
+		}
+
+		/* 2) Shift QP data. */
+		for( i=0; i<nV; ++i )
+		{
+			g[i]  += tau*delta_g[i];
+			lb[i] += tau*delta_lb[i];
+			ub[i] += tau*delta_ub[i];
+		}
+	}
+	else
+	{
+		/* print a stepsize warning if stepsize is zero */
+		#ifdef PC_DEBUG
+		char messageString[80];
+		sprintf( messageString,"Stepsize is %.6e",tau );
+		getGlobalMessageHandler( )->throwWarning( RET_STEPSIZE,messageString,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE );
+		#endif
+	}
+
+
+	/* setup output preferences */
+	#ifdef PC_DEBUG
+	char messageString[80];
+  	VisibilityStatus visibilityStatus;
+
+  	if ( printlevel == PL_HIGH )
+		visibilityStatus = VS_VISIBLE;
+	else
+		visibilityStatus = VS_HIDDEN;
+	#endif
+
+
+	/* III) UPDATE ACTIVE SET */
+	switch ( BC_status )
+	{
+		/* Optimal solution found as no working set change detected. */
+		case ST_UNDEFINED:
+			return RET_OPTIMAL_SOLUTION_FOUND;
+
+
+		/* Remove one variable from active set. */
+		case ST_INACTIVE:
+			#ifdef PC_DEBUG
+			sprintf( messageString,"bound no. %d.", BC_idx );
+			getGlobalMessageHandler( )->throwInfo( RET_REMOVE_FROM_ACTIVESET,messageString,__FUNCTION__,__FILE__,__LINE__,visibilityStatus );
+			#endif
+
+			if ( removeBound( BC_idx,BT_TRUE ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_REMOVE_FROM_ACTIVESET_FAILED );
+
+			y[BC_idx] = 0.0;
+			break;
+
+
+		/* Add one variable to active set. */
+		default:
+			#ifdef PC_DEBUG
+			if ( BC_status == ST_LOWER )
+				sprintf( messageString,"lower bound no. %d.", BC_idx );
+			else
+				sprintf( messageString,"upper bound no. %d.", BC_idx );
+				getGlobalMessageHandler( )->throwInfo( RET_ADD_TO_ACTIVESET,messageString,__FUNCTION__,__FILE__,__LINE__,visibilityStatus );
+			#endif
+
+			if ( addBound( BC_idx,BC_status,BT_TRUE ) != SUCCESSFUL_RETURN )
+				return THROWERROR( RET_ADD_TO_ACTIVESET_FAILED );
+			break;
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+#ifdef PC_DEBUG  /* Define print functions only for debugging! */
+
+/*
+ *	p r i n t I t e r a t i o n
+ */
+returnValue QProblemB::printIteration( 	int iteration,
+										int BC_idx,	SubjectToStatus BC_status
+		  								)
+{
+	char myPrintfString[160];
+
+	/* consistency check */
+	if ( iteration < 0 )
+		return THROWERROR( RET_INVALID_ARGUMENTS );
+
+	/* nothing to do */
+	if ( printlevel != PL_MEDIUM )
+		return SUCCESSFUL_RETURN;
+
+
+	/* 1) Print header at first iteration. */
+ 	if ( iteration == 0 )
+	{
+		sprintf( myPrintfString,"\n##############  qpOASES  --  QP NO.%4.1d  ###############\n", count );
+		myPrintf( myPrintfString );
+
+		sprintf( myPrintfString,"   Iter   |   StepLength    |       Info      |   nFX   \n" );
+		myPrintf( myPrintfString );
+	}
+
+	/* 2) Print iteration line. */
+	if ( BC_status == ST_UNDEFINED )
+	{
+		sprintf( myPrintfString,"   %4.1d   |   %1.5e   |    QP SOLVED    |  %4.1d   \n", iteration,tau,getNFX( ) );
+		myPrintf( myPrintfString );
+	}
+	else
+	{
+		char info[8];
+
+		if ( BC_status == ST_INACTIVE )
+			sprintf( info,"REM BND" );
+		else
+			sprintf( info,"ADD BND" );
+
+		sprintf( myPrintfString,"   %4.1d   |   %1.5e   |   %s%4.1d   |  %4.1d   \n", iteration,tau,info,BC_idx,getNFX( ) );
+		myPrintf( myPrintfString );
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+#endif  /* PC_DEBUG */
+
+
+
+/*
+ *	c h e c k K K T c o n d i t i o n s
+ */
+returnValue QProblemB::checkKKTconditions( )
+{
+	#ifdef __PERFORM_KKT_TEST__
+
+	int i, j;
+	int nV = getNV( );
+
+	real_t tmp;
+	real_t maxKKTviolation = 0.0;
+
+
+	/* 1) Check for Hx + g - y*A' = 0  (here: A = Id). */
+	for( i=0; i<nV; ++i )
+	{
+		tmp = g[i];
+
+		for( j=0; j<nV; ++j )
+			tmp += H[i*nV + j] * x[j];
+
+		tmp -= y[i];
+
+		if ( getAbs( tmp ) > maxKKTviolation )
+			maxKKTviolation = getAbs( tmp );
+	}
+
+	/* 2) Check for lb <= x <= ub. */
+	for( i=0; i<nV; ++i )
+	{
+		if ( lb[i] - x[i] > maxKKTviolation )
+			maxKKTviolation = lb[i] - x[i];
+
+		if ( x[i] - ub[i] > maxKKTviolation )
+			maxKKTviolation = x[i] - ub[i];
+	}
+
+	/* 3) Check for correct sign of y and for complementary slackness. */
+	for( i=0; i<nV; ++i )
+	{
+		switch ( bounds.getStatus( i ) )
+		{
+			case ST_LOWER:
+				if ( -y[i] > maxKKTviolation )
+					maxKKTviolation = -y[i];
+				if ( getAbs( ( x[i] - lb[i] ) * y[i] ) > maxKKTviolation )
+					maxKKTviolation = getAbs( ( x[i] - lb[i] ) * y[i] );
+				break;
+
+			case ST_UPPER:
+				if ( y[i] > maxKKTviolation )
+					maxKKTviolation = y[i];
+				if ( getAbs( ( ub[i] - x[i] ) * y[i] ) > maxKKTviolation )
+					maxKKTviolation = getAbs( ( ub[i] - x[i] ) * y[i] );
+				break;
+
+			default: /* inactive */
+			if ( getAbs( y[i] ) > maxKKTviolation )
+					maxKKTviolation = getAbs( y[i] );
+				break;
+		}
+	}
+
+	if ( maxKKTviolation > CRITICALACCURACY )
+		return RET_NO_SOLUTION;
+
+	if ( maxKKTviolation > DESIREDACCURACY )
+		return RET_INACCURATE_SOLUTION;
+
+	#endif /* __PERFORM_KKT_TEST__ */
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/QProblemB.ipp b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/QProblemB.ipp
new file mode 100644
index 0000000..0b03130
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/QProblemB.ipp
@@ -0,0 +1,425 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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 SRC/QProblemB.ipp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Implementation of inlined member functions of the QProblemB class which 
+ *	is able to use the newly developed online active set strategy for 
+ *	parametric quadratic programming.
+ */
+
+
+
+#include <math.h>
+
+
+
+/*****************************************************************************
+ *  P U B L I C                                                              *
+ *****************************************************************************/
+
+/*
+ *	g e t H
+ */
+inline returnValue QProblemB::getH( real_t* const _H ) const
+{
+	int i;
+
+	for ( i=0; i<getNV( )*getNV( ); ++i )
+		_H[i] = H[i];
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	g e t G
+ */
+inline returnValue QProblemB::getG( real_t* const _g ) const
+{
+	int i;
+
+	for ( i=0; i<getNV( ); ++i )
+		_g[i] = g[i];
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	g e t L B
+ */
+inline returnValue QProblemB::getLB( real_t* const _lb ) const
+{
+	int i;
+
+	for ( i=0; i<getNV( ); ++i )
+		_lb[i] = lb[i];
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	g e t L B
+ */
+inline returnValue QProblemB::getLB( int number, real_t& value ) const
+{
+	if ( ( number >= 0 ) && ( number < getNV( ) ) )
+	{
+		value = lb[number];
+		return SUCCESSFUL_RETURN;
+	}
+	else
+	{
+		return THROWERROR( RET_INDEX_OUT_OF_BOUNDS );
+	}
+}
+
+
+/*
+ *	g e t U B
+ */
+inline returnValue QProblemB::getUB( real_t* const _ub ) const
+{
+	int i;
+
+	for ( i=0; i<getNV( ); ++i )
+		_ub[i] = ub[i];
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	g e t U B
+ */
+inline returnValue QProblemB::getUB( int number, real_t& value ) const
+{
+	if ( ( number >= 0 ) && ( number < getNV( ) ) )
+	{
+		value = ub[number];
+		return SUCCESSFUL_RETURN;
+	}
+	else
+	{
+		return THROWERROR( RET_INDEX_OUT_OF_BOUNDS );
+	}
+}
+
+
+/*
+ *	g e t B o u n d s
+ */
+inline returnValue QProblemB::getBounds( Bounds* const _bounds ) const
+{
+	*_bounds = bounds;
+	
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	g e t N V
+ */
+inline int QProblemB::getNV( ) const
+{
+	return bounds.getNV( );
+}
+
+
+/*
+ *	g e t N F R
+ */
+inline int QProblemB::getNFR( )
+{
+	return bounds.getNFR( );
+}
+
+
+/*
+ *	g e t N F X
+ */
+inline int QProblemB::getNFX( )
+{
+	return bounds.getNFX( );
+}
+
+
+/*
+ *	g e t N F V
+ */
+inline int QProblemB::getNFV( ) const
+{
+	return bounds.getNFV( );
+}
+
+
+/*
+ *	g e t S t a t u s
+ */
+inline QProblemStatus QProblemB::getStatus( ) const
+{
+	return status;
+}
+
+
+/*
+ *	i s I n i t i a l i s e d
+ */
+inline BooleanType QProblemB::isInitialised( ) const
+{
+	if ( status == QPS_NOTINITIALISED )
+		return BT_FALSE;
+	else
+		return BT_TRUE;
+}
+
+
+/*
+ *	i s S o l v e d
+ */
+inline BooleanType QProblemB::isSolved( ) const
+{
+	if ( status == QPS_SOLVED )
+		return BT_TRUE;
+	else
+		return BT_FALSE;
+}
+
+
+/*
+ *	i s I n f e a s i b l e
+ */
+inline BooleanType QProblemB::isInfeasible( ) const
+{
+	return infeasible;
+}
+
+
+/*
+ *	i s U n b o u n d e d
+ */
+inline BooleanType QProblemB::isUnbounded( ) const
+{
+	return unbounded;
+}
+
+
+/*
+ *	g e t P r i n t L e v e l
+ */
+inline PrintLevel QProblemB::getPrintLevel( ) const
+{
+	return printlevel;
+}
+
+
+/*
+ *	g e t H e s s i a n T y p e
+ */
+inline HessianType QProblemB::getHessianType( ) const
+{
+	return hessianType;
+}
+
+
+/*
+ *	s e t H e s s i a n T y p e
+ */
+inline returnValue QProblemB::setHessianType( HessianType _hessianType )
+{
+	hessianType = _hessianType;
+	return SUCCESSFUL_RETURN;
+}
+
+
+
+/*****************************************************************************
+ *  P R O T E C T E D                                                        *
+ *****************************************************************************/
+
+/*
+ *	s e t H
+ */
+inline returnValue QProblemB::setH( const real_t* const H_new )
+{
+	int i, j;
+
+	int nV = getNV();
+
+	for( i=0; i<nV; ++i )
+		for( j=0; j<nV; ++j )
+			H[i*NVMAX + j] = H_new[i*nV + j];
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s e t G
+ */
+inline returnValue QProblemB::setG( const real_t* const g_new )
+{
+	int i;
+
+	int nV = getNV();
+
+	for( i=0; i<nV; ++i )
+		g[i] = g_new[i];
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s e t L B
+ */
+inline returnValue QProblemB::setLB( const real_t* const lb_new )
+{
+	int i;
+
+	int nV = getNV();
+
+	for( i=0; i<nV; ++i )
+		lb[i] = lb_new[i];
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s e t L B
+ */
+inline returnValue QProblemB::setLB( int number, real_t value )
+{
+	if ( ( number >= 0 ) && ( number < getNV( ) ) )
+	{
+		lb[number] = value;
+		return SUCCESSFUL_RETURN;
+	}
+	else
+	{
+		return THROWERROR( RET_INDEX_OUT_OF_BOUNDS );
+	}
+}
+
+
+/*
+ *	s e t U B
+ */
+inline returnValue QProblemB::setUB( const real_t* const ub_new )
+{
+	int i;
+
+	int nV = getNV();
+
+	for( i=0; i<nV; ++i )
+		ub[i] = ub_new[i];
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s e t U B
+ */
+inline returnValue QProblemB::setUB( int number, real_t value )
+{
+	if ( ( number >= 0 ) && ( number < getNV( ) ) )
+	{
+		ub[number] = value;
+
+		return SUCCESSFUL_RETURN;
+	}
+	else
+	{
+		return THROWERROR( RET_INDEX_OUT_OF_BOUNDS );
+	}
+}
+
+
+/*
+ *	c o m p u t e G i v e n s
+ */
+inline void QProblemB::computeGivens(	real_t xold, real_t yold, real_t& xnew, real_t& ynew,
+										real_t& c, real_t& s 
+										) const
+{
+    if ( getAbs( yold ) <= ZERO )
+	{
+        c = 1.0;
+        s = 0.0;
+		
+		xnew = xold;
+		ynew = yold;
+	}
+    else
+	{
+		real_t t, mu;
+
+        mu = getAbs( xold );
+		if ( getAbs( yold ) > mu )
+			mu = getAbs( yold );
+		
+        t = mu * sqrt( (xold/mu)*(xold/mu) + (yold/mu)*(yold/mu) );
+		
+		if ( xold < 0.0 )
+            t = -t;
+		
+        c = xold/t;
+        s = yold/t;
+        xnew = t;
+        ynew = 0.0;
+	}
+	
+	return;
+}
+
+		
+/*
+ *	a p p l y G i v e n s
+ */
+inline void QProblemB::applyGivens(	real_t c, real_t s, real_t xold, real_t yold,
+									real_t& xnew, real_t& ynew 
+									) const
+{
+	/* Usual Givens plane rotation requiring four multiplications. */
+	xnew =  c*xold + s*yold;
+	ynew = -s*xold + c*yold;
+// 	double nu = s/(1.0+c);
+// 
+// 	xnew = xold*c + yold*s;
+// 	ynew = (xnew+xold)*nu - yold;
+	
+	return;
+}
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/SubjectTo.cpp b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/SubjectTo.cpp
new file mode 100644
index 0000000..371f0d7
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/SubjectTo.cpp
@@ -0,0 +1,200 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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 SRC/SubjectTo.cpp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Implementation of the SubjectTo class designed to manage working sets of
+ *	constraints and bounds within a QProblem.
+ */
+
+
+#include <SubjectTo.hpp>
+
+
+/*****************************************************************************
+ *  P U B L I C                                                              *
+ *****************************************************************************/
+
+
+/*
+ *	S u b j e c t T o
+ */
+SubjectTo::SubjectTo( ) :	noLower( BT_TRUE ),
+							noUpper( BT_TRUE ),
+							size( 0 )
+{
+	int i;
+
+	for( i=0; i<size; ++i )
+	{
+		type[i] = ST_UNKNOWN;
+		status[i] = ST_UNDEFINED;
+	}
+}
+
+
+/*
+ *	S u b j e c t T o
+ */
+SubjectTo::SubjectTo( const SubjectTo& rhs ) :	noLower( rhs.noLower ),
+												noUpper( rhs.noUpper ),
+												size( rhs.size )
+{
+	int i;
+
+	for( i=0; i<size; ++i )
+	{
+		type[i] = rhs.type[i];
+		status[i] = rhs.status[i];
+	}
+}
+
+
+/*
+ *	~ S u b j e c t T o
+ */
+SubjectTo::~SubjectTo( )
+{
+}
+
+
+/*
+ *	o p e r a t o r =
+ */
+SubjectTo& SubjectTo::operator=( const SubjectTo& rhs )
+{
+	int i;
+
+	if ( this != &rhs )
+	{
+		size = rhs.size;
+
+		for( i=0; i<size; ++i )
+		{
+			type[i] = rhs.type[i];
+			status[i] = rhs.status[i];
+		}
+
+		noLower = rhs.noLower;
+		noUpper = rhs.noUpper;
+	}
+
+	return *this;
+}
+
+
+
+/*
+ *	i n i t
+ */
+returnValue SubjectTo::init( int n )
+{
+	int i;
+
+	size = n;
+
+	noLower = BT_TRUE;
+	noUpper = BT_TRUE;
+
+	for( i=0; i<size; ++i )
+	{
+		type[i] = ST_UNKNOWN;
+		status[i] = ST_UNDEFINED;
+	}
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+
+/*****************************************************************************
+ *  P R O T E C T E D                                                        *
+ *****************************************************************************/
+
+/*
+ *	a d d I n d e x
+ */
+returnValue SubjectTo::addIndex(	Indexlist* const indexlist,
+									int newnumber, SubjectToStatus newstatus
+									)
+{
+	/* consistency check */
+	if ( status[newnumber] == newstatus )
+		return THROWERROR( RET_INDEX_ALREADY_OF_DESIRED_STATUS );
+
+	status[newnumber] = newstatus;
+
+	if ( indexlist->addNumber( newnumber ) == RET_INDEXLIST_EXCEEDS_MAX_LENGTH )
+		return THROWERROR( RET_ADDINDEX_FAILED );
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	r e m o v e I n d e x
+ */
+returnValue SubjectTo::removeIndex(	Indexlist* const indexlist, 
+									int removenumber
+									)
+{
+	status[removenumber] = ST_UNDEFINED;
+
+	if ( indexlist->removeNumber( removenumber ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_UNKNOWN_BUG );
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	s w a p I n d e x
+ */
+returnValue SubjectTo::swapIndex(	Indexlist* const indexlist,
+									int number1, int number2
+									)
+{
+	/* consistency checks */
+	if ( status[number1] != status[number2] )
+		return THROWERROR( RET_SWAPINDEX_FAILED );
+
+	if ( number1 == number2 )
+	{
+		THROWWARNING( RET_NOTHING_TO_DO );
+		return SUCCESSFUL_RETURN;
+	}
+
+	if ( indexlist->swapNumbers( number1,number2 ) != SUCCESSFUL_RETURN )
+		return THROWERROR( RET_SWAPINDEX_FAILED );
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/SubjectTo.ipp b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/SubjectTo.ipp
new file mode 100644
index 0000000..32215ba
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/SubjectTo.ipp
@@ -0,0 +1,132 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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 SRC/SubjectTo.ipp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Implementation of the inlined member functions of the SubjectTo class 
+ *	designed to manage working sets of constraints and bounds within a QProblem.
+ */
+
+
+/*****************************************************************************
+ *  P U B L I C                                                              *
+ *****************************************************************************/
+ 
+
+/*
+ *	g e t T y p e
+ */
+inline SubjectToType SubjectTo::getType( int i ) const
+{
+	if ( ( i >= 0 ) && ( i < size ) )
+		return type[i];
+	else
+		return ST_UNKNOWN;
+}
+
+
+/*
+ *	g e t S t a t u s
+ */
+inline SubjectToStatus SubjectTo::getStatus( int i ) const
+{
+	if ( ( i >= 0 ) && ( i < size ) )
+		return status[i];
+	else
+		return ST_UNDEFINED;
+}
+
+
+/*
+ *	s e t T y p e
+ */
+inline returnValue SubjectTo::setType( int i, SubjectToType value )
+{
+	if ( ( i >= 0 ) && ( i < size ) )
+	{
+		type[i] = value;
+		return SUCCESSFUL_RETURN;
+	}
+	else
+		return THROWERROR( RET_INDEX_OUT_OF_BOUNDS );
+}
+
+
+/*
+ *	s e t S t a t u s
+ */
+inline returnValue SubjectTo::setStatus( int i, SubjectToStatus value )
+{
+	if ( ( i >= 0 ) && ( i < size ) )
+	{
+		status[i] = value;
+		return SUCCESSFUL_RETURN;
+	}
+	else
+		return THROWERROR( RET_INDEX_OUT_OF_BOUNDS );
+}
+
+
+/*
+ *	s e t N o L o w e r
+ */
+inline void SubjectTo::setNoLower( BooleanType _status )
+{
+	noLower = _status;
+}
+ 
+
+/*
+ *	s e t N o U p p e r
+ */
+inline void SubjectTo::setNoUpper( BooleanType _status )
+{
+	noUpper = _status;
+}
+
+
+/*
+ *	i s N o L o w e r
+ */
+inline BooleanType SubjectTo::isNoLower( ) const
+{
+	return noLower;
+}
+
+ 
+/*
+ *	i s N o L o w e r
+ */
+inline BooleanType SubjectTo::isNoUpper( ) const
+{
+	return noUpper;
+}
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/Utils.cpp b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/Utils.cpp
new file mode 100644
index 0000000..c11722c
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/Utils.cpp
@@ -0,0 +1,471 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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 SRC/Utils.cpp
+ *	\author Hans Joachim Ferreau, Eckhard Arnold
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Implementation of some inlined utilities for working with the different QProblem
+ *  classes.
+ */
+
+
+#include <math.h>
+
+#if defined(__WIN32__) || defined(WIN32)
+  #include <windows.h>
+#elif defined(LINUX)
+  #include <sys/stat.h>
+  #include <sys/time.h>
+#endif
+
+#ifdef __MATLAB__
+  #include <mex.h>
+#endif
+
+
+#include <Utils.hpp>
+
+
+
+#ifdef PC_DEBUG  /* Define print functions only for debugging! */
+/*
+ *	p r i n t
+ */
+returnValue print( const real_t* const v, int n )
+{
+	int i;
+	char myPrintfString[160];
+
+	/* Print a vector. */
+	myPrintf( "[\t" );
+	for( i=0; i<n; ++i )
+	{
+		sprintf( myPrintfString," %.16e\t", v[i] );
+		myPrintf( myPrintfString );
+	}
+	myPrintf( "]\n" );
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	p r i n t
+ */
+returnValue print(	const real_t* const v, int n,
+					const int* const V_idx
+					)
+{
+	int i;
+	char myPrintfString[160];
+
+	/* Print a permuted vector. */
+	myPrintf( "[\t" );
+	for( i=0; i<n; ++i )
+	{
+		sprintf( myPrintfString," %.16e\t", v[ V_idx[i] ] );
+		myPrintf( myPrintfString );
+	}
+	myPrintf( "]\n" );
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	p r i n t
+ */
+returnValue print(	const real_t* const v, int n,
+					const char* name
+					)
+{
+	char myPrintfString[160];
+
+	/* Print vector name ... */
+	sprintf( myPrintfString,"%s = ", name );
+	myPrintf( myPrintfString );
+
+	/* ... and the vector itself. */
+	return print( v, n );
+}
+
+
+/*
+ *	p r i n t
+ */
+returnValue print( const real_t* const M, int nrow, int ncol )
+{
+	int i;
+
+	/* Print a matrix as a collection of row vectors. */
+	for( i=0; i<nrow; ++i )
+		print( &(M[i*ncol]), ncol );
+	myPrintf( "\n" );
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	p r i n t
+ */
+returnValue print(	const real_t* const M, int nrow, int ncol,
+					const int* const ROW_idx, const int* const COL_idx
+					)
+{
+	int i;
+
+	/* Print a permuted matrix as a collection of permuted row vectors. */
+	for( i=0; i<nrow; ++i )
+		print( &( M[ ROW_idx[i]*ncol ] ), ncol, COL_idx );
+	myPrintf( "\n" );
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	p r i n t
+ */
+returnValue print(	const real_t* const M, int nrow, int ncol,
+					const char* name
+					)
+{
+	char myPrintfString[160];
+
+	/* Print matrix name ... */
+	sprintf( myPrintfString,"%s = ", name );
+	myPrintf( myPrintfString );
+
+	/* ... and the matrix itself. */
+	return print( M, nrow, ncol );
+}
+
+
+/*
+ *	p r i n t
+ */
+returnValue print( const int* const index, int n )
+{
+	int i;
+	char myPrintfString[160];
+
+	/* Print a indexlist. */
+	myPrintf( "[\t" );
+	for( i=0; i<n; ++i )
+	{
+		sprintf( myPrintfString," %d\t", index[i] );
+		myPrintf( myPrintfString );
+	}
+	myPrintf( "]\n" );
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	p r i n t
+ */
+returnValue print(	const int* const index, int n,
+					const char* name
+					)
+{
+	char myPrintfString[160];
+
+	/* Print indexlist name ... */
+	sprintf( myPrintfString,"%s = ", name );
+	myPrintf( myPrintfString );
+
+	/* ... and the indexlist itself. */
+	return print( index, n );
+}
+
+
+/*
+ *	m y P r i n t f
+ */
+returnValue myPrintf( const char* s )
+{
+	#ifdef __MATLAB__
+	mexPrintf( s );
+	#else
+	myFILE* outputfile = getGlobalMessageHandler( )->getOutputFile( );
+	if ( outputfile == 0 )
+		return THROWERROR( RET_NO_GLOBAL_MESSAGE_OUTPUTFILE );
+
+	fprintf( outputfile, "%s", s );
+	#endif
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	p r i n t C o p y r i g h t N o t i c e
+ */
+returnValue printCopyrightNotice( )
+{
+	return myPrintf( "\nqpOASES -- An Implementation of the Online Active Set Strategy.\nCopyright (C) 2007-2008 by Hans Joachim Ferreau et al. All rights reserved.\n\nqpOASES is distributed under the terms of the \nGNU Lesser General Public License 2.1 in the hope that it will be \nuseful, but WITHOUT ANY WARRANTY; without even the implied warranty \nof MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. \nSee the GNU Lesser General Public License for more details.\n\n" );
+}
+
+
+/*
+ *	r e a d F r o m F i l e
+ */
+returnValue readFromFile(	real_t* data, int nrow, int ncol,
+							const char* datafilename
+							)
+{
+	int i, j;
+	float float_data;
+	myFILE* datafile;
+
+	/* 1) Open file. */
+	if ( ( datafile = fopen( datafilename, "r" ) ) == 0 )
+	{
+		char errstr[80];
+		sprintf( errstr,"(%s)",datafilename );
+		return getGlobalMessageHandler( )->throwError( RET_UNABLE_TO_OPEN_FILE,errstr,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE );
+	}
+
+	/* 2) Read data from file. */
+	for( i=0; i<nrow; ++i )
+	{
+		for( j=0; j<ncol; ++j )
+		{
+			if ( fscanf( datafile, "%f ", &float_data ) == 0 )
+			{
+				fclose( datafile );
+				char errstr[80];
+				sprintf( errstr,"(%s)",datafilename );
+				return getGlobalMessageHandler( )->throwError( RET_UNABLE_TO_READ_FILE,errstr,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE );
+			}
+			data[i*ncol + j] = ( (real_t) float_data );
+		}
+	}
+
+	/* 3) Close file. */
+	fclose( datafile );
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	r e a d F r o m F i l e
+ */
+returnValue readFromFile(	real_t* data, int n,
+							const char* datafilename
+							)
+{
+	return readFromFile( data, n, 1, datafilename );
+}
+
+
+
+/*
+ *	r e a d F r o m F i l e
+ */
+returnValue readFromFile(	int* data, int n,
+							const char* datafilename
+							)
+{
+	int i;
+	myFILE* datafile;
+
+	/* 1) Open file. */
+	if ( ( datafile = fopen( datafilename, "r" ) ) == 0 )
+	{
+		char errstr[80];
+		sprintf( errstr,"(%s)",datafilename );
+		return getGlobalMessageHandler( )->throwError( RET_UNABLE_TO_OPEN_FILE,errstr,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE );
+	}
+
+	/* 2) Read data from file. */
+	for( i=0; i<n; ++i )
+	{
+		if ( fscanf( datafile, "%d\n", &(data[i]) ) == 0 )
+		{
+			fclose( datafile );
+			char errstr[80];
+			sprintf( errstr,"(%s)",datafilename );
+			return getGlobalMessageHandler( )->throwError( RET_UNABLE_TO_READ_FILE,errstr,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE );
+		}
+	}
+
+	/* 3) Close file. */
+	fclose( datafile );
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	w r i t e I n t o F i l e
+ */
+returnValue writeIntoFile(	const real_t* const data, int nrow, int ncol,
+							const char* datafilename, BooleanType append
+							)
+{
+	int i, j;
+	myFILE* datafile;
+
+	/* 1) Open file. */
+	if ( append == BT_TRUE )
+	{
+		/* append data */
+		if ( ( datafile = fopen( datafilename, "a" ) ) == 0 )
+		{
+			char errstr[80];
+			sprintf( errstr,"(%s)",datafilename );
+			return getGlobalMessageHandler( )->throwError( RET_UNABLE_TO_OPEN_FILE,errstr,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE );
+		}
+	}
+	else
+	{
+		/* do not append data */
+		if ( ( datafile = fopen( datafilename, "w" ) ) == 0 )
+		{
+			char errstr[80];
+			sprintf( errstr,"(%s)",datafilename );
+			return getGlobalMessageHandler( )->throwError( RET_UNABLE_TO_OPEN_FILE,errstr,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE );
+		}
+	}
+
+	/* 2) Write data into file. */
+	for( i=0; i<nrow; ++i )
+	{
+		for( j=0; j<ncol; ++j )
+		 	fprintf( datafile, "%.16e ", data[i*ncol+j] );
+
+		fprintf( datafile, "\n" );
+	}
+
+	/* 3) Close file. */
+	fclose( datafile );
+
+	return SUCCESSFUL_RETURN;
+}
+
+
+/*
+ *	w r i t e I n t o F i l e
+ */
+returnValue writeIntoFile(	const real_t* const data, int n,
+							const char* datafilename, BooleanType append
+							)
+{
+	return writeIntoFile( data,1,n,datafilename,append );
+}
+
+
+/*
+ *	w r i t e I n t o F i l e
+ */
+returnValue writeIntoFile(	const int* const data, int n,
+							const char* datafilename, BooleanType append
+							)
+{
+	int i;
+
+	myFILE* datafile;
+
+	/* 1) Open file. */
+	if ( append == BT_TRUE )
+	{
+		/* append data */
+		if ( ( datafile = fopen( datafilename, "a" ) ) == 0 )
+		{
+			char errstr[80];
+			sprintf( errstr,"(%s)",datafilename );
+			return getGlobalMessageHandler( )->throwError( RET_UNABLE_TO_OPEN_FILE,errstr,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE );
+		}
+	}
+	else
+	{
+		/* do not append data */
+		if ( ( datafile = fopen( datafilename, "w" ) ) == 0 )
+		{
+			char errstr[80];
+			sprintf( errstr,"(%s)",datafilename );
+			return getGlobalMessageHandler( )->throwError( RET_UNABLE_TO_OPEN_FILE,errstr,__FUNCTION__,__FILE__,__LINE__,VS_VISIBLE );
+		}
+	}
+
+	/* 2) Write data into file. */
+	for( i=0; i<n; ++i )
+		fprintf( datafile, "%d\n", data[i] );
+
+	/* 3) Close file. */
+	fclose( datafile );
+
+	return SUCCESSFUL_RETURN;
+}
+#endif  /* PC_DEBUG */
+
+
+/*
+ *	g e t C P U t i m e
+ */
+real_t getCPUtime( )
+{
+	real_t current_time = -1.0;
+
+	#if defined(__WIN32__) || defined(WIN32)
+	LARGE_INTEGER counter, frequency;
+	QueryPerformanceFrequency(&frequency);
+	QueryPerformanceCounter(&counter);
+	current_time = ((real_t) counter.QuadPart) / ((real_t) frequency.QuadPart);
+	#elif defined(LINUX)
+	struct timeval theclock;
+	gettimeofday( &theclock,0 );
+	current_time = 1.0*theclock.tv_sec + 1.0e-6*theclock.tv_usec;
+	#endif
+
+	return current_time;
+}
+
+
+/*
+ *	g e t N o r m
+ */
+real_t getNorm( const real_t* const v, int n )
+{
+	int i;
+
+	real_t norm = 0.0;
+
+	for( i=0; i<n; ++i )
+		norm += v[i]*v[i];
+
+	return sqrt( norm );
+}
+
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/Utils.ipp b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/Utils.ipp
new file mode 100644
index 0000000..861bdb3
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/SRC/Utils.ipp
@@ -0,0 +1,51 @@
+/*
+ *	This file is part of qpOASES.
+ *
+ *	qpOASES -- An Implementation of the Online Active Set Strategy.
+ *	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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 SRC/Utils.ipp
+ *	\author Hans Joachim Ferreau
+ *	\version 1.3embedded
+ *	\date 2007-2008
+ *
+ *	Implementation of some inlined utilities for working with the different QProblem 
+ *  classes.
+ */
+
+
+
+/*
+ *	g e t A b s
+ */
+inline real_t getAbs( real_t x )
+{
+	if ( x < 0.0 )
+		return -x;
+	else
+		return x;
+}
+
+
+/*
+ *	end of file
+ */
diff --git a/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/VERSIONS.txt b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/VERSIONS.txt
new file mode 100644
index 0000000..35a6740
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/solver_made_from_cpp/qpoases/VERSIONS.txt
@@ -0,0 +1,87 @@
+##
+##	qpOASES -- An Implementation of the Online Active Set Strategy.
+##	Copyright (C) 2007-2008 by Hans Joachim Ferreau 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
+##
+
+
+
+VERSION HISTORY
+===============
+
+1.3embedded (last updated on 30th April 2009):
+-----------------------------------------------------------------------
+
++ Re-programming of internal memory management to avoid dynamic memory allocations 
++ Most #ifdef directives removed
++ Almost all type definitions gathered within INCLUDE/Types.hpp
++ Irrelevant functionality removed (like the SQProblem class, functionality 
+  for loading data from files or the SCILAB interface)
++ Replacement of all doubles by real_t
++ Introduction of define "PC_DEBUG" for switching off all print functions
++ stdio.h was made optional, string.h is no longer needed
++ relative paths removed from #include directives
++ made auxiliary objects locally static within solveInitialQP()
++ Matlab interface fixed for single precision
++ New return value -2 from Legacy wrapper added to Matlab/Simulink interfaces
++ KKT optimality check moved into QProblem(B) class, SolutionAnalysis class removed
+
+
+1.3 (released on 2nd June 2008, last updated on 19th June 2008):
+-----------------------------------------------------------------------
+
++ Implementation of "initialised homotopy" concept
++ Addition of the SolutionAnalysis class
++ Utility functions for solving test problems in OQP format added
++ Flexibility of Matlab(R) interface enhanced
++ Major source code cleanup
+  (Attention: a few class names and calling interfaces have changed!)
+
+
+
+1.2 (released on 9th October 2007):
+-----------------------------------------------------------------------
+
++ Special treatment of diagonal Hessians
++ Improved infeasibility detection
++ Further improved Matlab(R) interface
++ Extended Simulink(R) interface
++ scilab interface added
++ Code cleanup and several bugfixes
+
+
+
+1.1 (released on 8th July 2007):
+--------------------------------
+
++ Implementation of the QProblemB class
++ Basic implementation of the SQProblem class
++ Improved Matlab(R) interface
++ Enabling/Disabling of constraints introduced
++ Several bugfixes
+
+
+
+1.0 (released on 17th April 2007):
+----------------------------------
+
+Initial release.
+
+
+
+##
+##	end of file
+##
diff --git a/mav_control_rw/mav_nonlinear_mpc/src/nonlinear_mpc.cc b/mav_control_rw/mav_nonlinear_mpc/src/nonlinear_mpc.cc
new file mode 100644
index 0000000..9cfab0b
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/src/nonlinear_mpc.cc
@@ -0,0 +1,287 @@
+#include <tf/transform_datatypes.h>
+#include <mav_nonlinear_mpc/nonlinear_mpc.h>
+
+/* Some convenient definitions. */
+#define NX          ACADO_NX  /* Number of differential state variables.  */
+#define NXA         ACADO_NXA /* Number of algebraic variables. */
+#define NU          ACADO_NU  /* Number of control inputs. */
+#define NOD         ACADO_NOD  /* Number of online data values. */
+
+#define NY          ACADO_NY  /* Number of measurements/references on nodes 0..N - 1. */
+#define NYN         ACADO_NYN /* Number of measurements/references on node N. */
+
+#define N           ACADO_N   /* Number of intervals in the horizon. */
+
+#define VERBOSE     1         /* Show iterations: 1, silent: 0.  */
+
+namespace mav_control {
+
+NonlinearModelPredictiveControl::NonlinearModelPredictiveControl(ros::NodeHandle& nh,
+                                                                 const ros::NodeHandle& private_nh)
+    : nh_(nh),
+      private_nh_(private_nh)
+{
+	/* Some variables. */
+	double forward_acc_ref, angular_acc_ref, new_forward_vel, new_angular_vel;
+	acado_timer t;
+
+	/* Create publisher for moving husky */
+	ros::Publisher pub=nh.advertise<geometry_msgs::Twist>("/husky_velocity_controller/cmd_vel", 1);
+	srand(time(0));
+	ros::Rate rate(2.5);
+
+	/* Create subscriber for goal position */
+	ros::Subscriber sub_goal = nh.subscribe("/move_base_simple/goal", 1,
+											&NonlinearModelPredictiveControl::goalCallback, this);
+
+	/* Create subscriber for scan data */
+	ros::Subscriber sub_scan = nh.subscribe("/scan", 1,
+											&NonlinearModelPredictiveControl::scanCallback, this);
+
+
+	/* Create service for husky position */
+	ros::ServiceClient husky_position = nh.serviceClient<gazebo_msgs::GetModelState>("/gazebo/get_model_state");
+	gazebo_msgs::GetModelState husky_state;
+	husky_state.request.model_name = (std::string)("husky");
+
+	/* Initialize solver and initial values for state variables */
+	this->initializeSolver();
+
+	/* Real-time loop */
+	while (ros::ok())
+	{
+		/* Get the time at the start of the loop. */
+		acado_tic( &t );
+		/* Perform the feedback step. */
+		std::cout << "Feedback status: "
+				  << acado_feedbackStep() << std::endl;
+
+		/* Read reference variables */
+		forward_acc_ref = acadoVariables.u[0];
+		angular_acc_ref = acadoVariables.u[1];
+		/* Calculate new forward and angular velocities */
+		new_forward_vel = acadoVariables.x0[3] + 0.2*forward_acc_ref;
+		new_angular_vel = acadoVariables.x0[4] + 0.2*angular_acc_ref;
+		/* Move the Husky */
+		geometry_msgs::Twist msg;
+		msg.linear.x = new_forward_vel;
+		msg.angular.z = new_angular_vel;
+		pub.publish(msg);
+
+		/* Get Husky position */
+		if (husky_position.call(husky_state))
+		{
+			husky_x = husky_state.response.pose.position.x;
+			husky_y = husky_state.response.pose.position.y;
+
+			/* Get Husky yaw angle */
+			tf::Pose pose;
+			tf::poseMsgToTF(husky_state.response.pose, pose);
+			yaw_angle = tf::getYaw(pose.getRotation());
+
+			/* Set next initial state */
+			acadoVariables.x0[0] = husky_x;
+			acadoVariables.x0[1] = husky_y;
+			acadoVariables.x0[2] = yaw_angle;
+			acadoVariables.x0[3] = husky_state.response.twist.linear.x;
+			acadoVariables.x0[4] = husky_state.response.twist.angular.z;
+
+			// Update the reference angle, so it values turning before moving forward
+			angleToGoal = atan2(target_y - husky_y, target_x - husky_x);
+			for (int i = 0; i < N; ++i)
+			{
+				acadoVariables.y[i*NY + 2] = angleToGoal;
+			}
+			acadoVariables.yN[2] = angleToGoal;
+
+			/* Prints */
+			if ( VERBOSE )
+			printInformation();
+
+			/* Update LSQ matrices, value correct heading less the closer to the target it is */
+			this->updateWeightingMatrices();
+
+			acado_preparationStep();
+
+			// Spin once, needed for communication
+			ros::spinOnce();
+			//Delays until it is time to send another message
+			rate.sleep();
+		}
+
+		/* Read the elapsed time. */
+		real_t te = acado_toc( &t );
+		/* Eye-candy. */
+		if( VERBOSE )
+		printf("\n\nAverage time of one real-time iteration:   %.2f seconds\n\n", te);
+	}
+
+	if( VERBOSE ) printf("\n\nEnd of the RTI loop. \n\n\n");
+}
+
+NonlinearModelPredictiveControl::~NonlinearModelPredictiveControl() { }
+
+void NonlinearModelPredictiveControl::initializeSolver()
+{
+	int i;
+
+	/* Clear solver memory */
+	memset(&acadoWorkspace, 0, sizeof( acadoWorkspace ));
+    memset(&acadoVariables, 0, sizeof( acadoVariables ));
+
+	/* Initialize the solver. */
+	acado_initializeSolver();
+
+	/* Initialize the states and controls. */
+	for (i = 0; i < NX * (N + 1); ++i)  acadoVariables.x[ i ] = 0.0;
+	for (i = 0; i < NU * N; ++i)  acadoVariables.u[ i ] = 0.0;
+
+	/* Initialize the measurements/reference. */
+	for (i = 0; i < NY * N; ++i)  acadoVariables.y[ i ] = 0.0;
+	for (i = 0; i < NYN; ++i)  acadoVariables.yN[ i ] = 0.0;
+
+	/* MPC: initialize the current state feedback. */
+	for (i = 0; i < NX; ++i) acadoVariables.x0[ i ] = 0.0;
+
+	/* Set the initial goal states */
+	acadoVariables.yN[0] = target_x;
+	acadoVariables.yN[1] = target_y;
+	for (i = 0; i < N; ++i)
+	{
+		acadoVariables.y[i*NY] = target_x;
+		acadoVariables.y[i*NY + 1] = target_y;
+	}
+
+	// Set the reference angle, so it values turning before moving forward
+	angleToGoal = atan2(target_y - husky_y, target_x - husky_x);
+	originalGoalDist = sqrt(powf(husky_y - target_y, 2) + powf(husky_x - target_x, 2));
+	acadoVariables.yN[2] = angleToGoal;
+	for (i = 0; i < N; ++i)
+	{
+		acadoVariables.y[i*NY + 2] = angleToGoal;
+	}
+
+	for (i = 0; i < (N + 1); ++i)
+	{
+		for (int j = 0; j < NOD; ++j)
+		{
+			acadoVariables.od[i*NOD + j] = 0.0;
+		}
+	}
+
+	if( VERBOSE ) acado_printHeader();
+
+	/* Prepare first step */
+	acado_preparationStep();
+}
+
+void NonlinearModelPredictiveControl::updateWeightingMatrices()
+{
+	/* Calculate distance */
+	distToGoal = sqrt(powf(husky_y - target_y, 2) + powf(husky_x - target_x, 2));
+
+	/*
+	Weight for heading is dynamic depending on distance to goal.
+	If we are very close to the goal, we don't care about the heading.
+	If we are far away, we want to value turning before going forward.
+	*/
+	for (int i = 0; i < N; ++i)
+	{
+		acadoVariables.W[i*NY*NY] = 10.0;
+		acadoVariables.W[i*NY*NY + 1*NY + 1] = 10.0;
+		acadoVariables.W[i*NY*NY + 2*NY + 2] = 1.0;
+		acadoVariables.W[i*NY*NY + 3*NY + 3] = 1.0;
+		acadoVariables.W[i*NY*NY + 4*NY + 4] = 1.0;
+		acadoVariables.W[i*NY*NY + 5*NY + 5] = 1.0;
+		acadoVariables.W[i*NY*NY + 6*NY + 6] = 1.0;
+		acadoVariables.W[i*NY*NY + 7*NY + 7] = 0.1;
+	}
+	acadoVariables.WN[0] = 1.0;
+	acadoVariables.WN[1*NYN + 1] = 1.0;
+	acadoVariables.WN[2*NYN + 2] = 1.0;
+	acadoVariables.WN[3*NYN + 3] = 0.1;
+	acadoVariables.WN[4*NYN + 4] = 0.1;
+}
+
+void NonlinearModelPredictiveControl::goalCallback(const geometry_msgs::PoseStamped::ConstPtr& msg)
+{
+	/* Read new target position */
+  	target_x = msg->pose.position.x;
+  	target_y = msg->pose.position.y;
+
+	/* Print new goal position */
+  	std::cout << "New Goal Position: "
+			  << target_x << " " << target_y << std::endl;
+
+	/* Update the objective variables */
+	for (int i = 0; i < N; ++i)
+	{
+		acadoVariables.y[i*NY] = target_x;
+		acadoVariables.y[i*NY + 1] = target_y;
+	}
+  	acadoVariables.yN[0] = target_x;
+  	acadoVariables.yN[1] = target_y;
+	originalGoalDist = sqrt(powf(husky_y - target_y, 2) + powf(husky_x - target_x, 2));
+}
+
+void NonlinearModelPredictiveControl::printInformation()
+{
+	/* Show acceleration variables */
+	acado_printDifferentialVariables();
+	acado_printControlVariables();
+
+	/* Print objective value */
+	std::cout << "Objective Value:"
+			  << std::to_string(acado_getObjective()) << std::endl;
+
+	/* Print information relating to the Husky and the goal */
+	std::cout << "Husky Forward Velocity: "
+			  << acadoVariables.x0[3] << std::endl;
+	std::cout << "Husky Position: "
+			  << husky_x << " " << husky_y << std::endl;
+	std::cout << "Goal Position: "
+			  << target_x << " " << target_y << std::endl;
+	std::cout << "Husky Yaw: "
+			  << yaw_angle << std::endl;
+	std::cout << "Angle To Goal: "
+			  << angleToGoal << std::endl;
+	std::cout << "Distance To Goal: "
+			  << distToGoal << std::endl;
+}
+
+void NonlinearModelPredictiveControl::scanCallback(const sensor_msgs::LaserScan::ConstPtr& msg)
+{
+    std::cout << "\nLaser Scan: " << std::endl;
+
+    int sector_size = msg->ranges.size() / (NOD/2);
+	int i, j, ts, index;
+	float min_value, range, angle_of_min, x, y;
+    for (i = 0; i < NOD/2; ++i)
+	{
+		// Find angle to and position of nearest point in sector
+        index = sector_size*i;
+        min_value = SCAN_MAX_VALUE;
+		angle_of_min = 0;
+        for (j = index; j < index + sector_size && j < msg->ranges.size(); ++j)
+		{
+			range = std::min(msg->ranges[j], min_value);
+            if (range <= min_value)
+			{
+				min_value = range;
+				angle_of_min = msg->angle_min + msg->angle_increment*j;
+			}
+        }
+		// Calculate position of nearest point and save to OnlineData array
+		x = husky_x + cos(yaw_angle + angle_of_min)*min_value;
+		y = husky_y + sin(yaw_angle + angle_of_min)*min_value;
+		for (ts = 0; ts < N; ++ts)
+		{
+			acadoVariables.od[ts*NOD + i] = x;
+			acadoVariables.od[ts*NOD + NOD/2 + i] = y;
+		}
+		std::cout << "Dist: " << min_value << " x: " << x << " y: " << y << std::endl;
+    }
+}
+
+
+};
diff --git a/mav_control_rw/mav_nonlinear_mpc/src/nonlinear_mpc_node.cc b/mav_control_rw/mav_nonlinear_mpc/src/nonlinear_mpc_node.cc
new file mode 100644
index 0000000..3374dd0
--- /dev/null
+++ b/mav_control_rw/mav_nonlinear_mpc/src/nonlinear_mpc_node.cc
@@ -0,0 +1,33 @@
+#include <ros/ros.h>
+#include <mav_nonlinear_mpc/nonlinear_mpc_node.h>
+
+namespace mav_control {
+
+NonLinearModelPredictiveControllerNode::NonLinearModelPredictiveControllerNode(
+    ros::NodeHandle& nh, const ros::NodeHandle& private_nh)
+    : nonlinear_mpc_(nh, private_nh),
+      controller_dyn_config_server_(private_nh)
+{
+
+}
+
+NonLinearModelPredictiveControllerNode::~NonLinearModelPredictiveControllerNode()
+{
+
+}
+
+};
+
+int main(int argc, char** argv)
+{
+  ros::init(argc, argv, "NonLinearModelPredictiveControllerNode");
+
+  ros::NodeHandle nh, private_nh("~");
+
+  std::shared_ptr<mav_control::NonLinearModelPredictiveControllerNode> mpc(
+      new mav_control::NonLinearModelPredictiveControllerNode(nh, private_nh));
+
+  ros::spin();
+
+  return 0;
+}
-- 
GitLab